Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_nokinds_GM)

The rewrite relation of the following TRS is considered.

a__U11(tt,N) mark(N) (1)
a__U21(tt,M,N) s(a__plus(mark(N),mark(M))) (2)
a__and(tt,X) mark(X) (3)
a__isNat(0) tt (4)
a__isNat(plus(V1,V2)) a__and(a__isNat(V1),isNat(V2)) (5)
a__isNat(s(V1)) a__isNat(V1) (6)
a__plus(N,0) a__U11(a__isNat(N),N) (7)
a__plus(N,s(M)) a__U21(a__and(a__isNat(M),isNat(N)),M,N) (8)
mark(U11(X1,X2)) a__U11(mark(X1),X2) (9)
mark(U21(X1,X2,X3)) a__U21(mark(X1),X2,X3) (10)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (11)
mark(and(X1,X2)) a__and(mark(X1),X2) (12)
mark(isNat(X)) a__isNat(X) (13)
mark(tt) tt (14)
mark(s(X)) s(mark(X)) (15)
mark(0) 0 (16)
a__U11(X1,X2) U11(X1,X2) (17)
a__U21(X1,X2,X3) U21(X1,X2,X3) (18)
a__plus(X1,X2) plus(X1,X2) (19)
a__and(X1,X2) and(X1,X2) (20)
a__isNat(X) isNat(X) (21)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Rule Removal

Using the
prec(a__U11) = 1 stat(a__U11) = lex
prec(tt) = 4 stat(tt) = mul
prec(a__U21) = 3 stat(a__U21) = lex
prec(s) = 0 stat(s) = mul
prec(a__plus) = 3 stat(a__plus) = lex
prec(a__and) = 2 stat(a__and) = mul
prec(a__isNat) = 2 stat(a__isNat) = mul
prec(0) = 5 stat(0) = mul
prec(plus) = 3 stat(plus) = lex
prec(isNat) = 2 stat(isNat) = mul
prec(U11) = 1 stat(U11) = lex
prec(U21) = 3 stat(U21) = lex
prec(and) = 2 stat(and) = mul

π(a__U11) = [2,1]
π(tt) = []
π(mark) = 1
π(a__U21) = [3,2,1]
π(s) = [1]
π(a__plus) = [1,2]
π(a__and) = [1,2]
π(a__isNat) = [1]
π(0) = []
π(plus) = [1,2]
π(isNat) = [1]
π(U11) = [2,1]
π(U21) = [3,2,1]
π(and) = [1,2]

all of the following rules can be deleted.
a__U11(tt,N) mark(N) (1)
a__U21(tt,M,N) s(a__plus(mark(N),mark(M))) (2)
a__and(tt,X) mark(X) (3)
a__isNat(0) tt (4)
a__isNat(plus(V1,V2)) a__and(a__isNat(V1),isNat(V2)) (5)
a__isNat(s(V1)) a__isNat(V1) (6)
a__plus(N,0) a__U11(a__isNat(N),N) (7)
a__plus(N,s(M)) a__U21(a__and(a__isNat(M),isNat(N)),M,N) (8)

1.1 Rule Removal

Using the Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(tt) = 8 weight(tt) = 1
prec(0) = 12 weight(0) = 1
prec(mark) = 13 weight(mark) = 0
prec(isNat) = 3 weight(isNat) = 1
prec(a__isNat) = 5 weight(a__isNat) = 1
prec(s) = 11 weight(s) = 1
prec(U11) = 1 weight(U11) = 0
prec(a__U11) = 4 weight(a__U11) = 0
prec(U21) = 6 weight(U21) = 0
prec(a__U21) = 7 weight(a__U21) = 0
prec(plus) = 0 weight(plus) = 0
prec(a__plus) = 2 weight(a__plus) = 0
prec(and) = 9 weight(and) = 0
prec(a__and) = 10 weight(a__and) = 0
all of the following rules can be deleted.
mark(U11(X1,X2)) a__U11(mark(X1),X2) (9)
mark(U21(X1,X2,X3)) a__U21(mark(X1),X2,X3) (10)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (11)
mark(and(X1,X2)) a__and(mark(X1),X2) (12)
mark(isNat(X)) a__isNat(X) (13)
mark(tt) tt (14)
mark(s(X)) s(mark(X)) (15)
mark(0) 0 (16)
a__U11(X1,X2) U11(X1,X2) (17)
a__U21(X1,X2,X3) U21(X1,X2,X3) (18)
a__plus(X1,X2) plus(X1,X2) (19)
a__and(X1,X2) and(X1,X2) (20)
a__isNat(X) isNat(X) (21)

1.1.1 R is empty

There are no rules in the TRS. Hence, it is terminating.