16.01/16.86 YES 16.01/16.86 16.01/16.86 Problem 1: 16.01/16.86 16.01/16.86 (VAR v_NonEmpty:S M:S N:S V1:S V2:S X:S X1:S X2:S X3:S) 16.01/16.86 (RULES 16.01/16.86 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.86 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.86 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.86 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.86 U13(active(X:S)) -> U13(X:S) 16.01/16.86 U13(mark(X:S)) -> U13(X:S) 16.01/16.86 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.86 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.86 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.86 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.86 U22(active(X:S)) -> U22(X:S) 16.01/16.86 U22(mark(X:S)) -> U22(X:S) 16.01/16.86 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.86 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.86 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.86 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.86 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.86 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.86 active(U13(tt)) -> mark(tt) 16.01/16.86 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.86 active(U22(tt)) -> mark(tt) 16.01/16.86 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.86 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.86 active(and(tt,X:S)) -> mark(X:S) 16.01/16.86 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.86 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.86 active(isNat(0)) -> mark(tt) 16.01/16.86 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.86 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.86 active(isNatKind(0)) -> mark(tt) 16.01/16.86 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.86 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.86 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.86 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.86 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.86 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.86 isNat(active(X:S)) -> isNat(X:S) 16.01/16.86 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.86 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.86 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.86 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.86 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.86 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.86 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.86 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.86 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.86 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.86 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.86 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.86 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.86 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.86 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.86 mark(0) -> active(0) 16.01/16.86 mark(tt) -> active(tt) 16.01/16.86 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.86 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.86 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.86 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.86 s(active(X:S)) -> s(X:S) 16.01/16.86 s(mark(X:S)) -> s(X:S) 16.01/16.86 ) 16.01/16.86 (STRATEGY INNERMOST) 16.01/16.86 16.01/16.86 Problem 1: 16.01/16.86 16.01/16.86 Dependency Pairs Processor: 16.01/16.86 -> Pairs: 16.01/16.86 U11#(active(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(mark(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U12#(active(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(mark(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.86 U13#(active(X:S)) -> U13#(X:S) 16.01/16.86 U13#(mark(X:S)) -> U13#(X:S) 16.01/16.86 U21#(active(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(mark(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.86 U22#(active(X:S)) -> U22#(X:S) 16.01/16.86 U22#(mark(X:S)) -> U22#(X:S) 16.01/16.86 U31#(active(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(mark(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.86 U41#(active(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(mark(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> U12#(isNat(V1:S),V2:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> ISNAT(V1:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> U13#(isNat(V2:S)) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> ISNAT(V2:S) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.86 ACTIVE(U13(tt)) -> MARK(tt) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> U22#(isNat(V1:S)) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> ISNAT(V1:S) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.86 ACTIVE(U22(tt)) -> MARK(tt) 16.01/16.86 ACTIVE(U31(tt,N:S)) -> MARK(N:S) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> PLUS(N:S,M:S) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> S(plus(N:S,M:S)) 16.01/16.86 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> U11#(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> AND(isNatKind(V1:S),isNatKind(V2:S)) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> ISNATKIND(V2:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> U21#(isNatKind(V1:S),V1:S) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.86 ACTIVE(isNat(0)) -> MARK(tt) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> AND(isNatKind(V1:S),isNatKind(V2:S)) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> ISNATKIND(V2:S) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.86 ACTIVE(isNatKind(s(V1:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.86 ACTIVE(isNatKind(0)) -> MARK(tt) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> U41#(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(isNat(M:S),isNatKind(M:S)) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(isNat(N:S),isNatKind(N:S)) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNAT(M:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNAT(N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNATKIND(M:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNATKIND(N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.86 ACTIVE(plus(N:S,0)) -> U31#(and(isNat(N:S),isNatKind(N:S)),N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> AND(isNat(N:S),isNatKind(N:S)) 16.01/16.86 ACTIVE(plus(N:S,0)) -> ISNAT(N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> ISNATKIND(N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.86 AND(active(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.86 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.86 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.86 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.86 ISNAT(active(X:S)) -> ISNAT(X:S) 16.01/16.86 ISNAT(mark(X:S)) -> ISNAT(X:S) 16.01/16.86 ISNATKIND(active(X:S)) -> ISNATKIND(X:S) 16.01/16.86 ISNATKIND(mark(X:S)) -> ISNATKIND(X:S) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> U11#(mark(X1:S),X2:S,X3:S) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> U12#(mark(X1:S),X2:S) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U13(X:S)) -> U13#(mark(X:S)) 16.01/16.86 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.86 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> U21#(mark(X1:S),X2:S) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U22(X:S)) -> U22#(mark(X:S)) 16.01/16.86 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.86 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> U31#(mark(X1:S),X2:S) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U41(X1:S,X2:S,X3:S)) -> U41#(mark(X1:S),X2:S,X3:S) 16.01/16.86 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.86 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.86 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.86 MARK(and(X1:S,X2:S)) -> AND(mark(X1:S),X2:S) 16.01/16.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.86 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.86 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.86 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.86 MARK(plus(X1:S,X2:S)) -> PLUS(mark(X1:S),mark(X2:S)) 16.01/16.86 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.86 MARK(s(X:S)) -> MARK(X:S) 16.01/16.86 MARK(s(X:S)) -> S(mark(X:S)) 16.01/16.86 PLUS(active(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.86 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.86 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.86 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.86 S(active(X:S)) -> S(X:S) 16.01/16.86 S(mark(X:S)) -> S(X:S) 16.01/16.86 -> Rules: 16.01/16.86 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.86 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.86 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.86 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.86 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.86 U13(active(X:S)) -> U13(X:S) 16.01/16.86 U13(mark(X:S)) -> U13(X:S) 16.01/16.86 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.86 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.86 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.86 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.86 U22(active(X:S)) -> U22(X:S) 16.01/16.86 U22(mark(X:S)) -> U22(X:S) 16.01/16.86 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.86 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.86 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.86 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.86 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.86 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.86 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.86 active(U13(tt)) -> mark(tt) 16.01/16.86 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.86 active(U22(tt)) -> mark(tt) 16.01/16.86 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.86 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.86 active(and(tt,X:S)) -> mark(X:S) 16.01/16.86 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.86 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.86 active(isNat(0)) -> mark(tt) 16.01/16.86 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.86 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.86 active(isNatKind(0)) -> mark(tt) 16.01/16.86 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.86 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.86 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.86 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.86 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.86 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.86 isNat(active(X:S)) -> isNat(X:S) 16.01/16.86 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.86 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.86 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.86 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.86 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.86 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.86 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.86 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.86 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.86 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.86 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.86 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.86 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.86 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.86 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.86 mark(0) -> active(0) 16.01/16.86 mark(tt) -> active(tt) 16.01/16.86 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.86 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.86 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.86 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.86 s(active(X:S)) -> s(X:S) 16.01/16.86 s(mark(X:S)) -> s(X:S) 16.01/16.86 16.01/16.86 Problem 1: 16.01/16.86 16.01/16.86 SCC Processor: 16.01/16.86 -> Pairs: 16.01/16.86 U11#(active(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(mark(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.86 U12#(active(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(mark(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.86 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.86 U13#(active(X:S)) -> U13#(X:S) 16.01/16.86 U13#(mark(X:S)) -> U13#(X:S) 16.01/16.86 U21#(active(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(mark(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.86 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.86 U22#(active(X:S)) -> U22#(X:S) 16.01/16.86 U22#(mark(X:S)) -> U22#(X:S) 16.01/16.86 U31#(active(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(mark(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.86 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.86 U41#(active(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(mark(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> U12#(isNat(V1:S),V2:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> ISNAT(V1:S) 16.01/16.86 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> U13#(isNat(V2:S)) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> ISNAT(V2:S) 16.01/16.86 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.86 ACTIVE(U13(tt)) -> MARK(tt) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> U22#(isNat(V1:S)) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> ISNAT(V1:S) 16.01/16.86 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.86 ACTIVE(U22(tt)) -> MARK(tt) 16.01/16.86 ACTIVE(U31(tt,N:S)) -> MARK(N:S) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> PLUS(N:S,M:S) 16.01/16.86 ACTIVE(U41(tt,M:S,N:S)) -> S(plus(N:S,M:S)) 16.01/16.86 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> U11#(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> AND(isNatKind(V1:S),isNatKind(V2:S)) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> ISNATKIND(V2:S) 16.01/16.86 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> U21#(isNatKind(V1:S),V1:S) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.86 ACTIVE(isNat(0)) -> MARK(tt) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> AND(isNatKind(V1:S),isNatKind(V2:S)) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> ISNATKIND(V2:S) 16.01/16.86 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.86 ACTIVE(isNatKind(s(V1:S))) -> ISNATKIND(V1:S) 16.01/16.86 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.86 ACTIVE(isNatKind(0)) -> MARK(tt) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> U41#(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(isNat(M:S),isNatKind(M:S)) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> AND(isNat(N:S),isNatKind(N:S)) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNAT(M:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNAT(N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNATKIND(M:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> ISNATKIND(N:S) 16.01/16.86 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.86 ACTIVE(plus(N:S,0)) -> U31#(and(isNat(N:S),isNatKind(N:S)),N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> AND(isNat(N:S),isNatKind(N:S)) 16.01/16.86 ACTIVE(plus(N:S,0)) -> ISNAT(N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> ISNATKIND(N:S) 16.01/16.86 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.86 AND(active(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.86 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.86 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.86 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.86 ISNAT(active(X:S)) -> ISNAT(X:S) 16.01/16.86 ISNAT(mark(X:S)) -> ISNAT(X:S) 16.01/16.86 ISNATKIND(active(X:S)) -> ISNATKIND(X:S) 16.01/16.86 ISNATKIND(mark(X:S)) -> ISNATKIND(X:S) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> U11#(mark(X1:S),X2:S,X3:S) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.86 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> U12#(mark(X1:S),X2:S) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.86 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U13(X:S)) -> U13#(mark(X:S)) 16.01/16.86 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.86 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> U21#(mark(X1:S),X2:S) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.86 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U22(X:S)) -> U22#(mark(X:S)) 16.01/16.86 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.86 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> U31#(mark(X1:S),X2:S) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.86 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.86 MARK(U41(X1:S,X2:S,X3:S)) -> U41#(mark(X1:S),X2:S,X3:S) 16.01/16.86 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.87 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.87 MARK(and(X1:S,X2:S)) -> AND(mark(X1:S),X2:S) 16.01/16.87 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.87 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> PLUS(mark(X1:S),mark(X2:S)) 16.01/16.87 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.87 MARK(s(X:S)) -> MARK(X:S) 16.01/16.87 MARK(s(X:S)) -> S(mark(X:S)) 16.01/16.87 PLUS(active(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 S(active(X:S)) -> S(X:S) 16.01/16.87 S(mark(X:S)) -> S(X:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 S(active(X:S)) -> S(X:S) 16.01/16.87 S(mark(X:S)) -> S(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 PLUS(active(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 ISNATKIND(active(X:S)) -> ISNATKIND(X:S) 16.01/16.87 ISNATKIND(mark(X:S)) -> ISNATKIND(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 ISNAT(active(X:S)) -> ISNAT(X:S) 16.01/16.87 ISNAT(mark(X:S)) -> ISNAT(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 AND(active(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.87 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.87 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.87 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U41#(active(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 U41#(mark(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U31#(active(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.87 U31#(mark(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.87 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.87 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U22#(active(X:S)) -> U22#(X:S) 16.01/16.87 U22#(mark(X:S)) -> U22#(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U21#(active(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.87 U21#(mark(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.87 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.87 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U13#(active(X:S)) -> U13#(X:S) 16.01/16.87 U13#(mark(X:S)) -> U13#(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U12#(active(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.87 U12#(mark(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.87 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.87 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 U11#(active(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 U11#(mark(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.87 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.87 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.87 ACTIVE(U31(tt,N:S)) -> MARK(N:S) 16.01/16.87 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.87 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.87 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.87 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.87 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.87 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.87 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.87 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.87 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.87 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.87 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.87 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.87 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.87 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.87 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.87 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.87 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.87 MARK(s(X:S)) -> MARK(X:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 16.01/16.87 16.01/16.87 The problem is decomposed in 13 subproblems. 16.01/16.87 16.01/16.87 Problem 1.1: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 S(active(X:S)) -> S(X:S) 16.01/16.87 S(mark(X:S)) -> S(X:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Projection: 16.01/16.87 pi(S) = 1 16.01/16.87 16.01/16.87 Problem 1.1: 16.01/16.87 16.01/16.87 SCC Processor: 16.01/16.87 -> Pairs: 16.01/16.87 Empty 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 There is no strongly connected component 16.01/16.87 16.01/16.87 The problem is finite. 16.01/16.87 16.01/16.87 Problem 1.2: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 PLUS(active(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(mark(X1:S),X2:S) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Projection: 16.01/16.87 pi(PLUS) = 1 16.01/16.87 16.01/16.87 Problem 1.2: 16.01/16.87 16.01/16.87 SCC Processor: 16.01/16.87 -> Pairs: 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 ->->Cycle: 16.01/16.87 ->->-> Pairs: 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 ->->-> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 16.01/16.87 Problem 1.2: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 PLUS(X1:S,active(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 PLUS(X1:S,mark(X2:S)) -> PLUS(X1:S,X2:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Projection: 16.01/16.87 pi(PLUS) = 2 16.01/16.87 16.01/16.87 Problem 1.2: 16.01/16.87 16.01/16.87 SCC Processor: 16.01/16.87 -> Pairs: 16.01/16.87 Empty 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 There is no strongly connected component 16.01/16.87 16.01/16.87 The problem is finite. 16.01/16.87 16.01/16.87 Problem 1.3: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 ISNATKIND(active(X:S)) -> ISNATKIND(X:S) 16.01/16.87 ISNATKIND(mark(X:S)) -> ISNATKIND(X:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Projection: 16.01/16.87 pi(ISNATKIND) = 1 16.01/16.87 16.01/16.87 Problem 1.3: 16.01/16.87 16.01/16.87 SCC Processor: 16.01/16.87 -> Pairs: 16.01/16.87 Empty 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 There is no strongly connected component 16.01/16.87 16.01/16.87 The problem is finite. 16.01/16.87 16.01/16.87 Problem 1.4: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 ISNAT(active(X:S)) -> ISNAT(X:S) 16.01/16.87 ISNAT(mark(X:S)) -> ISNAT(X:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Projection: 16.01/16.87 pi(ISNAT) = 1 16.01/16.87 16.01/16.87 Problem 1.4: 16.01/16.87 16.01/16.87 SCC Processor: 16.01/16.87 -> Pairs: 16.01/16.87 Empty 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.87 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.87 U13(active(X:S)) -> U13(X:S) 16.01/16.87 U13(mark(X:S)) -> U13(X:S) 16.01/16.87 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.87 U22(active(X:S)) -> U22(X:S) 16.01/16.87 U22(mark(X:S)) -> U22(X:S) 16.01/16.87 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.87 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.87 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.87 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.87 active(U13(tt)) -> mark(tt) 16.01/16.87 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.87 active(U22(tt)) -> mark(tt) 16.01/16.87 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.87 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.87 active(and(tt,X:S)) -> mark(X:S) 16.01/16.87 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.87 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.87 active(isNat(0)) -> mark(tt) 16.01/16.87 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.87 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.87 active(isNatKind(0)) -> mark(tt) 16.01/16.87 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.87 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.87 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.87 isNat(active(X:S)) -> isNat(X:S) 16.01/16.87 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.87 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.87 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.87 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.87 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.87 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.87 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.87 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.87 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.87 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.87 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.87 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.87 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.87 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.87 mark(0) -> active(0) 16.01/16.87 mark(tt) -> active(tt) 16.01/16.87 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.87 s(active(X:S)) -> s(X:S) 16.01/16.87 s(mark(X:S)) -> s(X:S) 16.01/16.87 ->Strongly Connected Components: 16.01/16.87 There is no strongly connected component 16.01/16.87 16.01/16.87 The problem is finite. 16.01/16.87 16.01/16.87 Problem 1.5: 16.01/16.87 16.01/16.87 Subterm Processor: 16.01/16.87 -> Pairs: 16.01/16.87 AND(active(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.87 AND(mark(X1:S),X2:S) -> AND(X1:S,X2:S) 16.01/16.87 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.87 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.87 -> Rules: 16.01/16.87 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(AND) = 1 16.01/16.88 16.01/16.88 Problem 1.5: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 ->->Cycle: 16.01/16.88 ->->-> Pairs: 16.01/16.88 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 ->->-> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 16.01/16.88 Problem 1.5: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 AND(X1:S,active(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 AND(X1:S,mark(X2:S)) -> AND(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(AND) = 2 16.01/16.88 16.01/16.88 Problem 1.5: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 Empty 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 There is no strongly connected component 16.01/16.88 16.01/16.88 The problem is finite. 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U41#(active(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(mark(X1:S),X2:S,X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U41#) = 1 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 ->->Cycle: 16.01/16.88 ->->-> Pairs: 16.01/16.88 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 ->->-> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U41#(X1:S,active(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,mark(X2:S),X3:S) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U41#) = 2 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 ->->Cycle: 16.01/16.88 ->->-> Pairs: 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 ->->-> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U41#(X1:S,X2:S,active(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 U41#(X1:S,X2:S,mark(X3:S)) -> U41#(X1:S,X2:S,X3:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U41#) = 3 16.01/16.88 16.01/16.88 Problem 1.6: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 Empty 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 There is no strongly connected component 16.01/16.88 16.01/16.88 The problem is finite. 16.01/16.88 16.01/16.88 Problem 1.7: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U31#(active(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(mark(X1:S),X2:S) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U31#) = 1 16.01/16.88 16.01/16.88 Problem 1.7: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 ->->Cycle: 16.01/16.88 ->->-> Pairs: 16.01/16.88 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 ->->-> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 16.01/16.88 Problem 1.7: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U31#(X1:S,active(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 U31#(X1:S,mark(X2:S)) -> U31#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U31#) = 2 16.01/16.88 16.01/16.88 Problem 1.7: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 Empty 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 There is no strongly connected component 16.01/16.88 16.01/16.88 The problem is finite. 16.01/16.88 16.01/16.88 Problem 1.8: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U22#(active(X:S)) -> U22#(X:S) 16.01/16.88 U22#(mark(X:S)) -> U22#(X:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U22#) = 1 16.01/16.88 16.01/16.88 Problem 1.8: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 Empty 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 There is no strongly connected component 16.01/16.88 16.01/16.88 The problem is finite. 16.01/16.88 16.01/16.88 Problem 1.9: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U21#(active(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(mark(X1:S),X2:S) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U21#) = 1 16.01/16.88 16.01/16.88 Problem 1.9: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 ->->Cycle: 16.01/16.88 ->->-> Pairs: 16.01/16.88 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 ->->-> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 16.01/16.88 Problem 1.9: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U21#(X1:S,active(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 U21#(X1:S,mark(X2:S)) -> U21#(X1:S,X2:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Projection: 16.01/16.88 pi(U21#) = 2 16.01/16.88 16.01/16.88 Problem 1.9: 16.01/16.88 16.01/16.88 SCC Processor: 16.01/16.88 -> Pairs: 16.01/16.88 Empty 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.88 active(U13(tt)) -> mark(tt) 16.01/16.88 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.88 active(U22(tt)) -> mark(tt) 16.01/16.88 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.88 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.88 active(and(tt,X:S)) -> mark(X:S) 16.01/16.88 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.88 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.88 active(isNat(0)) -> mark(tt) 16.01/16.88 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.88 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.88 active(isNatKind(0)) -> mark(tt) 16.01/16.88 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.88 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.88 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.88 isNat(active(X:S)) -> isNat(X:S) 16.01/16.88 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.88 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.88 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.88 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.88 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.88 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.88 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.88 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.88 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.88 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.88 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.88 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.88 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.88 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.88 mark(0) -> active(0) 16.01/16.88 mark(tt) -> active(tt) 16.01/16.88 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.88 s(active(X:S)) -> s(X:S) 16.01/16.88 s(mark(X:S)) -> s(X:S) 16.01/16.88 ->Strongly Connected Components: 16.01/16.88 There is no strongly connected component 16.01/16.88 16.01/16.88 The problem is finite. 16.01/16.88 16.01/16.88 Problem 1.10: 16.01/16.88 16.01/16.88 Subterm Processor: 16.01/16.88 -> Pairs: 16.01/16.88 U13#(active(X:S)) -> U13#(X:S) 16.01/16.88 U13#(mark(X:S)) -> U13#(X:S) 16.01/16.88 -> Rules: 16.01/16.88 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.88 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.88 U13(active(X:S)) -> U13(X:S) 16.01/16.88 U13(mark(X:S)) -> U13(X:S) 16.01/16.88 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.88 U22(active(X:S)) -> U22(X:S) 16.01/16.88 U22(mark(X:S)) -> U22(X:S) 16.01/16.88 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.88 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.88 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.88 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U13#) = 1 16.01/16.89 16.01/16.89 Problem 1.10: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 Empty 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 There is no strongly connected component 16.01/16.89 16.01/16.89 The problem is finite. 16.01/16.89 16.01/16.89 Problem 1.11: 16.01/16.89 16.01/16.89 Subterm Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U12#(active(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(mark(X1:S),X2:S) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U12#) = 1 16.01/16.89 16.01/16.89 Problem 1.11: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 ->->Cycle: 16.01/16.89 ->->-> Pairs: 16.01/16.89 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 ->->-> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 16.01/16.89 Problem 1.11: 16.01/16.89 16.01/16.89 Subterm Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U12#(X1:S,active(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 U12#(X1:S,mark(X2:S)) -> U12#(X1:S,X2:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U12#) = 2 16.01/16.89 16.01/16.89 Problem 1.11: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 Empty 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 There is no strongly connected component 16.01/16.89 16.01/16.89 The problem is finite. 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 Subterm Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U11#(active(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(mark(X1:S),X2:S,X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U11#) = 1 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 ->->Cycle: 16.01/16.89 ->->-> Pairs: 16.01/16.89 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 ->->-> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 Subterm Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U11#(X1:S,active(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,mark(X2:S),X3:S) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U11#) = 2 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 ->->Cycle: 16.01/16.89 ->->-> Pairs: 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 ->->-> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 Subterm Processor: 16.01/16.89 -> Pairs: 16.01/16.89 U11#(X1:S,X2:S,active(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 U11#(X1:S,X2:S,mark(X3:S)) -> U11#(X1:S,X2:S,X3:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Projection: 16.01/16.89 pi(U11#) = 3 16.01/16.89 16.01/16.89 Problem 1.12: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 Empty 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 There is no strongly connected component 16.01/16.89 16.01/16.89 The problem is finite. 16.01/16.89 16.01/16.89 Problem 1.13: 16.01/16.89 16.01/16.89 Reduction Pairs Processor: 16.01/16.89 -> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(U31(tt,N:S)) -> MARK(N:S) 16.01/16.89 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 -> Usable rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Interpretation type: 16.01/16.89 Linear 16.01/16.89 ->Coefficients: 16.01/16.89 Natural Numbers 16.01/16.89 ->Dimension: 16.01/16.89 1 16.01/16.89 ->Bound: 16.01/16.89 2 16.01/16.89 ->Interpretation: 16.01/16.89 16.01/16.89 [U11](X1,X2,X3) = X1 16.01/16.89 [U12](X1,X2) = 2.X1 16.01/16.89 [U13](X) = X 16.01/16.89 [U21](X1,X2) = X1 16.01/16.89 [U22](X) = 2.X 16.01/16.89 [U31](X1,X2) = 2.X1 + 2.X2 + 2 16.01/16.89 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 16.01/16.89 [active](X) = X 16.01/16.89 [and](X1,X2) = 2.X1 + 2.X2 16.01/16.89 [isNat](X) = 0 16.01/16.89 [isNatKind](X) = 0 16.01/16.89 [mark](X) = X 16.01/16.89 [plus](X1,X2) = 2.X1 + 2.X2 16.01/16.89 [s](X) = X 16.01/16.89 [0] = 2 16.01/16.89 [fSNonEmpty] = 0 16.01/16.89 [tt] = 0 16.01/16.89 [U11#](X1,X2,X3) = 0 16.01/16.89 [U12#](X1,X2) = 0 16.01/16.89 [U13#](X) = 0 16.01/16.89 [U21#](X1,X2) = 0 16.01/16.89 [U22#](X) = 0 16.01/16.89 [U31#](X1,X2) = 0 16.01/16.89 [U41#](X1,X2,X3) = 0 16.01/16.89 [ACTIVE](X) = 2.X + 2 16.01/16.89 [AND](X1,X2) = 0 16.01/16.89 [ISNAT](X) = 0 16.01/16.89 [ISNATKIND](X) = 0 16.01/16.89 [MARK](X) = 2.X + 2 16.01/16.89 [PLUS](X1,X2) = 0 16.01/16.89 [S](X) = 0 16.01/16.89 16.01/16.89 Problem 1.13: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 ->->Cycle: 16.01/16.89 ->->-> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 ->->-> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 16.01/16.89 Problem 1.13: 16.01/16.89 16.01/16.89 Reduction Pairs Processor: 16.01/16.89 -> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(U41(tt,M:S,N:S)) -> MARK(s(plus(N:S,M:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 -> Usable rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Interpretation type: 16.01/16.89 Linear 16.01/16.89 ->Coefficients: 16.01/16.89 Natural Numbers 16.01/16.89 ->Dimension: 16.01/16.89 1 16.01/16.89 ->Bound: 16.01/16.89 2 16.01/16.89 ->Interpretation: 16.01/16.89 16.01/16.89 [U11](X1,X2,X3) = X1 16.01/16.89 [U12](X1,X2) = 2.X1 16.01/16.89 [U13](X) = 2.X 16.01/16.89 [U21](X1,X2) = 2.X1 16.01/16.89 [U22](X) = X 16.01/16.89 [U31](X1,X2) = 2.X1 + 2.X2 16.01/16.89 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 16.01/16.89 [active](X) = X 16.01/16.89 [and](X1,X2) = 2.X1 + 2.X2 16.01/16.89 [isNat](X) = 0 16.01/16.89 [isNatKind](X) = 0 16.01/16.89 [mark](X) = X 16.01/16.89 [plus](X1,X2) = 2.X1 + 2.X2 16.01/16.89 [s](X) = X + 1 16.01/16.89 [0] = 0 16.01/16.89 [fSNonEmpty] = 0 16.01/16.89 [tt] = 0 16.01/16.89 [U11#](X1,X2,X3) = 0 16.01/16.89 [U12#](X1,X2) = 0 16.01/16.89 [U13#](X) = 0 16.01/16.89 [U21#](X1,X2) = 0 16.01/16.89 [U22#](X) = 0 16.01/16.89 [U31#](X1,X2) = 0 16.01/16.89 [U41#](X1,X2,X3) = 0 16.01/16.89 [ACTIVE](X) = 2.X + 2 16.01/16.89 [AND](X1,X2) = 0 16.01/16.89 [ISNAT](X) = 0 16.01/16.89 [ISNATKIND](X) = 0 16.01/16.89 [MARK](X) = 2.X + 2 16.01/16.89 [PLUS](X1,X2) = 0 16.01/16.89 [S](X) = 0 16.01/16.89 16.01/16.89 Problem 1.13: 16.01/16.89 16.01/16.89 SCC Processor: 16.01/16.89 -> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 -> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.89 isNat(active(X:S)) -> isNat(X:S) 16.01/16.89 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.89 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.89 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.89 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.89 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.89 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.89 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.89 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.89 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.89 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.89 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.89 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.89 mark(0) -> active(0) 16.01/16.89 mark(tt) -> active(tt) 16.01/16.89 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.89 s(active(X:S)) -> s(X:S) 16.01/16.89 s(mark(X:S)) -> s(X:S) 16.01/16.89 ->Strongly Connected Components: 16.01/16.89 ->->Cycle: 16.01/16.89 ->->-> Pairs: 16.01/16.89 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.89 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.89 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.89 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.89 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.89 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.89 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.89 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.89 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.89 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.89 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.89 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.89 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.89 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.89 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.89 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.89 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.89 MARK(s(X:S)) -> MARK(X:S) 16.01/16.89 ->->-> Rules: 16.01/16.89 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.89 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.89 U13(active(X:S)) -> U13(X:S) 16.01/16.89 U13(mark(X:S)) -> U13(X:S) 16.01/16.89 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.89 U22(active(X:S)) -> U22(X:S) 16.01/16.89 U22(mark(X:S)) -> U22(X:S) 16.01/16.89 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.89 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.89 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.89 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.89 active(U13(tt)) -> mark(tt) 16.01/16.89 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.89 active(U22(tt)) -> mark(tt) 16.01/16.89 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.89 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.89 active(and(tt,X:S)) -> mark(X:S) 16.01/16.89 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.89 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.89 active(isNat(0)) -> mark(tt) 16.01/16.89 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.89 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.89 active(isNatKind(0)) -> mark(tt) 16.01/16.89 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.89 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.89 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.89 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 16.01/16.90 Problem 1.13: 16.01/16.90 16.01/16.90 Reduction Pairs Processor: 16.01/16.90 -> Pairs: 16.01/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.90 ACTIVE(plus(N:S,s(M:S))) -> MARK(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.90 MARK(s(X:S)) -> MARK(X:S) 16.01/16.90 -> Rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 -> Usable rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 ->Interpretation type: 16.01/16.90 Linear 16.01/16.90 ->Coefficients: 16.01/16.90 Natural Numbers 16.01/16.90 ->Dimension: 16.01/16.90 1 16.01/16.90 ->Bound: 16.01/16.90 2 16.01/16.90 ->Interpretation: 16.01/16.90 16.01/16.90 [U11](X1,X2,X3) = 2.X1 16.01/16.90 [U12](X1,X2) = 2.X1 16.01/16.90 [U13](X) = 2.X 16.01/16.90 [U21](X1,X2) = X1 16.01/16.90 [U22](X) = X 16.01/16.90 [U31](X1,X2) = 2.X1 + 2.X2 + 1 16.01/16.90 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.01/16.90 [active](X) = X 16.01/16.90 [and](X1,X2) = 2.X1 + 2.X2 16.01/16.90 [isNat](X) = 0 16.01/16.90 [isNatKind](X) = 0 16.01/16.90 [mark](X) = X 16.01/16.90 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.01/16.90 [s](X) = X + 1 16.01/16.90 [0] = 0 16.01/16.90 [fSNonEmpty] = 0 16.01/16.90 [tt] = 0 16.01/16.90 [U11#](X1,X2,X3) = 0 16.01/16.90 [U12#](X1,X2) = 0 16.01/16.90 [U13#](X) = 0 16.01/16.90 [U21#](X1,X2) = 0 16.01/16.90 [U22#](X) = 0 16.01/16.90 [U31#](X1,X2) = 0 16.01/16.90 [U41#](X1,X2,X3) = 0 16.01/16.90 [ACTIVE](X) = 2.X + 2 16.01/16.90 [AND](X1,X2) = 0 16.01/16.90 [ISNAT](X) = 0 16.01/16.90 [ISNATKIND](X) = 0 16.01/16.90 [MARK](X) = 2.X + 2 16.01/16.90 [PLUS](X1,X2) = 0 16.01/16.90 [S](X) = 0 16.01/16.90 16.01/16.90 Problem 1.13: 16.01/16.90 16.01/16.90 SCC Processor: 16.01/16.90 -> Pairs: 16.01/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.90 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.90 MARK(s(X:S)) -> MARK(X:S) 16.01/16.90 -> Rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 ->Strongly Connected Components: 16.01/16.90 ->->Cycle: 16.01/16.90 ->->-> Pairs: 16.01/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.90 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.90 MARK(s(X:S)) -> MARK(X:S) 16.01/16.90 ->->-> Rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 16.01/16.90 Problem 1.13: 16.01/16.90 16.01/16.90 Reduction Pairs Processor: 16.01/16.90 -> Pairs: 16.01/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.90 ACTIVE(plus(N:S,0)) -> MARK(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.01/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.01/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.01/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.01/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.01/16.90 MARK(s(X:S)) -> MARK(X:S) 16.01/16.90 -> Rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 -> Usable rules: 16.01/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.01/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.01/16.90 U13(active(X:S)) -> U13(X:S) 16.01/16.90 U13(mark(X:S)) -> U13(X:S) 16.01/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.01/16.90 U22(active(X:S)) -> U22(X:S) 16.01/16.90 U22(mark(X:S)) -> U22(X:S) 16.01/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.01/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.01/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.01/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.01/16.90 active(U13(tt)) -> mark(tt) 16.01/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.01/16.90 active(U22(tt)) -> mark(tt) 16.01/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.01/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.01/16.90 active(and(tt,X:S)) -> mark(X:S) 16.01/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 active(isNat(0)) -> mark(tt) 16.01/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.01/16.90 active(isNatKind(0)) -> mark(tt) 16.01/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.01/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.01/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.01/16.90 isNat(active(X:S)) -> isNat(X:S) 16.01/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.01/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.01/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.01/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.01/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.01/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.01/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.01/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.01/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.01/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.01/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.01/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.01/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.01/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.01/16.90 mark(0) -> active(0) 16.01/16.90 mark(tt) -> active(tt) 16.01/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.01/16.90 s(active(X:S)) -> s(X:S) 16.01/16.90 s(mark(X:S)) -> s(X:S) 16.01/16.90 ->Interpretation type: 16.01/16.90 Linear 16.01/16.90 ->Coefficients: 16.01/16.90 Natural Numbers 16.01/16.90 ->Dimension: 16.01/16.90 1 16.01/16.90 ->Bound: 16.01/16.90 2 16.01/16.90 ->Interpretation: 16.01/16.90 16.01/16.90 [U11](X1,X2,X3) = 2.X1 16.01/16.90 [U12](X1,X2) = 2.X1 16.01/16.90 [U13](X) = 2.X 16.01/16.90 [U21](X1,X2) = 2.X1 16.01/16.90 [U22](X) = X 16.01/16.90 [U31](X1,X2) = 2.X1 + 2.X2 + 1 16.01/16.90 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.01/16.90 [active](X) = X 16.01/16.90 [and](X1,X2) = 2.X1 + X2 16.01/16.90 [isNat](X) = 0 16.01/16.90 [isNatKind](X) = 0 16.01/16.90 [mark](X) = X 16.01/16.90 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.01/16.90 [s](X) = X 16.01/16.90 [0] = 1 16.01/16.90 [fSNonEmpty] = 0 16.01/16.90 [tt] = 0 16.01/16.90 [U11#](X1,X2,X3) = 0 16.01/16.90 [U12#](X1,X2) = 0 16.01/16.90 [U13#](X) = 0 16.01/16.90 [U21#](X1,X2) = 0 16.01/16.90 [U22#](X) = 0 16.01/16.90 [U31#](X1,X2) = 0 16.01/16.90 [U41#](X1,X2,X3) = 0 16.01/16.90 [ACTIVE](X) = 2.X + 2 16.01/16.90 [AND](X1,X2) = 0 16.01/16.90 [ISNAT](X) = 0 16.01/16.90 [ISNATKIND](X) = 0 16.01/16.90 [MARK](X) = 2.X + 2 16.01/16.90 [PLUS](X1,X2) = 0 16.01/16.90 [S](X) = 0 16.01/16.90 16.01/16.90 Problem 1.13: 16.01/16.90 16.01/16.90 SCC Processor: 16.01/16.90 -> Pairs: 16.01/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.01/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.01/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.01/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.01/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.01/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.01/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.01/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.01/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.01/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.01/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.01/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.01/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.01/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Strongly Connected Components: 16.04/16.90 ->->Cycle: 16.04/16.90 ->->-> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 ->->-> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 Reduction Pairs Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> ACTIVE(U13(mark(X:S))) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 -> Usable rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Interpretation type: 16.04/16.90 Linear 16.04/16.90 ->Coefficients: 16.04/16.90 Natural Numbers 16.04/16.90 ->Dimension: 16.04/16.90 1 16.04/16.90 ->Bound: 16.04/16.90 2 16.04/16.90 ->Interpretation: 16.04/16.90 16.04/16.90 [U11](X1,X2,X3) = 1 16.04/16.90 [U12](X1,X2) = 1 16.04/16.90 [U13](X) = 0 16.04/16.90 [U21](X1,X2) = 1 16.04/16.90 [U22](X) = 1 16.04/16.90 [U31](X1,X2) = 1 16.04/16.90 [U41](X1,X2,X3) = 1 16.04/16.90 [active](X) = 2 16.04/16.90 [and](X1,X2) = 1 16.04/16.90 [isNat](X) = 1 16.04/16.90 [isNatKind](X) = 1 16.04/16.90 [mark](X) = 2 16.04/16.90 [plus](X1,X2) = 0 16.04/16.90 [s](X) = 1 16.04/16.90 [0] = 1 16.04/16.90 [fSNonEmpty] = 0 16.04/16.90 [tt] = 0 16.04/16.90 [U11#](X1,X2,X3) = 0 16.04/16.90 [U12#](X1,X2) = 0 16.04/16.90 [U13#](X) = 0 16.04/16.90 [U21#](X1,X2) = 0 16.04/16.90 [U22#](X) = 0 16.04/16.90 [U31#](X1,X2) = 0 16.04/16.90 [U41#](X1,X2,X3) = 0 16.04/16.90 [ACTIVE](X) = 2.X 16.04/16.90 [AND](X1,X2) = 0 16.04/16.90 [ISNAT](X) = 0 16.04/16.90 [ISNATKIND](X) = 0 16.04/16.90 [MARK](X) = 2 16.04/16.90 [PLUS](X1,X2) = 0 16.04/16.90 [S](X) = 0 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 SCC Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Strongly Connected Components: 16.04/16.90 ->->Cycle: 16.04/16.90 ->->-> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 ->->-> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 Reduction Pairs Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> ACTIVE(U22(mark(X:S))) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 -> Usable rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Interpretation type: 16.04/16.90 Linear 16.04/16.90 ->Coefficients: 16.04/16.90 Natural Numbers 16.04/16.90 ->Dimension: 16.04/16.90 1 16.04/16.90 ->Bound: 16.04/16.90 2 16.04/16.90 ->Interpretation: 16.04/16.90 16.04/16.90 [U11](X1,X2,X3) = 1 16.04/16.90 [U12](X1,X2) = 1 16.04/16.90 [U13](X) = 2 16.04/16.90 [U21](X1,X2) = 1 16.04/16.90 [U22](X) = 0 16.04/16.90 [U31](X1,X2) = 1 16.04/16.90 [U41](X1,X2,X3) = 1 16.04/16.90 [active](X) = 2 16.04/16.90 [and](X1,X2) = 1 16.04/16.90 [isNat](X) = 1 16.04/16.90 [isNatKind](X) = 1 16.04/16.90 [mark](X) = 2 16.04/16.90 [plus](X1,X2) = 0 16.04/16.90 [s](X) = 1 16.04/16.90 [0] = 2 16.04/16.90 [fSNonEmpty] = 0 16.04/16.90 [tt] = 2 16.04/16.90 [U11#](X1,X2,X3) = 0 16.04/16.90 [U12#](X1,X2) = 0 16.04/16.90 [U13#](X) = 0 16.04/16.90 [U21#](X1,X2) = 0 16.04/16.90 [U22#](X) = 0 16.04/16.90 [U31#](X1,X2) = 0 16.04/16.90 [U41#](X1,X2,X3) = 0 16.04/16.90 [ACTIVE](X) = 2.X 16.04/16.90 [AND](X1,X2) = 0 16.04/16.90 [ISNAT](X) = 0 16.04/16.90 [ISNATKIND](X) = 0 16.04/16.90 [MARK](X) = 2 16.04/16.90 [PLUS](X1,X2) = 0 16.04/16.90 [S](X) = 0 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 SCC Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Strongly Connected Components: 16.04/16.90 ->->Cycle: 16.04/16.90 ->->-> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 ->->-> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 Reduction Pairs Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> ACTIVE(U31(mark(X1:S),X2:S)) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 -> Usable rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.90 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.90 active(U13(tt)) -> mark(tt) 16.04/16.90 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.90 active(U22(tt)) -> mark(tt) 16.04/16.90 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.90 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.90 active(and(tt,X:S)) -> mark(X:S) 16.04/16.90 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 active(isNat(0)) -> mark(tt) 16.04/16.90 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.90 active(isNatKind(0)) -> mark(tt) 16.04/16.90 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.90 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.90 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.90 isNat(active(X:S)) -> isNat(X:S) 16.04/16.90 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.90 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.90 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.90 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.90 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.90 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.90 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.90 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.90 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.90 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.90 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.90 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.90 mark(0) -> active(0) 16.04/16.90 mark(tt) -> active(tt) 16.04/16.90 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.90 s(active(X:S)) -> s(X:S) 16.04/16.90 s(mark(X:S)) -> s(X:S) 16.04/16.90 ->Interpretation type: 16.04/16.90 Linear 16.04/16.90 ->Coefficients: 16.04/16.90 Natural Numbers 16.04/16.90 ->Dimension: 16.04/16.90 1 16.04/16.90 ->Bound: 16.04/16.90 2 16.04/16.90 ->Interpretation: 16.04/16.90 16.04/16.90 [U11](X1,X2,X3) = 1 16.04/16.90 [U12](X1,X2) = 1 16.04/16.90 [U13](X) = 2 16.04/16.90 [U21](X1,X2) = 1 16.04/16.90 [U22](X) = 2 16.04/16.90 [U31](X1,X2) = 0 16.04/16.90 [U41](X1,X2,X3) = 0 16.04/16.90 [active](X) = 2 16.04/16.90 [and](X1,X2) = 1 16.04/16.90 [isNat](X) = 1 16.04/16.90 [isNatKind](X) = 1 16.04/16.90 [mark](X) = 2 16.04/16.90 [plus](X1,X2) = 1 16.04/16.90 [s](X) = 1 16.04/16.90 [0] = 0 16.04/16.90 [fSNonEmpty] = 0 16.04/16.90 [tt] = 2 16.04/16.90 [U11#](X1,X2,X3) = 0 16.04/16.90 [U12#](X1,X2) = 0 16.04/16.90 [U13#](X) = 0 16.04/16.90 [U21#](X1,X2) = 0 16.04/16.90 [U22#](X) = 0 16.04/16.90 [U31#](X1,X2) = 0 16.04/16.90 [U41#](X1,X2,X3) = 0 16.04/16.90 [ACTIVE](X) = 2.X 16.04/16.90 [AND](X1,X2) = 0 16.04/16.90 [ISNAT](X) = 0 16.04/16.90 [ISNATKIND](X) = 0 16.04/16.90 [MARK](X) = 2 16.04/16.90 [PLUS](X1,X2) = 0 16.04/16.90 [S](X) = 0 16.04/16.90 16.04/16.90 Problem 1.13: 16.04/16.90 16.04/16.90 SCC Processor: 16.04/16.90 -> Pairs: 16.04/16.90 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.90 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.90 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.90 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.90 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.90 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.90 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.90 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.90 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.90 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.90 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.90 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.90 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.90 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.90 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.90 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.90 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.90 MARK(s(X:S)) -> MARK(X:S) 16.04/16.90 -> Rules: 16.04/16.90 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.90 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.90 U13(active(X:S)) -> U13(X:S) 16.04/16.90 U13(mark(X:S)) -> U13(X:S) 16.04/16.90 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.90 U22(active(X:S)) -> U22(X:S) 16.04/16.90 U22(mark(X:S)) -> U22(X:S) 16.04/16.90 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.90 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.90 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Strongly Connected Components: 16.04/16.91 ->->Cycle: 16.04/16.91 ->->-> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 ->->-> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 Reduction Pairs Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 -> Usable rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Interpretation type: 16.04/16.91 Linear 16.04/16.91 ->Coefficients: 16.04/16.91 Natural Numbers 16.04/16.91 ->Dimension: 16.04/16.91 1 16.04/16.91 ->Bound: 16.04/16.91 2 16.04/16.91 ->Interpretation: 16.04/16.91 16.04/16.91 [U11](X1,X2,X3) = 2.X1 16.04/16.91 [U12](X1,X2) = 2.X1 16.04/16.91 [U13](X) = 2.X 16.04/16.91 [U21](X1,X2) = 2.X1 16.04/16.91 [U22](X) = 2.X 16.04/16.91 [U31](X1,X2) = X1 + X2 + 1 16.04/16.91 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.91 [active](X) = X 16.04/16.91 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.91 [isNat](X) = 0 16.04/16.91 [isNatKind](X) = 0 16.04/16.91 [mark](X) = X 16.04/16.91 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.91 [s](X) = X 16.04/16.91 [0] = 2 16.04/16.91 [fSNonEmpty] = 0 16.04/16.91 [tt] = 0 16.04/16.91 [U11#](X1,X2,X3) = 0 16.04/16.91 [U12#](X1,X2) = 0 16.04/16.91 [U13#](X) = 0 16.04/16.91 [U21#](X1,X2) = 0 16.04/16.91 [U22#](X) = 0 16.04/16.91 [U31#](X1,X2) = 0 16.04/16.91 [U41#](X1,X2,X3) = 0 16.04/16.91 [ACTIVE](X) = 2.X + 1 16.04/16.91 [AND](X1,X2) = 0 16.04/16.91 [ISNAT](X) = 0 16.04/16.91 [ISNATKIND](X) = 0 16.04/16.91 [MARK](X) = 2.X + 1 16.04/16.91 [PLUS](X1,X2) = 0 16.04/16.91 [S](X) = 0 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 SCC Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Strongly Connected Components: 16.04/16.91 ->->Cycle: 16.04/16.91 ->->-> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 ->->-> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 Reduction Pairs Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> ACTIVE(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 -> Usable rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Interpretation type: 16.04/16.91 Linear 16.04/16.91 ->Coefficients: 16.04/16.91 Natural Numbers 16.04/16.91 ->Dimension: 16.04/16.91 1 16.04/16.91 ->Bound: 16.04/16.91 2 16.04/16.91 ->Interpretation: 16.04/16.91 16.04/16.91 [U11](X1,X2,X3) = X1 16.04/16.91 [U12](X1,X2) = 2.X1 16.04/16.91 [U13](X) = 2.X 16.04/16.91 [U21](X1,X2) = X1 16.04/16.91 [U22](X) = 2.X 16.04/16.91 [U31](X1,X2) = X1 + 2.X2 + 2 16.04/16.91 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 16.04/16.91 [active](X) = X 16.04/16.91 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.91 [isNat](X) = 0 16.04/16.91 [isNatKind](X) = 0 16.04/16.91 [mark](X) = X 16.04/16.91 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.91 [s](X) = X 16.04/16.91 [0] = 2 16.04/16.91 [fSNonEmpty] = 0 16.04/16.91 [tt] = 0 16.04/16.91 [U11#](X1,X2,X3) = 0 16.04/16.91 [U12#](X1,X2) = 0 16.04/16.91 [U13#](X) = 0 16.04/16.91 [U21#](X1,X2) = 0 16.04/16.91 [U22#](X) = 0 16.04/16.91 [U31#](X1,X2) = 0 16.04/16.91 [U41#](X1,X2,X3) = 0 16.04/16.91 [ACTIVE](X) = X + 2 16.04/16.91 [AND](X1,X2) = 0 16.04/16.91 [ISNAT](X) = 0 16.04/16.91 [ISNATKIND](X) = 0 16.04/16.91 [MARK](X) = 2.X + 2 16.04/16.91 [PLUS](X1,X2) = 0 16.04/16.91 [S](X) = 0 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 SCC Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Strongly Connected Components: 16.04/16.91 ->->Cycle: 16.04/16.91 ->->-> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 ->->-> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 Reduction Pairs Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 -> Usable rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Interpretation type: 16.04/16.91 Linear 16.04/16.91 ->Coefficients: 16.04/16.91 Natural Numbers 16.04/16.91 ->Dimension: 16.04/16.91 1 16.04/16.91 ->Bound: 16.04/16.91 2 16.04/16.91 ->Interpretation: 16.04/16.91 16.04/16.91 [U11](X1,X2,X3) = 2.X1 16.04/16.91 [U12](X1,X2) = X1 16.04/16.91 [U13](X) = X 16.04/16.91 [U21](X1,X2) = X1 16.04/16.91 [U22](X) = X 16.04/16.91 [U31](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.91 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 16.04/16.91 [active](X) = X 16.04/16.91 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.91 [isNat](X) = 0 16.04/16.91 [isNatKind](X) = 0 16.04/16.91 [mark](X) = X 16.04/16.91 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.91 [s](X) = X + 1 16.04/16.91 [0] = 2 16.04/16.91 [fSNonEmpty] = 0 16.04/16.91 [tt] = 0 16.04/16.91 [U11#](X1,X2,X3) = 0 16.04/16.91 [U12#](X1,X2) = 0 16.04/16.91 [U13#](X) = 0 16.04/16.91 [U21#](X1,X2) = 0 16.04/16.91 [U22#](X) = 0 16.04/16.91 [U31#](X1,X2) = 0 16.04/16.91 [U41#](X1,X2,X3) = 0 16.04/16.91 [ACTIVE](X) = 2.X + 2 16.04/16.91 [AND](X1,X2) = 0 16.04/16.91 [ISNAT](X) = 0 16.04/16.91 [ISNATKIND](X) = 0 16.04/16.91 [MARK](X) = 2.X + 2 16.04/16.91 [PLUS](X1,X2) = 0 16.04/16.91 [S](X) = 0 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 SCC Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Strongly Connected Components: 16.04/16.91 ->->Cycle: 16.04/16.91 ->->-> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 ->->-> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 Reduction Pairs Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U11(tt,V1:S,V2:S)) -> MARK(U12(isNat(V1:S),V2:S)) 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 -> Usable rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Interpretation type: 16.04/16.91 Linear 16.04/16.91 ->Coefficients: 16.04/16.91 Natural Numbers 16.04/16.91 ->Dimension: 16.04/16.91 1 16.04/16.91 ->Bound: 16.04/16.91 2 16.04/16.91 ->Interpretation: 16.04/16.91 16.04/16.91 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.91 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.91 [U13](X) = X + 1 16.04/16.91 [U21](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.91 [U22](X) = X + 2 16.04/16.91 [U31](X1,X2) = 2.X2 + 2 16.04/16.91 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.91 [active](X) = X 16.04/16.91 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.91 [isNat](X) = 2.X 16.04/16.91 [isNatKind](X) = 0 16.04/16.91 [mark](X) = X 16.04/16.91 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.91 [s](X) = X + 1 16.04/16.91 [0] = 2 16.04/16.91 [fSNonEmpty] = 0 16.04/16.91 [tt] = 0 16.04/16.91 [U11#](X1,X2,X3) = 0 16.04/16.91 [U12#](X1,X2) = 0 16.04/16.91 [U13#](X) = 0 16.04/16.91 [U21#](X1,X2) = 0 16.04/16.91 [U22#](X) = 0 16.04/16.91 [U31#](X1,X2) = 0 16.04/16.91 [U41#](X1,X2,X3) = 0 16.04/16.91 [ACTIVE](X) = 2.X + 2 16.04/16.91 [AND](X1,X2) = 0 16.04/16.91 [ISNAT](X) = 0 16.04/16.91 [ISNATKIND](X) = 0 16.04/16.91 [MARK](X) = 2.X + 2 16.04/16.91 [PLUS](X1,X2) = 0 16.04/16.91 [S](X) = 0 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 SCC Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Strongly Connected Components: 16.04/16.91 ->->Cycle: 16.04/16.91 ->->-> Pairs: 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 ->->-> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 Reduction Pairs Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U12(tt,V2:S)) -> MARK(U13(isNat(V2:S))) 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.91 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.91 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.91 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.91 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.91 MARK(s(X:S)) -> MARK(X:S) 16.04/16.91 -> Rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 -> Usable rules: 16.04/16.91 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.91 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.91 U13(active(X:S)) -> U13(X:S) 16.04/16.91 U13(mark(X:S)) -> U13(X:S) 16.04/16.91 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.91 U22(active(X:S)) -> U22(X:S) 16.04/16.91 U22(mark(X:S)) -> U22(X:S) 16.04/16.91 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.91 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.91 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.91 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.91 active(U13(tt)) -> mark(tt) 16.04/16.91 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.91 active(U22(tt)) -> mark(tt) 16.04/16.91 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.91 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.91 active(and(tt,X:S)) -> mark(X:S) 16.04/16.91 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 active(isNat(0)) -> mark(tt) 16.04/16.91 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.91 active(isNatKind(0)) -> mark(tt) 16.04/16.91 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.91 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.91 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.91 isNat(active(X:S)) -> isNat(X:S) 16.04/16.91 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.91 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.91 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.91 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.91 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.91 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.91 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.91 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.91 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.91 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.91 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.91 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.91 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.91 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.91 mark(0) -> active(0) 16.04/16.91 mark(tt) -> active(tt) 16.04/16.91 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.91 s(active(X:S)) -> s(X:S) 16.04/16.91 s(mark(X:S)) -> s(X:S) 16.04/16.91 ->Interpretation type: 16.04/16.91 Linear 16.04/16.91 ->Coefficients: 16.04/16.91 Natural Numbers 16.04/16.91 ->Dimension: 16.04/16.91 1 16.04/16.91 ->Bound: 16.04/16.91 2 16.04/16.91 ->Interpretation: 16.04/16.91 16.04/16.91 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.91 [U12](X1,X2) = X1 + 2.X2 + 2 16.04/16.91 [U13](X) = X + 1 16.04/16.91 [U21](X1,X2) = X1 + 2.X2 + 2 16.04/16.91 [U22](X) = X + 2 16.04/16.91 [U31](X1,X2) = 2.X2 + 2 16.04/16.91 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.91 [active](X) = X 16.04/16.91 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.91 [isNat](X) = 2.X 16.04/16.91 [isNatKind](X) = 0 16.04/16.91 [mark](X) = X 16.04/16.91 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.91 [s](X) = X + 1 16.04/16.91 [0] = 1 16.04/16.91 [fSNonEmpty] = 0 16.04/16.91 [tt] = 0 16.04/16.91 [U11#](X1,X2,X3) = 0 16.04/16.91 [U12#](X1,X2) = 0 16.04/16.91 [U13#](X) = 0 16.04/16.91 [U21#](X1,X2) = 0 16.04/16.91 [U22#](X) = 0 16.04/16.91 [U31#](X1,X2) = 0 16.04/16.91 [U41#](X1,X2,X3) = 0 16.04/16.91 [ACTIVE](X) = 2.X + 2 16.04/16.91 [AND](X1,X2) = 0 16.04/16.91 [ISNAT](X) = 0 16.04/16.91 [ISNATKIND](X) = 0 16.04/16.91 [MARK](X) = 2.X + 2 16.04/16.91 [PLUS](X1,X2) = 0 16.04/16.91 [S](X) = 0 16.04/16.91 16.04/16.91 Problem 1.13: 16.04/16.91 16.04/16.91 SCC Processor: 16.04/16.91 -> Pairs: 16.04/16.91 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.91 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.91 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.91 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.91 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.91 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.91 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.91 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.91 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.91 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Strongly Connected Components: 16.04/16.92 ->->Cycle: 16.04/16.92 ->->-> Pairs: 16.04/16.92 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 ->->-> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 Reduction Pairs Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(U21(tt,V1:S)) -> MARK(U22(isNat(V1:S))) 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 -> Usable rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Interpretation type: 16.04/16.92 Linear 16.04/16.92 ->Coefficients: 16.04/16.92 Natural Numbers 16.04/16.92 ->Dimension: 16.04/16.92 1 16.04/16.92 ->Bound: 16.04/16.92 2 16.04/16.92 ->Interpretation: 16.04/16.92 16.04/16.92 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.92 [U12](X1,X2) = X1 + 2.X2 + 2 16.04/16.92 [U13](X) = X + 2 16.04/16.92 [U21](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.92 [U22](X) = X + 1 16.04/16.92 [U31](X1,X2) = X2 + 2 16.04/16.92 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.92 [active](X) = X 16.04/16.92 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.92 [isNat](X) = 2.X 16.04/16.92 [isNatKind](X) = 0 16.04/16.92 [mark](X) = X 16.04/16.92 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.92 [s](X) = X + 1 16.04/16.92 [0] = 2 16.04/16.92 [fSNonEmpty] = 0 16.04/16.92 [tt] = 0 16.04/16.92 [U11#](X1,X2,X3) = 0 16.04/16.92 [U12#](X1,X2) = 0 16.04/16.92 [U13#](X) = 0 16.04/16.92 [U21#](X1,X2) = 0 16.04/16.92 [U22#](X) = 0 16.04/16.92 [U31#](X1,X2) = 0 16.04/16.92 [U41#](X1,X2,X3) = 0 16.04/16.92 [ACTIVE](X) = 2.X + 2 16.04/16.92 [AND](X1,X2) = 0 16.04/16.92 [ISNAT](X) = 0 16.04/16.92 [ISNATKIND](X) = 0 16.04/16.92 [MARK](X) = 2.X + 2 16.04/16.92 [PLUS](X1,X2) = 0 16.04/16.92 [S](X) = 0 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 SCC Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Strongly Connected Components: 16.04/16.92 ->->Cycle: 16.04/16.92 ->->-> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 ->->-> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 Reduction Pairs Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(plus(V1:S,V2:S))) -> MARK(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 -> Usable rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Interpretation type: 16.04/16.92 Linear 16.04/16.92 ->Coefficients: 16.04/16.92 Natural Numbers 16.04/16.92 ->Dimension: 16.04/16.92 1 16.04/16.92 ->Bound: 16.04/16.92 2 16.04/16.92 ->Interpretation: 16.04/16.92 16.04/16.92 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.92 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.92 [U13](X) = X 16.04/16.92 [U21](X1,X2) = X1 + 2.X2 + 2 16.04/16.92 [U22](X) = X + 1 16.04/16.92 [U31](X1,X2) = 2.X2 + 2 16.04/16.92 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.92 [active](X) = X 16.04/16.92 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.92 [isNat](X) = 2.X + 1 16.04/16.92 [isNatKind](X) = 0 16.04/16.92 [mark](X) = X 16.04/16.92 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.92 [s](X) = X + 1 16.04/16.92 [0] = 1 16.04/16.92 [fSNonEmpty] = 0 16.04/16.92 [tt] = 0 16.04/16.92 [U11#](X1,X2,X3) = 0 16.04/16.92 [U12#](X1,X2) = 0 16.04/16.92 [U13#](X) = 0 16.04/16.92 [U21#](X1,X2) = 0 16.04/16.92 [U22#](X) = 0 16.04/16.92 [U31#](X1,X2) = 0 16.04/16.92 [U41#](X1,X2,X3) = 0 16.04/16.92 [ACTIVE](X) = 2.X 16.04/16.92 [AND](X1,X2) = 0 16.04/16.92 [ISNAT](X) = 0 16.04/16.92 [ISNATKIND](X) = 0 16.04/16.92 [MARK](X) = 2.X 16.04/16.92 [PLUS](X1,X2) = 0 16.04/16.92 [S](X) = 0 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 SCC Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Strongly Connected Components: 16.04/16.92 ->->Cycle: 16.04/16.92 ->->-> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 ->->-> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 Reduction Pairs Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 -> Usable rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Interpretation type: 16.04/16.92 Linear 16.04/16.92 ->Coefficients: 16.04/16.92 Natural Numbers 16.04/16.92 ->Dimension: 16.04/16.92 1 16.04/16.92 ->Bound: 16.04/16.92 2 16.04/16.92 ->Interpretation: 16.04/16.92 16.04/16.92 [U11](X1,X2,X3) = X1 + 2.X2 + 2.X3 16.04/16.92 [U12](X1,X2) = X1 + 2.X2 16.04/16.92 [U13](X) = X 16.04/16.92 [U21](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.92 [U22](X) = X + 1 16.04/16.92 [U31](X1,X2) = 2.X2 + 1 16.04/16.92 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.92 [active](X) = X 16.04/16.92 [and](X1,X2) = X1 + 2.X2 16.04/16.92 [isNat](X) = 2.X 16.04/16.92 [isNatKind](X) = 0 16.04/16.92 [mark](X) = X 16.04/16.92 [plus](X1,X2) = 2.X1 + 2.X2 16.04/16.92 [s](X) = X + 2 16.04/16.92 [0] = 2 16.04/16.92 [fSNonEmpty] = 0 16.04/16.92 [tt] = 0 16.04/16.92 [U11#](X1,X2,X3) = 0 16.04/16.92 [U12#](X1,X2) = 0 16.04/16.92 [U13#](X) = 0 16.04/16.92 [U21#](X1,X2) = 0 16.04/16.92 [U22#](X) = 0 16.04/16.92 [U31#](X1,X2) = 0 16.04/16.92 [U41#](X1,X2,X3) = 0 16.04/16.92 [ACTIVE](X) = 2.X + 2 16.04/16.92 [AND](X1,X2) = 0 16.04/16.92 [ISNAT](X) = 0 16.04/16.92 [ISNATKIND](X) = 0 16.04/16.92 [MARK](X) = 2.X + 2 16.04/16.92 [PLUS](X1,X2) = 0 16.04/16.92 [S](X) = 0 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 SCC Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Strongly Connected Components: 16.04/16.92 ->->Cycle: 16.04/16.92 ->->-> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 ->->-> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 Reduction Pairs Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> ACTIVE(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 -> Usable rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Interpretation type: 16.04/16.92 Linear 16.04/16.92 ->Coefficients: 16.04/16.92 Natural Numbers 16.04/16.92 ->Dimension: 16.04/16.92 1 16.04/16.92 ->Bound: 16.04/16.92 2 16.04/16.92 ->Interpretation: 16.04/16.92 16.04/16.92 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.92 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.92 [U13](X) = X 16.04/16.92 [U21](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.92 [U22](X) = X 16.04/16.92 [U31](X1,X2) = X2 + 2 16.04/16.92 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.92 [active](X) = X 16.04/16.92 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.92 [isNat](X) = 2.X + 1 16.04/16.92 [isNatKind](X) = 0 16.04/16.92 [mark](X) = X 16.04/16.92 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.92 [s](X) = X + 1 16.04/16.92 [0] = 2 16.04/16.92 [fSNonEmpty] = 0 16.04/16.92 [tt] = 0 16.04/16.92 [U11#](X1,X2,X3) = 0 16.04/16.92 [U12#](X1,X2) = 0 16.04/16.92 [U13#](X) = 0 16.04/16.92 [U21#](X1,X2) = 0 16.04/16.92 [U22#](X) = 0 16.04/16.92 [U31#](X1,X2) = 0 16.04/16.92 [U41#](X1,X2,X3) = 0 16.04/16.92 [ACTIVE](X) = X + 2 16.04/16.92 [AND](X1,X2) = 0 16.04/16.92 [ISNAT](X) = 0 16.04/16.92 [ISNATKIND](X) = 0 16.04/16.92 [MARK](X) = 2.X + 2 16.04/16.92 [PLUS](X1,X2) = 0 16.04/16.92 [S](X) = 0 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 SCC Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Strongly Connected Components: 16.04/16.92 ->->Cycle: 16.04/16.92 ->->-> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 ->->-> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 Reduction Pairs Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U11(X1:S,X2:S,X3:S)) -> MARK(X1:S) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 -> Usable rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U13(active(X:S)) -> U13(X:S) 16.04/16.92 U13(mark(X:S)) -> U13(X:S) 16.04/16.92 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.92 U22(active(X:S)) -> U22(X:S) 16.04/16.92 U22(mark(X:S)) -> U22(X:S) 16.04/16.92 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.92 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.92 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.92 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.92 active(U13(tt)) -> mark(tt) 16.04/16.92 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.92 active(U22(tt)) -> mark(tt) 16.04/16.92 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.92 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.92 active(and(tt,X:S)) -> mark(X:S) 16.04/16.92 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.92 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.92 active(isNat(0)) -> mark(tt) 16.04/16.92 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.92 active(isNatKind(0)) -> mark(tt) 16.04/16.92 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.92 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.92 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.92 isNat(active(X:S)) -> isNat(X:S) 16.04/16.92 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.92 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.92 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.92 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.92 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.92 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.92 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.92 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.92 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.92 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.92 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.92 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.92 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.92 mark(0) -> active(0) 16.04/16.92 mark(tt) -> active(tt) 16.04/16.92 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.92 s(active(X:S)) -> s(X:S) 16.04/16.92 s(mark(X:S)) -> s(X:S) 16.04/16.92 ->Interpretation type: 16.04/16.92 Linear 16.04/16.92 ->Coefficients: 16.04/16.92 Natural Numbers 16.04/16.92 ->Dimension: 16.04/16.92 1 16.04/16.92 ->Bound: 16.04/16.92 2 16.04/16.92 ->Interpretation: 16.04/16.92 16.04/16.92 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.92 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.92 [U13](X) = X 16.04/16.92 [U21](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.92 [U22](X) = X 16.04/16.92 [U31](X1,X2) = 2.X2 + 2 16.04/16.92 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.92 [active](X) = X 16.04/16.92 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.92 [isNat](X) = 2.X + 1 16.04/16.92 [isNatKind](X) = 0 16.04/16.92 [mark](X) = X 16.04/16.92 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.92 [s](X) = X 16.04/16.92 [0] = 2 16.04/16.92 [fSNonEmpty] = 0 16.04/16.92 [tt] = 0 16.04/16.92 [U11#](X1,X2,X3) = 0 16.04/16.92 [U12#](X1,X2) = 0 16.04/16.92 [U13#](X) = 0 16.04/16.92 [U21#](X1,X2) = 0 16.04/16.92 [U22#](X) = 0 16.04/16.92 [U31#](X1,X2) = 0 16.04/16.92 [U41#](X1,X2,X3) = 0 16.04/16.92 [ACTIVE](X) = X + 2 16.04/16.92 [AND](X1,X2) = 0 16.04/16.92 [ISNAT](X) = 0 16.04/16.92 [ISNATKIND](X) = 0 16.04/16.92 [MARK](X) = 2.X + 2 16.04/16.92 [PLUS](X1,X2) = 0 16.04/16.92 [S](X) = 0 16.04/16.92 16.04/16.92 Problem 1.13: 16.04/16.92 16.04/16.92 SCC Processor: 16.04/16.92 -> Pairs: 16.04/16.92 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.92 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.92 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.92 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.92 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.92 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.92 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.92 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.92 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.92 MARK(s(X:S)) -> MARK(X:S) 16.04/16.92 -> Rules: 16.04/16.92 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.92 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.92 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 Reduction Pairs Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> ACTIVE(U12(mark(X1:S),X2:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 -> Usable rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Interpretation type: 16.04/16.93 Linear 16.04/16.93 ->Coefficients: 16.04/16.93 Natural Numbers 16.04/16.93 ->Dimension: 16.04/16.93 1 16.04/16.93 ->Bound: 16.04/16.93 2 16.04/16.93 ->Interpretation: 16.04/16.93 16.04/16.93 [U11](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.93 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.93 [U13](X) = X 16.04/16.93 [U21](X1,X2) = X1 + 2.X2 + 1 16.04/16.93 [U22](X) = X 16.04/16.93 [U31](X1,X2) = X2 + 2 16.04/16.93 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.93 [active](X) = X 16.04/16.93 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.93 [isNat](X) = 2.X + 1 16.04/16.93 [isNatKind](X) = 0 16.04/16.93 [mark](X) = X 16.04/16.93 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.93 [s](X) = X 16.04/16.93 [0] = 2 16.04/16.93 [fSNonEmpty] = 0 16.04/16.93 [tt] = 0 16.04/16.93 [U11#](X1,X2,X3) = 0 16.04/16.93 [U12#](X1,X2) = 0 16.04/16.93 [U13#](X) = 0 16.04/16.93 [U21#](X1,X2) = 0 16.04/16.93 [U22#](X) = 0 16.04/16.93 [U31#](X1,X2) = 0 16.04/16.93 [U41#](X1,X2,X3) = 0 16.04/16.93 [ACTIVE](X) = X + 2 16.04/16.93 [AND](X1,X2) = 0 16.04/16.93 [ISNAT](X) = 0 16.04/16.93 [ISNATKIND](X) = 0 16.04/16.93 [MARK](X) = 2.X + 2 16.04/16.93 [PLUS](X1,X2) = 0 16.04/16.93 [S](X) = 0 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 SCC Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 Reduction Pairs Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U12(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 -> Usable rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Interpretation type: 16.04/16.93 Linear 16.04/16.93 ->Coefficients: 16.04/16.93 Natural Numbers 16.04/16.93 ->Dimension: 16.04/16.93 1 16.04/16.93 ->Bound: 16.04/16.93 2 16.04/16.93 ->Interpretation: 16.04/16.93 16.04/16.93 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.93 [U12](X1,X2) = X1 + 2.X2 + 1 16.04/16.93 [U13](X) = X 16.04/16.93 [U21](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.93 [U22](X) = X 16.04/16.93 [U31](X1,X2) = 2.X2 + 2 16.04/16.93 [U41](X1,X2,X3) = X2 + 2.X3 + 2 16.04/16.93 [active](X) = X 16.04/16.93 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.93 [isNat](X) = 2.X + 1 16.04/16.93 [isNatKind](X) = 0 16.04/16.93 [mark](X) = X 16.04/16.93 [plus](X1,X2) = 2.X1 + X2 + 1 16.04/16.93 [s](X) = X + 1 16.04/16.93 [0] = 2 16.04/16.93 [fSNonEmpty] = 0 16.04/16.93 [tt] = 0 16.04/16.93 [U11#](X1,X2,X3) = 0 16.04/16.93 [U12#](X1,X2) = 0 16.04/16.93 [U13#](X) = 0 16.04/16.93 [U21#](X1,X2) = 0 16.04/16.93 [U22#](X) = 0 16.04/16.93 [U31#](X1,X2) = 0 16.04/16.93 [U41#](X1,X2,X3) = 0 16.04/16.93 [ACTIVE](X) = X + 2 16.04/16.93 [AND](X1,X2) = 0 16.04/16.93 [ISNAT](X) = 0 16.04/16.93 [ISNATKIND](X) = 0 16.04/16.93 [MARK](X) = 2.X + 2 16.04/16.93 [PLUS](X1,X2) = 0 16.04/16.93 [S](X) = 0 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 SCC Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 Reduction Pairs Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U13(X:S)) -> MARK(X:S) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 -> Usable rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Interpretation type: 16.04/16.93 Linear 16.04/16.93 ->Coefficients: 16.04/16.93 Natural Numbers 16.04/16.93 ->Dimension: 16.04/16.93 1 16.04/16.93 ->Bound: 16.04/16.93 2 16.04/16.93 ->Interpretation: 16.04/16.93 16.04/16.93 [U11](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 16.04/16.93 [U12](X1,X2) = 2.X2 + 2 16.04/16.93 [U13](X) = X + 1 16.04/16.93 [U21](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.93 [U22](X) = X 16.04/16.93 [U31](X1,X2) = 2.X2 + 2 16.04/16.93 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 1 16.04/16.93 [active](X) = X 16.04/16.93 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.93 [isNat](X) = 2.X + 1 16.04/16.93 [isNatKind](X) = 0 16.04/16.93 [mark](X) = X 16.04/16.93 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.93 [s](X) = X 16.04/16.93 [0] = 2 16.04/16.93 [fSNonEmpty] = 0 16.04/16.93 [tt] = 0 16.04/16.93 [U11#](X1,X2,X3) = 0 16.04/16.93 [U12#](X1,X2) = 0 16.04/16.93 [U13#](X) = 0 16.04/16.93 [U21#](X1,X2) = 0 16.04/16.93 [U22#](X) = 0 16.04/16.93 [U31#](X1,X2) = 0 16.04/16.93 [U41#](X1,X2,X3) = 0 16.04/16.93 [ACTIVE](X) = 2.X + 2 16.04/16.93 [AND](X1,X2) = 0 16.04/16.93 [ISNAT](X) = 0 16.04/16.93 [ISNATKIND](X) = 0 16.04/16.93 [MARK](X) = 2.X + 2 16.04/16.93 [PLUS](X1,X2) = 0 16.04/16.93 [S](X) = 0 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 SCC Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 Reduction Pairs Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> ACTIVE(U21(mark(X1:S),X2:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 -> Usable rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Interpretation type: 16.04/16.93 Linear 16.04/16.93 ->Coefficients: 16.04/16.93 Natural Numbers 16.04/16.93 ->Dimension: 16.04/16.93 1 16.04/16.93 ->Bound: 16.04/16.93 2 16.04/16.93 ->Interpretation: 16.04/16.93 16.04/16.93 [U11](X1,X2,X3) = 0 16.04/16.93 [U12](X1,X2) = 2 16.04/16.93 [U13](X) = 0 16.04/16.93 [U21](X1,X2) = 1 16.04/16.93 [U22](X) = 2 16.04/16.93 [U31](X1,X2) = 2 16.04/16.93 [U41](X1,X2,X3) = 2 16.04/16.93 [active](X) = 2 16.04/16.93 [and](X1,X2) = 2 16.04/16.93 [isNat](X) = 0 16.04/16.93 [isNatKind](X) = 2 16.04/16.93 [mark](X) = 2 16.04/16.93 [plus](X1,X2) = 2 16.04/16.93 [s](X) = 0 16.04/16.93 [0] = 0 16.04/16.93 [fSNonEmpty] = 0 16.04/16.93 [tt] = 1 16.04/16.93 [U11#](X1,X2,X3) = 0 16.04/16.93 [U12#](X1,X2) = 0 16.04/16.93 [U13#](X) = 0 16.04/16.93 [U21#](X1,X2) = 0 16.04/16.93 [U22#](X) = 0 16.04/16.93 [U31#](X1,X2) = 0 16.04/16.93 [U41#](X1,X2,X3) = 0 16.04/16.93 [ACTIVE](X) = X 16.04/16.93 [AND](X1,X2) = 0 16.04/16.93 [ISNAT](X) = 0 16.04/16.93 [ISNATKIND](X) = 0 16.04/16.93 [MARK](X) = 2 16.04/16.93 [PLUS](X1,X2) = 0 16.04/16.93 [S](X) = 0 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 SCC Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 Reduction Pairs Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 -> Usable rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Interpretation type: 16.04/16.93 Linear 16.04/16.93 ->Coefficients: 16.04/16.93 Natural Numbers 16.04/16.93 ->Dimension: 16.04/16.93 1 16.04/16.93 ->Bound: 16.04/16.93 2 16.04/16.93 ->Interpretation: 16.04/16.93 16.04/16.93 [U11](X1,X2,X3) = 2.X1 + 2 16.04/16.93 [U12](X1,X2) = 2 16.04/16.93 [U13](X) = 2 16.04/16.93 [U21](X1,X2) = X1 + 2 16.04/16.93 [U22](X) = X 16.04/16.93 [U31](X1,X2) = 2.X2 + 2 16.04/16.93 [U41](X1,X2,X3) = 2.X2 + 2.X3 16.04/16.93 [active](X) = X 16.04/16.93 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.93 [isNat](X) = 2 16.04/16.93 [isNatKind](X) = 0 16.04/16.93 [mark](X) = X 16.04/16.93 [plus](X1,X2) = 2.X1 + 2.X2 16.04/16.93 [s](X) = X 16.04/16.93 [0] = 2 16.04/16.93 [fSNonEmpty] = 0 16.04/16.93 [tt] = 0 16.04/16.93 [U11#](X1,X2,X3) = 0 16.04/16.93 [U12#](X1,X2) = 0 16.04/16.93 [U13#](X) = 0 16.04/16.93 [U21#](X1,X2) = 0 16.04/16.93 [U22#](X) = 0 16.04/16.93 [U31#](X1,X2) = 0 16.04/16.93 [U41#](X1,X2,X3) = 0 16.04/16.93 [ACTIVE](X) = 2.X + 2 16.04/16.93 [AND](X1,X2) = 0 16.04/16.93 [ISNAT](X) = 0 16.04/16.93 [ISNATKIND](X) = 0 16.04/16.93 [MARK](X) = 2.X + 2 16.04/16.93 [PLUS](X1,X2) = 0 16.04/16.93 [S](X) = 0 16.04/16.93 16.04/16.93 Problem 1.13: 16.04/16.93 16.04/16.93 SCC Processor: 16.04/16.93 -> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 -> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.93 active(isNatKind(0)) -> mark(tt) 16.04/16.93 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.93 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.93 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.93 isNat(active(X:S)) -> isNat(X:S) 16.04/16.93 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.93 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.93 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.93 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.93 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.93 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.93 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.93 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.93 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.93 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.93 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.93 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.93 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.93 mark(0) -> active(0) 16.04/16.93 mark(tt) -> active(tt) 16.04/16.93 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.93 s(active(X:S)) -> s(X:S) 16.04/16.93 s(mark(X:S)) -> s(X:S) 16.04/16.93 ->Strongly Connected Components: 16.04/16.93 ->->Cycle: 16.04/16.93 ->->-> Pairs: 16.04/16.93 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.93 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.93 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.93 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.93 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.93 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.93 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.93 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.93 MARK(s(X:S)) -> MARK(X:S) 16.04/16.93 ->->-> Rules: 16.04/16.93 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.93 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.93 U13(active(X:S)) -> U13(X:S) 16.04/16.93 U13(mark(X:S)) -> U13(X:S) 16.04/16.93 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.93 U22(active(X:S)) -> U22(X:S) 16.04/16.93 U22(mark(X:S)) -> U22(X:S) 16.04/16.93 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.93 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.93 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.93 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.93 active(U13(tt)) -> mark(tt) 16.04/16.93 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.93 active(U22(tt)) -> mark(tt) 16.04/16.93 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.93 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.93 active(and(tt,X:S)) -> mark(X:S) 16.04/16.93 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.93 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.93 active(isNat(0)) -> mark(tt) 16.04/16.93 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 Reduction Pairs Processor: 16.04/16.94 -> Pairs: 16.04/16.94 ACTIVE(and(tt,X:S)) -> MARK(X:S) 16.04/16.94 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 -> Usable rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Interpretation type: 16.04/16.94 Linear 16.04/16.94 ->Coefficients: 16.04/16.94 Natural Numbers 16.04/16.94 ->Dimension: 16.04/16.94 1 16.04/16.94 ->Bound: 16.04/16.94 2 16.04/16.94 ->Interpretation: 16.04/16.94 16.04/16.94 [U11](X1,X2,X3) = X1 + 2.X3 + 2 16.04/16.94 [U12](X1,X2) = 2.X2 + 2 16.04/16.94 [U13](X) = 2 16.04/16.94 [U21](X1,X2) = 2.X2 + 2 16.04/16.94 [U22](X) = X 16.04/16.94 [U31](X1,X2) = 2.X2 + 2 16.04/16.94 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.94 [active](X) = X 16.04/16.94 [and](X1,X2) = 2.X1 + X2 + 2 16.04/16.94 [isNat](X) = 2.X + 2 16.04/16.94 [isNatKind](X) = 2.X 16.04/16.94 [mark](X) = X 16.04/16.94 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.94 [s](X) = X + 1 16.04/16.94 [0] = 2 16.04/16.94 [fSNonEmpty] = 0 16.04/16.94 [tt] = 2 16.04/16.94 [U11#](X1,X2,X3) = 0 16.04/16.94 [U12#](X1,X2) = 0 16.04/16.94 [U13#](X) = 0 16.04/16.94 [U21#](X1,X2) = 0 16.04/16.94 [U22#](X) = 0 16.04/16.94 [U31#](X1,X2) = 0 16.04/16.94 [U41#](X1,X2,X3) = 0 16.04/16.94 [ACTIVE](X) = X + 2 16.04/16.94 [AND](X1,X2) = 0 16.04/16.94 [ISNAT](X) = 0 16.04/16.94 [ISNATKIND](X) = 0 16.04/16.94 [MARK](X) = X + 2 16.04/16.94 [PLUS](X1,X2) = 0 16.04/16.94 [S](X) = 0 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 SCC Processor: 16.04/16.94 -> Pairs: 16.04/16.94 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Strongly Connected Components: 16.04/16.94 ->->Cycle: 16.04/16.94 ->->-> Pairs: 16.04/16.94 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 ->->-> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 Reduction Pairs Processor: 16.04/16.94 -> Pairs: 16.04/16.94 ACTIVE(isNatKind(plus(V1:S,V2:S))) -> MARK(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 -> Usable rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Interpretation type: 16.04/16.94 Linear 16.04/16.94 ->Coefficients: 16.04/16.94 Natural Numbers 16.04/16.94 ->Dimension: 16.04/16.94 1 16.04/16.94 ->Bound: 16.04/16.94 2 16.04/16.94 ->Interpretation: 16.04/16.94 16.04/16.94 [U11](X1,X2,X3) = X2 + 2.X3 + 1 16.04/16.94 [U12](X1,X2) = X1 + 2.X2 16.04/16.94 [U13](X) = 2.X + 2 16.04/16.94 [U21](X1,X2) = X2 16.04/16.94 [U22](X) = X 16.04/16.94 [U31](X1,X2) = X2 + 2 16.04/16.94 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.94 [active](X) = X 16.04/16.94 [and](X1,X2) = 2.X1 + 2.X2 16.04/16.94 [isNat](X) = X 16.04/16.94 [isNatKind](X) = X 16.04/16.94 [mark](X) = X 16.04/16.94 [plus](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.94 [s](X) = X 16.04/16.94 [0] = 2 16.04/16.94 [fSNonEmpty] = 0 16.04/16.94 [tt] = 2 16.04/16.94 [U11#](X1,X2,X3) = 0 16.04/16.94 [U12#](X1,X2) = 0 16.04/16.94 [U13#](X) = 0 16.04/16.94 [U21#](X1,X2) = 0 16.04/16.94 [U22#](X) = 0 16.04/16.94 [U31#](X1,X2) = 0 16.04/16.94 [U41#](X1,X2,X3) = 0 16.04/16.94 [ACTIVE](X) = 2.X + 2 16.04/16.94 [AND](X1,X2) = 0 16.04/16.94 [ISNAT](X) = 0 16.04/16.94 [ISNATKIND](X) = 0 16.04/16.94 [MARK](X) = 2.X + 2 16.04/16.94 [PLUS](X1,X2) = 0 16.04/16.94 [S](X) = 0 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 SCC Processor: 16.04/16.94 -> Pairs: 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Strongly Connected Components: 16.04/16.94 ->->Cycle: 16.04/16.94 ->->-> Pairs: 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 ->->-> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 Reduction Pairs Processor: 16.04/16.94 -> Pairs: 16.04/16.94 ACTIVE(isNatKind(s(V1:S))) -> MARK(isNatKind(V1:S)) 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 -> Usable rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Interpretation type: 16.04/16.94 Linear 16.04/16.94 ->Coefficients: 16.04/16.94 Natural Numbers 16.04/16.94 ->Dimension: 16.04/16.94 1 16.04/16.94 ->Bound: 16.04/16.94 2 16.04/16.94 ->Interpretation: 16.04/16.94 16.04/16.94 [U11](X1,X2,X3) = 2.X2 + X3 + 2 16.04/16.94 [U12](X1,X2) = 2.X1 + X2 16.04/16.94 [U13](X) = 2 16.04/16.94 [U21](X1,X2) = X2 + 2 16.04/16.94 [U22](X) = X + 1 16.04/16.94 [U31](X1,X2) = 2.X2 16.04/16.94 [U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 16.04/16.94 [active](X) = X 16.04/16.94 [and](X1,X2) = 2.X1 + 2.X2 + 2 16.04/16.94 [isNat](X) = X + 1 16.04/16.94 [isNatKind](X) = 2.X 16.04/16.94 [mark](X) = X 16.04/16.94 [plus](X1,X2) = 2.X1 + 2.X2 + 1 16.04/16.94 [s](X) = X + 1 16.04/16.94 [0] = 1 16.04/16.94 [fSNonEmpty] = 0 16.04/16.94 [tt] = 2 16.04/16.94 [U11#](X1,X2,X3) = 0 16.04/16.94 [U12#](X1,X2) = 0 16.04/16.94 [U13#](X) = 0 16.04/16.94 [U21#](X1,X2) = 0 16.04/16.94 [U22#](X) = 0 16.04/16.94 [U31#](X1,X2) = 0 16.04/16.94 [U41#](X1,X2,X3) = 0 16.04/16.94 [ACTIVE](X) = 2.X + 2 16.04/16.94 [AND](X1,X2) = 0 16.04/16.94 [ISNAT](X) = 0 16.04/16.94 [ISNATKIND](X) = 0 16.04/16.94 [MARK](X) = 2.X + 2 16.04/16.94 [PLUS](X1,X2) = 0 16.04/16.94 [S](X) = 0 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 SCC Processor: 16.04/16.94 -> Pairs: 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> ACTIVE(and(mark(X1:S),X2:S)) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(isNatKind(X:S)) -> ACTIVE(isNatKind(X:S)) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> ACTIVE(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Strongly Connected Components: 16.04/16.94 ->->Cycle: 16.04/16.94 ->->-> Pairs: 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 ->->-> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 Subterm Processor: 16.04/16.94 -> Pairs: 16.04/16.94 MARK(U22(X:S)) -> MARK(X:S) 16.04/16.94 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X1:S) 16.04/16.94 MARK(plus(X1:S,X2:S)) -> MARK(X2:S) 16.04/16.94 MARK(s(X:S)) -> MARK(X:S) 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Projection: 16.04/16.94 pi(MARK) = 1 16.04/16.94 16.04/16.94 Problem 1.13: 16.04/16.94 16.04/16.94 SCC Processor: 16.04/16.94 -> Pairs: 16.04/16.94 Empty 16.04/16.94 -> Rules: 16.04/16.94 U11(active(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(mark(X1:S),X2:S,X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,active(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,mark(X2:S),X3:S) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,active(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U11(X1:S,X2:S,mark(X3:S)) -> U11(X1:S,X2:S,X3:S) 16.04/16.94 U12(active(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(mark(X1:S),X2:S) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,active(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U12(X1:S,mark(X2:S)) -> U12(X1:S,X2:S) 16.04/16.94 U13(active(X:S)) -> U13(X:S) 16.04/16.94 U13(mark(X:S)) -> U13(X:S) 16.04/16.94 U21(active(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(mark(X1:S),X2:S) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,active(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U21(X1:S,mark(X2:S)) -> U21(X1:S,X2:S) 16.04/16.94 U22(active(X:S)) -> U22(X:S) 16.04/16.94 U22(mark(X:S)) -> U22(X:S) 16.04/16.94 U31(active(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(mark(X1:S),X2:S) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,active(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U31(X1:S,mark(X2:S)) -> U31(X1:S,X2:S) 16.04/16.94 U41(active(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(mark(X1:S),X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,active(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,mark(X2:S),X3:S) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,active(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 U41(X1:S,X2:S,mark(X3:S)) -> U41(X1:S,X2:S,X3:S) 16.04/16.94 active(U11(tt,V1:S,V2:S)) -> mark(U12(isNat(V1:S),V2:S)) 16.04/16.94 active(U12(tt,V2:S)) -> mark(U13(isNat(V2:S))) 16.04/16.94 active(U13(tt)) -> mark(tt) 16.04/16.94 active(U21(tt,V1:S)) -> mark(U22(isNat(V1:S))) 16.04/16.94 active(U22(tt)) -> mark(tt) 16.04/16.94 active(U31(tt,N:S)) -> mark(N:S) 16.04/16.94 active(U41(tt,M:S,N:S)) -> mark(s(plus(N:S,M:S))) 16.04/16.94 active(and(tt,X:S)) -> mark(X:S) 16.04/16.94 active(isNat(plus(V1:S,V2:S))) -> mark(U11(and(isNatKind(V1:S),isNatKind(V2:S)),V1:S,V2:S)) 16.04/16.94 active(isNat(s(V1:S))) -> mark(U21(isNatKind(V1:S),V1:S)) 16.04/16.94 active(isNat(0)) -> mark(tt) 16.04/16.94 active(isNatKind(plus(V1:S,V2:S))) -> mark(and(isNatKind(V1:S),isNatKind(V2:S))) 16.04/16.94 active(isNatKind(s(V1:S))) -> mark(isNatKind(V1:S)) 16.04/16.94 active(isNatKind(0)) -> mark(tt) 16.04/16.94 active(plus(N:S,s(M:S))) -> mark(U41(and(and(isNat(M:S),isNatKind(M:S)),and(isNat(N:S),isNatKind(N:S))),M:S,N:S)) 16.04/16.94 active(plus(N:S,0)) -> mark(U31(and(isNat(N:S),isNatKind(N:S)),N:S)) 16.04/16.94 and(active(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(mark(X1:S),X2:S) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,active(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 and(X1:S,mark(X2:S)) -> and(X1:S,X2:S) 16.04/16.94 isNat(active(X:S)) -> isNat(X:S) 16.04/16.94 isNat(mark(X:S)) -> isNat(X:S) 16.04/16.94 isNatKind(active(X:S)) -> isNatKind(X:S) 16.04/16.94 isNatKind(mark(X:S)) -> isNatKind(X:S) 16.04/16.94 mark(U11(X1:S,X2:S,X3:S)) -> active(U11(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(U12(X1:S,X2:S)) -> active(U12(mark(X1:S),X2:S)) 16.04/16.94 mark(U13(X:S)) -> active(U13(mark(X:S))) 16.04/16.94 mark(U21(X1:S,X2:S)) -> active(U21(mark(X1:S),X2:S)) 16.04/16.94 mark(U22(X:S)) -> active(U22(mark(X:S))) 16.04/16.94 mark(U31(X1:S,X2:S)) -> active(U31(mark(X1:S),X2:S)) 16.04/16.94 mark(U41(X1:S,X2:S,X3:S)) -> active(U41(mark(X1:S),X2:S,X3:S)) 16.04/16.94 mark(and(X1:S,X2:S)) -> active(and(mark(X1:S),X2:S)) 16.04/16.94 mark(isNat(X:S)) -> active(isNat(X:S)) 16.04/16.94 mark(isNatKind(X:S)) -> active(isNatKind(X:S)) 16.04/16.94 mark(plus(X1:S,X2:S)) -> active(plus(mark(X1:S),mark(X2:S))) 16.04/16.94 mark(s(X:S)) -> active(s(mark(X:S))) 16.04/16.94 mark(0) -> active(0) 16.04/16.94 mark(tt) -> active(tt) 16.04/16.94 plus(active(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(mark(X1:S),X2:S) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,active(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 plus(X1:S,mark(X2:S)) -> plus(X1:S,X2:S) 16.04/16.94 s(active(X:S)) -> s(X:S) 16.04/16.94 s(mark(X:S)) -> s(X:S) 16.04/16.94 ->Strongly Connected Components: 16.04/16.94 There is no strongly connected component 16.04/16.94 16.04/16.94 The problem is finite. 16.04/16.94 EOF