(VAR V1 V2 N M X)
(RULES 
U11(tt,V1,V2) -> U12(isNat(V1),V2)
U12(tt,V2) -> U13(isNat(V2))
U13(tt) -> tt
U21(tt,V1) -> U22(isNat(V1))
U22(tt) -> tt
U31(tt,V1,V2) -> U32(isNat(V1),V2)
U32(tt,V2) -> U33(isNat(V2))
U33(tt) -> tt
U41(tt,N) -> N
U51(tt,M,N) -> s(plus(N,M))
U61(tt) -> 0
U71(tt,M,N) -> plus(x(N,M),N)
and(tt,X) -> X
isNat(0) -> tt
isNat(plus(V1,V2)) -> U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNat(s(V1)) -> U21(isNatKind(V1),V1)
isNat(x(V1,V2)) -> U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNatKind(0) -> tt
isNatKind(plus(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))
isNatKind(s(V1)) -> isNatKind(V1)
isNatKind(x(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))
plus(N,0) -> U41(and(isNat(N),isNatKind(N)),N)
plus(N,s(M)) -> U51(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)
x(N,0) -> U61(and(isNat(N),isNatKind(N)))
x(N,s(M)) -> U71(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)
)

Proving termination of rewriting for MYNAT_complete:

-> Dependency pairs:
nF_U11(tt,V1,V2) -> nF_U12(isNat(V1),V2)
nF_U11(tt,V1,V2) -> nF_isNat(V1)
nF_U12(tt,V2) -> nF_U13(isNat(V2))
nF_U12(tt,V2) -> nF_isNat(V2)
nF_U21(tt,V1) -> nF_U22(isNat(V1))
nF_U21(tt,V1) -> nF_isNat(V1)
nF_U31(tt,V1,V2) -> nF_U32(isNat(V1),V2)
nF_U31(tt,V1,V2) -> nF_isNat(V1)
nF_U32(tt,V2) -> nF_U33(isNat(V2))
nF_U32(tt,V2) -> nF_isNat(V2)
nF_U51(tt,M,N) -> nF_plus(N,M)
nF_U71(tt,M,N) -> nF_plus(x(N,M),N)
nF_U71(tt,M,N) -> nF_x(N,M)
nF_isNat(plus(V1,V2)) -> nF_U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_isNat(plus(V1,V2)) -> nF_and(isNatKind(V1),isNatKind(V2))
nF_isNat(plus(V1,V2)) -> nF_isNatKind(V1)
nF_isNat(plus(V1,V2)) -> nF_isNatKind(V2)
nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1)
nF_isNat(s(V1)) -> nF_isNatKind(V1)
nF_isNat(x(V1,V2)) -> nF_U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_isNat(x(V1,V2)) -> nF_and(isNatKind(V1),isNatKind(V2))
nF_isNat(x(V1,V2)) -> nF_isNatKind(V1)
nF_isNat(x(V1,V2)) -> nF_isNatKind(V2)
nF_isNatKind(plus(V1,V2)) -> nF_and(isNatKind(V1),isNatKind(V2))
nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V1)
nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V2)
nF_isNatKind(s(V1)) -> nF_isNatKind(V1)
nF_isNatKind(x(V1,V2)) -> nF_and(isNatKind(V1),isNatKind(V2))
nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V1)
nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V2)
nF_plus(N,0) -> nF_U41(and(isNat(N),isNatKind(N)),N)
nF_plus(N,0) -> nF_and(isNat(N),isNatKind(N))
nF_plus(N,0) -> nF_isNat(N)
nF_plus(N,0) -> nF_isNatKind(N)
nF_plus(N,s(M)) -> nF_U51(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)
nF_plus(N,s(M)) -> nF_and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N)))
nF_plus(N,s(M)) -> nF_and(isNat(M),isNatKind(M))
nF_plus(N,s(M)) -> nF_isNat(M)
nF_plus(N,s(M)) -> nF_isNatKind(M)
nF_plus(N,s(M)) -> nF_and(isNat(N),isNatKind(N))
nF_plus(N,s(M)) -> nF_isNat(N)
nF_plus(N,s(M)) -> nF_isNatKind(N)
nF_x(N,0) -> nF_U61(and(isNat(N),isNatKind(N)))
nF_x(N,0) -> nF_and(isNat(N),isNatKind(N))
nF_x(N,0) -> nF_isNat(N)
nF_x(N,0) -> nF_isNatKind(N)
nF_x(N,s(M)) -> nF_U71(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)
nF_x(N,s(M)) -> nF_and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N)))
nF_x(N,s(M)) -> nF_and(isNat(M),isNatKind(M))
nF_x(N,s(M)) -> nF_isNat(M)
nF_x(N,s(M)) -> nF_isNatKind(M)
nF_x(N,s(M)) -> nF_and(isNat(N),isNatKind(N))
nF_x(N,s(M)) -> nF_isNat(N)
nF_x(N,s(M)) -> nF_isNatKind(N)

-> Proof of termination for MYNAT_complete_1_1:
-> -> Dependency pairs in cycle:
nF_U71(tt,M,N) -> nF_x(N,M)
nF_x(N,s(M)) -> nF_U71(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)

Termination proved: Cycles verify subterm criterion.

-> Proof of termination for MYNAT_complete_1_2:
-> -> Dependency pairs in cycle:
nF_U51(tt,M,N) -> nF_plus(N,M)
nF_plus(N,s(M)) -> nF_U51(and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N)

Termination proved: Cycles verify subterm criterion.

-> Proof of termination for MYNAT_complete_1_3:
-> -> Dependency pairs in cycle:
nF_U11(tt,V1,V2) -> nF_U12(isNat(V1),V2)
nF_isNat(plus(V1,V2)) -> nF_U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U32(tt,V2) -> nF_isNat(V2)
nF_U31(tt,V1,V2) -> nF_U32(isNat(V1),V2)
nF_isNat(x(V1,V2)) -> nF_U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U31(tt,V1,V2) -> nF_isNat(V1)
nF_U21(tt,V1) -> nF_isNat(V1)
nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1)
nF_U12(tt,V2) -> nF_isNat(V2)
nF_U11(tt,V1,V2) -> nF_isNat(V1)

Usable Rules:
U11(tt,V1,V2) -> U12(isNat(V1),V2)
U12(tt,V2) -> U13(isNat(V2))
U13(tt) -> tt
U21(tt,V1) -> U22(isNat(V1))
U22(tt) -> tt
U31(tt,V1,V2) -> U32(isNat(V1),V2)
U32(tt,V2) -> U33(isNat(V2))
U33(tt) -> tt
and(tt,X) -> X
isNat(0) -> tt
isNat(plus(V1,V2)) -> U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNat(s(V1)) -> U21(isNatKind(V1),V1)
isNat(x(V1,V2)) -> U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNatKind(0) -> tt
isNatKind(plus(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))
isNatKind(s(V1)) -> isNatKind(V1)
isNatKind(x(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))

Polynomial Interpretation:

[U11](X1,X2,X3) = X2 + X3 + 1
[tt] = 1
[U12](X1,X2) = X1 + X2
[isNat](X) = X + 1
[U13](X) = X
[U21](X1,X2) = X1 + X2
[U22](X) = X
[U31](X1,X2,X3) = X2 + 1
[U32](X1,X2) = X1
[U33](X) = 1
[U41](X1,X2) = 0
[U51](X1,X2,X3) = 0
[s](X) = X
[plus](X1,X2) = X1 + X2 + 1
[U61](X) = 0
[0] = 0
[U71](X1,X2,X3) = 0
[x](X1,X2) = X1 + X2 + 1
[and](X1,X2) = X2
[isNatKind](X) = 1
[nF_U11](X1,X2,X3) = X1 + X2 + X3
[nF_isNat](X) = X
[nF_U32](X1,X2) = X1 + X2
[nF_U31](X1,X2,X3) = X1 + X2 + X3
[nF_U21](X1,X2) = X2
[nF_U12](X1,X2) = X2

TIME: 3.889e-2

-> -> Dependency pairs in cycle:
nF_U11(tt,V1,V2) -> nF_U12(isNat(V1),V2)
nF_isNat(plus(V1,V2)) -> nF_U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U12(tt,V2) -> nF_isNat(V2)
nF_U21(tt,V1) -> nF_isNat(V1)
nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1)
nF_U31(tt,V1,V2) -> nF_isNat(V1)
nF_isNat(x(V1,V2)) -> nF_U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U32(tt,V2) -> nF_isNat(V2)
nF_U31(tt,V1,V2) -> nF_U32(isNat(V1),V2)

Usable Rules:
U11(tt,V1,V2) -> U12(isNat(V1),V2)
U12(tt,V2) -> U13(isNat(V2))
U13(tt) -> tt
U21(tt,V1) -> U22(isNat(V1))
U22(tt) -> tt
U31(tt,V1,V2) -> U32(isNat(V1),V2)
U32(tt,V2) -> U33(isNat(V2))
U33(tt) -> tt
and(tt,X) -> X
isNat(0) -> tt
isNat(plus(V1,V2)) -> U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNat(s(V1)) -> U21(isNatKind(V1),V1)
isNat(x(V1,V2)) -> U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
isNatKind(0) -> tt
isNatKind(plus(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))
isNatKind(s(V1)) -> isNatKind(V1)
isNatKind(x(V1,V2)) -> and(isNatKind(V1),isNatKind(V2))

Polynomial Interpretation:

[U11](X1,X2,X3) = X3
[tt] = 1
[U12](X1,X2) = X2
[isNat](X) = X
[U13](X) = X
[U21](X1,X2) = X2
[U22](X) = X
[U31](X1,X2,X3) = X3
[U32](X1,X2) = X2
[U33](X) = X
[U41](X1,X2) = 0
[U51](X1,X2,X3) = 0
[s](X) = X + 1
[plus](X1,X2) = X2 + 1
[U61](X) = 0
[0] = 1
[U71](X1,X2,X3) = 0
[x](X1,X2) = X1 + X2
[and](X1,X2) = X2
[isNatKind](X) = 1
[nF_U11](X1,X2,X3) = X1 + X3
[nF_isNat](X) = X + 1
[nF_U12](X1,X2) = X2 + 1
[nF_U21](X1,X2) = X1 + X2
[nF_U31](X1,X2,X3) = X1 + X2 + X3
[nF_U32](X1,X2) = X1 + X2

TIME: 3.881e-2

-> -> Dependency pairs in cycle:
nF_U11(tt,V1,V2) -> nF_U12(isNat(V1),V2)
nF_isNat(plus(V1,V2)) -> nF_U11(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U31(tt,V1,V2) -> nF_isNat(V1)
nF_isNat(x(V1,V2)) -> nF_U31(and(isNatKind(V1),isNatKind(V2)),V1,V2)
nF_U21(tt,V1) -> nF_isNat(V1)
nF_isNat(s(V1)) -> nF_U21(isNatKind(V1),V1)
nF_U12(tt,V2) -> nF_isNat(V2)

Termination proved: Cycles verify subterm criterion.

-> Proof of termination for MYNAT_complete_1_4:
-> -> Dependency pairs in cycle:
nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V2)
nF_isNatKind(x(V1,V2)) -> nF_isNatKind(V1)
nF_isNatKind(s(V1)) -> nF_isNatKind(V1)
nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V2)
nF_isNatKind(plus(V1,V2)) -> nF_isNatKind(V1)

Termination proved: Cycles verify subterm criterion.

SETTINGS:
Base ordering: Polynomial ordering
Proof mode: SCCs in DG + 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.