(VAR M N V1 V2) (STRATEGY CONTEXTSENSITIVE (U101 1) (tt) (U102 1) (isNatKind) (U103 1) (isNat) (U104 1) (plus 1 2) (x 1 2) (U11 1) (U12 1) (U13 1) (U14 1) (U15 1) (U16 1) (U21 1) (U22 1) (U23 1) (U31 1) (U32 1) (U33 1) (U34 1) (U35 1) (U36 1) (U41 1) (U42 1) (U51 1) (U61 1) (U62 1) (U71 1) (U72 1) (U81 1) (U82 1) (U83 1) (U84 1) (s 1) (U91 1) (U92 1) (0) ) (RULES U101(tt,M,N) -> U102(isNatKind(M),M,N) U102(tt,M,N) -> U103(isNat(N),M,N) U103(tt,M,N) -> U104(isNatKind(N),M,N) U104(tt,M,N) -> plus(x(N,M),N) U11(tt,V1,V2) -> U12(isNatKind(V1),V1,V2) U12(tt,V1,V2) -> U13(isNatKind(V2),V1,V2) U13(tt,V1,V2) -> U14(isNatKind(V2),V1,V2) U14(tt,V1,V2) -> U15(isNat(V1),V2) U15(tt,V2) -> U16(isNat(V2)) U16(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V1,V2) -> U32(isNatKind(V1),V1,V2) U32(tt,V1,V2) -> U33(isNatKind(V2),V1,V2) U33(tt,V1,V2) -> U34(isNatKind(V2),V1,V2) U34(tt,V1,V2) -> U35(isNat(V1),V2) U35(tt,V2) -> U36(isNat(V2)) U36(tt) -> tt U41(tt,V2) -> U42(isNatKind(V2)) U42(tt) -> tt U51(tt) -> tt U61(tt,V2) -> U62(isNatKind(V2)) U62(tt) -> tt U71(tt,N) -> U72(isNatKind(N),N) U72(tt,N) -> N U81(tt,M,N) -> U82(isNatKind(M),M,N) U82(tt,M,N) -> U83(isNat(N),M,N) U83(tt,M,N) -> U84(isNatKind(N),M,N) U84(tt,M,N) -> s(plus(N,M)) U91(tt,N) -> U92(isNatKind(N)) U92(tt) -> 0 isNat(0) -> tt isNat(plus(V1,V2)) -> U11(isNatKind(V1),V1,V2) isNat(s(V1)) -> U21(isNatKind(V1),V1) isNat(x(V1,V2)) -> U31(isNatKind(V1),V1,V2) isNatKind(0) -> tt isNatKind(plus(V1,V2)) -> U41(isNatKind(V1),V2) isNatKind(s(V1)) -> U51(isNatKind(V1)) isNatKind(x(V1,V2)) -> U61(isNatKind(V1),V2) plus(N,0) -> U71(isNat(N),N) plus(N,s(M)) -> U81(isNat(M),M,N) x(N,0) -> U91(isNat(N),N) x(N,s(M)) -> U101(isNat(M),M,N) ) Proving termination of context-sensitive rewriting for MYNAT_complete_noand: -> Dependency pairs: nF_U101(tt,M,N) -> nF_U102(isNatKind(M),M,N) nF_U101(tt,M,N) -> nF_isNatKind(M) nF_U102(tt,M,N) -> nF_U103(isNat(N),M,N) nF_U102(tt,M,N) -> nF_isNat(N) nF_U103(tt,M,N) -> nF_U104(isNatKind(N),M,N) nF_U103(tt,M,N) -> nF_isNatKind(N) nF_U104(tt,M,N) -> nF_plus(x(N,M),N) nF_U104(tt,M,N) -> nF_x(N,M) nF_U104(tt,M,N) -> N nF_U104(tt,M,N) -> M nF_U11(tt,V1,V2) -> nF_U12(isNatKind(V1),V1,V2) nF_U11(tt,V1,V2) -> nF_isNatKind(V1) nF_U12(tt,V1,V2) -> nF_U13(isNatKind(V2),V1,V2) nF_U12(tt,V1,V2) -> nF_isNatKind(V2) nF_U13(tt,V1,V2) -> nF_U14(isNatKind(V2),V1,V2) nF_U13(tt,V1,V2) -> nF_isNatKind(V2) nF_U14(tt,V1,V2) -> nF_U15(isNat(V1),V2) nF_U14(tt,V1,V2) -> nF_isNat(V1) nF_U15(tt,V2) -> nF_U16(isNat(V2)) nF_U15(tt,V2) -> nF_isNat(V2) nF_U21(tt,V1) -> nF_U22(isNatKind(V1),V1) nF_U21(tt,V1) -> nF_isNatKind(V1) nF_U22(tt,V1) -> nF_U23(isNat(V1)) nF_U22(tt,V1) -> nF_isNat(V1) nF_U31(tt,V1,V2) -> nF_U32(isNatKind(V1),V1,V2) nF_U31(tt,V1,V2) -> nF_isNatKind(V1) nF_U32(tt,V1,V2) -> nF_U33(isNatKind(V2),V1,V2) nF_U32(tt,V1,V2) -> nF_isNatKind(V2) nF_U33(tt,V1,V2) -> nF_U34(isNatKind(V2),V1,V2) nF_U33(tt,V1,V2) -> nF_isNatKind(V2) nF_U34(tt,V1,V2) -> nF_U35(isNat(V1),V2) nF_U34(tt,V1,V2) -> nF_isNat(V1) nF_U35(tt,V2) -> nF_U36(isNat(V2)) nF_U35(tt,V2) -> nF_isNat(V2) nF_U41(tt,V2) -> nF_U42(isNatKind(V2)) nF_U41(tt,V2) -> nF_isNatKind(V2) nF_U61(tt,V2) -> nF_U62(isNatKind(V2)) nF_U61(tt,V2) -> nF_isNatKind(V2) nF_U71(tt,N) -> nF_U72(isNatKind(N),N) nF_U71(tt,N) -> nF_isNatKind(N) nF_U72(tt,N) -> N nF_U81(tt,M,N) -> nF_U82(isNatKind(M),M,N) nF_U81(tt,M,N) -> nF_isNatKind(M) nF_U82(tt,M,N) -> nF_U83(isNat(N),M,N) nF_U82(tt,M,N) -> nF_isNat(N) nF_U83(tt,M,N) -> nF_U84(isNatKind(N),M,N) nF_U83(tt,M,N) -> nF_isNatKind(N) nF_U84(tt,M,N) -> nF_plus(N,M) nF_U84(tt,M,N) -> N nF_U84(tt,M,N) -> M nF_U91(tt,N) -> nF_U92(isNatKind(N)) nF_U91(tt,N) -> nF_isNatKind(N) nF_isNat(plus(V1,V2)) -> nF_U11(isNatKind(V1),V1,V2) nF_isNat(plus(V1,V2)) -> nF_isNatKind(V1) nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1) nF_isNat(s(V1)) -> nF_isNatKind(V1) nF_isNat(x(V1,V2)) -> nF_U31(isNatKind(V1),V1,V2) nF_isNat(x(V1,V2)) -> nF_isNatKind(V1) nF_isNatKind(plus(V1,V2)) -> nF_U41(isNatKind(V1),V2) nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V1) nF_isNatKind(s(V1)) -> nF_U51(isNatKind(V1)) nF_isNatKind(s(V1)) -> nF_isNatKind(V1) nF_isNatKind(x(V1,V2)) -> nF_U61(isNatKind(V1),V2) nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V1) nF_plus(N,0) -> nF_U71(isNat(N),N) nF_plus(N,0) -> nF_isNat(N) nF_plus(N,s(M)) -> nF_U81(isNat(M),M,N) nF_plus(N,s(M)) -> nF_isNat(M) nF_x(N,0) -> nF_U91(isNat(N),N) nF_x(N,0) -> nF_isNat(N) nF_x(N,s(M)) -> nF_U101(isNat(M),M,N) nF_x(N,s(M)) -> nF_isNat(M) -> Proof of termination for MYNAT_complete_noand_1_1: -> -> Dependency pairs in cycle: nF_U101(tt,M,N) -> nF_U102(isNatKind(M),M,N) nF_x(N,s(M)) -> nF_U101(isNat(M),M,N) nF_U104(tt,M,N) -> nF_x(N,M) nF_U103(tt,M,N) -> nF_U104(isNatKind(N),M,N) nF_U102(tt,M,N) -> nF_U103(isNat(N),M,N) Termination proved: Cycles verify subterm criterion. -> Proof of termination for MYNAT_complete_noand_1_2: -> -> Dependency pairs in cycle: nF_plus(N,s(M)) -> nF_U81(isNat(M),M,N) nF_U84(tt,M,N) -> nF_plus(N,M) nF_U83(tt,M,N) -> nF_U84(isNatKind(N),M,N) nF_U82(tt,M,N) -> nF_U83(isNat(N),M,N) nF_U81(tt,M,N) -> nF_U82(isNatKind(M),M,N) Termination proved: Cycles verify subterm criterion. -> Proof of termination for MYNAT_complete_noand_1_3: -> -> Dependency pairs in cycle: nF_isNat(x(V1,V2)) -> nF_U31(isNatKind(V1),V1,V2) nF_U35(tt,V2) -> nF_isNat(V2) nF_U34(tt,V1,V2) -> nF_U35(isNat(V1),V2) nF_U33(tt,V1,V2) -> nF_U34(isNatKind(V2),V1,V2) nF_U32(tt,V1,V2) -> nF_U33(isNatKind(V2),V1,V2) nF_U31(tt,V1,V2) -> nF_U32(isNatKind(V1),V1,V2) nF_U34(tt,V1,V2) -> nF_isNat(V1) nF_U22(tt,V1) -> nF_isNat(V1) nF_U21(tt,V1) -> nF_U22(isNatKind(V1),V1) nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1) nF_U15(tt,V2) -> nF_isNat(V2) nF_U14(tt,V1,V2) -> nF_U15(isNat(V1),V2) nF_U13(tt,V1,V2) -> nF_U14(isNatKind(V2),V1,V2) nF_U12(tt,V1,V2) -> nF_U13(isNatKind(V2),V1,V2) nF_U11(tt,V1,V2) -> nF_U12(isNatKind(V1),V1,V2) nF_isNat(plus(V1,V2)) -> nF_U11(isNatKind(V1),V1,V2) nF_U14(tt,V1,V2) -> nF_isNat(V1) Usable Rules: U11(tt,V1,V2) -> U12(isNatKind(V1),V1,V2) U12(tt,V1,V2) -> U13(isNatKind(V2),V1,V2) U13(tt,V1,V2) -> U14(isNatKind(V2),V1,V2) U14(tt,V1,V2) -> U15(isNat(V1),V2) U15(tt,V2) -> U16(isNat(V2)) U16(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V1,V2) -> U32(isNatKind(V1),V1,V2) U32(tt,V1,V2) -> U33(isNatKind(V2),V1,V2) U33(tt,V1,V2) -> U34(isNatKind(V2),V1,V2) U34(tt,V1,V2) -> U35(isNat(V1),V2) U35(tt,V2) -> U36(isNat(V2)) U36(tt) -> tt U41(tt,V2) -> U42(isNatKind(V2)) U42(tt) -> tt U51(tt) -> tt U61(tt,V2) -> U62(isNatKind(V2)) U62(tt) -> tt isNat(0) -> tt isNat(plus(V1,V2)) -> U11(isNatKind(V1),V1,V2) isNat(s(V1)) -> U21(isNatKind(V1),V1) isNat(x(V1,V2)) -> U31(isNatKind(V1),V1,V2) isNatKind(0) -> tt isNatKind(plus(V1,V2)) -> U41(isNatKind(V1),V2) isNatKind(s(V1)) -> U51(isNatKind(V1)) isNatKind(x(V1,V2)) -> U61(isNatKind(V1),V2) Polynomial Interpretation: [U101](X1,X2,X3) = 0 [tt] = 0 [U102](X1,X2,X3) = 0 [isNatKind](X) = X [U103](X1,X2,X3) = 0 [isNat](X) = X [U104](X1,X2,X3) = 0 [plus](X1,X2) = X1 + X2 + 1 [x](X1,X2) = X1 + X2 + 1 [U11](X1,X2,X3) = 0 [U12](X1,X2,X3) = 0 [U13](X1,X2,X3) = 0 [U14](X1,X2,X3) = 0 [U15](X1,X2) = 0 [U16](X) = 0 [U21](X1,X2) = 0 [U22](X1,X2) = 0 [U23](X) = 0 [U31](X1,X2,X3) = 0 [U32](X1,X2,X3) = 0 [U33](X1,X2,X3) = 0 [U34](X1,X2,X3) = 0 [U35](X1,X2) = 0 [U36](X) = 0 [U41](X1,X2) = 0 [U42](X) = 0 [U51](X) = 0 [U61](X1,X2) = 0 [U62](X) = 0 [U71](X1,X2) = 0 [U72](X1,X2) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U83](X1,X2,X3) = 0 [U84](X1,X2,X3) = 0 [s](X) = X + 1 [U91](X1,X2) = 0 [U92](X) = 0 [0] = 1 [nF_isNat](X) = X [nF_U35](X1,X2) = X2 [nF_U34](X1,X2,X3) = X2 + X3 [nF_U33](X1,X2,X3) = X2 + X3 [nF_U32](X1,X2,X3) = X2 + X3 [nF_U31](X1,X2,X3) = X2 + X3 [nF_U22](X1,X2) = X2 [nF_U21](X1,X2) = X2 [nF_U15](X1,X2) = X2 [nF_U14](X1,X2,X3) = X2 + X3 + 1 [nF_U13](X1,X2,X3) = X2 + X3 + 1 [nF_U12](X1,X2,X3) = X2 + X3 + 1 [nF_U11](X1,X2,X3) = X2 + X3 + 1 TIME: 5.871e-2 -> -> Dependency pairs in cycle: nF_isNat(x(V1,V2)) -> nF_U31(isNatKind(V1),V1,V2) nF_U15(tt,V2) -> nF_isNat(V2) nF_U14(tt,V1,V2) -> nF_U15(isNat(V1),V2) nF_U13(tt,V1,V2) -> nF_U14(isNatKind(V2),V1,V2) nF_U12(tt,V1,V2) -> nF_U13(isNatKind(V2),V1,V2) nF_U11(tt,V1,V2) -> nF_U12(isNatKind(V1),V1,V2) nF_isNat(plus(V1,V2)) -> nF_U11(isNatKind(V1),V1,V2) nF_U22(tt,V1) -> nF_isNat(V1) nF_U21(tt,V1) -> nF_U22(isNatKind(V1),V1) nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1) nF_U34(tt,V1,V2) -> nF_isNat(V1) nF_U33(tt,V1,V2) -> nF_U34(isNatKind(V2),V1,V2) nF_U32(tt,V1,V2) -> nF_U33(isNatKind(V2),V1,V2) nF_U31(tt,V1,V2) -> nF_U32(isNatKind(V1),V1,V2) nF_U35(tt,V2) -> nF_isNat(V2) nF_U34(tt,V1,V2) -> nF_U35(isNat(V1),V2) Usable Rules: U11(tt,V1,V2) -> U12(isNatKind(V1),V1,V2) U12(tt,V1,V2) -> U13(isNatKind(V2),V1,V2) U13(tt,V1,V2) -> U14(isNatKind(V2),V1,V2) U14(tt,V1,V2) -> U15(isNat(V1),V2) U15(tt,V2) -> U16(isNat(V2)) U16(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V1,V2) -> U32(isNatKind(V1),V1,V2) U32(tt,V1,V2) -> U33(isNatKind(V2),V1,V2) U33(tt,V1,V2) -> U34(isNatKind(V2),V1,V2) U34(tt,V1,V2) -> U35(isNat(V1),V2) U35(tt,V2) -> U36(isNat(V2)) U36(tt) -> tt U41(tt,V2) -> U42(isNatKind(V2)) U42(tt) -> tt U51(tt) -> tt U61(tt,V2) -> U62(isNatKind(V2)) U62(tt) -> tt isNat(0) -> tt isNat(plus(V1,V2)) -> U11(isNatKind(V1),V1,V2) isNat(s(V1)) -> U21(isNatKind(V1),V1) isNat(x(V1,V2)) -> U31(isNatKind(V1),V1,V2) isNatKind(0) -> tt isNatKind(plus(V1,V2)) -> U41(isNatKind(V1),V2) isNatKind(s(V1)) -> U51(isNatKind(V1)) isNatKind(x(V1,V2)) -> U61(isNatKind(V1),V2) Polynomial Interpretation: [U101](X1,X2,X3) = 0 [tt] = 1 [U102](X1,X2,X3) = 0 [isNatKind](X) = X [U103](X1,X2,X3) = 0 [isNat](X) = X [U104](X1,X2,X3) = 0 [plus](X1,X2) = X1 + X2 + 1 [x](X1,X2) = X1 + X2 [U11](X1,X2,X3) = X3 [U12](X1,X2,X3) = X3 [U13](X1,X2,X3) = X3 [U14](X1,X2,X3) = X3 [U15](X1,X2) = X2 [U16](X) = X [U21](X1,X2) = X2 [U22](X1,X2) = X2 [U23](X) = X [U31](X1,X2,X3) = X2 + X3 [U32](X1,X2,X3) = X2 + X3 [U33](X1,X2,X3) = X1 + X2 [U34](X1,X2,X3) = X2 [U35](X1,X2) = X1 [U36](X) = 1 [U41](X1,X2) = X1 + X2 [U42](X) = X [U51](X) = X [U61](X1,X2) = X1 + X2 [U62](X) = X [U71](X1,X2) = 0 [U72](X1,X2) = 0 [U81](X1,X2,X3) = 0 [U82](X1,X2,X3) = 0 [U83](X1,X2,X3) = 0 [U84](X1,X2,X3) = 0 [s](X) = X + 1 [U91](X1,X2) = 0 [U92](X) = 0 [0] = 1 [nF_isNat](X) = X + 1 [nF_U15](X1,X2) = X1 + X2 [nF_U14](X1,X2,X3) = X2 + X3 [nF_U13](X1,X2,X3) = X2 + X3 [nF_U12](X1,X2,X3) = X2 + X3 [nF_U11](X1,X2,X3) = X2 + X3 [nF_U22](X1,X2) = X2 + 1 [nF_U21](X1,X2) = X2 + 1 [nF_U34](X1,X2,X3) = X2 + X3 + 1 [nF_U33](X1,X2,X3) = X2 + X3 + 1 [nF_U32](X1,X2,X3) = X2 + X3 + 1 [nF_U31](X1,X2,X3) = X2 + X3 + 1 [nF_U35](X1,X2) = X1 + X2 TIME: 0.194836 -> -> Dependency pairs in cycle: nF_isNat(x(V1,V2)) -> nF_U31(isNatKind(V1),V1,V2) nF_U34(tt,V1,V2) -> nF_isNat(V1) nF_U33(tt,V1,V2) -> nF_U34(isNatKind(V2),V1,V2) nF_U32(tt,V1,V2) -> nF_U33(isNatKind(V2),V1,V2) nF_U31(tt,V1,V2) -> nF_U32(isNatKind(V1),V1,V2) nF_U22(tt,V1) -> nF_isNat(V1) nF_U21(tt,V1) -> nF_U22(isNatKind(V1),V1) nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1) nF_U15(tt,V2) -> nF_isNat(V2) nF_U14(tt,V1,V2) -> nF_U15(isNat(V1),V2) nF_U13(tt,V1,V2) -> nF_U14(isNatKind(V2),V1,V2) nF_U12(tt,V1,V2) -> nF_U13(isNatKind(V2),V1,V2) nF_U11(tt,V1,V2) -> nF_U12(isNatKind(V1),V1,V2) nF_isNat(plus(V1,V2)) -> nF_U11(isNatKind(V1),V1,V2) Termination proved: Cycles verify subterm criterion. -> Proof of termination for MYNAT_complete_noand_1_4: -> -> Dependency pairs in cycle: nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V1) nF_isNatKind(s(V1)) -> nF_isNatKind(V1) nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V1) nF_U61(tt,V2) -> nF_isNatKind(V2) nF_isNatKind(x(V1,V2)) -> nF_U61(isNatKind(V1),V2) nF_U41(tt,V2) -> nF_isNatKind(V2) nF_isNatKind(plus(V1,V2)) -> nF_U41(isNatKind(V1),V2) Termination proved: Cycles verify subterm criterion. SETTINGS: Base ordering: Polynomial ordering Proof mode: SCCs in CSDG + base ordering Upper bound for coeffs: 1 Rationals below 1 for all non-replacing args: No Polynomial interpretation: Linear Coeffs in polynomials: No rationals Delta: automatic Termination was proved succesfully.