Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_nokinds_noand_GM)

The rewrite relation of the following TRS is considered.

a__U11(tt,V2) a__U12(a__isNat(V2)) (1)
a__U12(tt) tt (2)
a__U21(tt) tt (3)
a__U31(tt,N) mark(N) (4)
a__U41(tt,M,N) a__U42(a__isNat(N),M,N) (5)
a__U42(tt,M,N) s(a__plus(mark(N),mark(M))) (6)
a__isNat(0) tt (7)
a__isNat(plus(V1,V2)) a__U11(a__isNat(V1),V2) (8)
a__isNat(s(V1)) a__U21(a__isNat(V1)) (9)
a__plus(N,0) a__U31(a__isNat(N),N) (10)
a__plus(N,s(M)) a__U41(a__isNat(M),M,N) (11)
mark(U11(X1,X2)) a__U11(mark(X1),X2) (12)
mark(U12(X)) a__U12(mark(X)) (13)
mark(isNat(X)) a__isNat(X) (14)
mark(U21(X)) a__U21(mark(X)) (15)
mark(U31(X1,X2)) a__U31(mark(X1),X2) (16)
mark(U41(X1,X2,X3)) a__U41(mark(X1),X2,X3) (17)
mark(U42(X1,X2,X3)) a__U42(mark(X1),X2,X3) (18)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (19)
mark(tt) tt (20)
mark(s(X)) s(mark(X)) (21)
mark(0) 0 (22)
a__U11(X1,X2) U11(X1,X2) (23)
a__U12(X) U12(X) (24)
a__isNat(X) isNat(X) (25)
a__U21(X) U21(X) (26)
a__U31(X1,X2) U31(X1,X2) (27)
a__U41(X1,X2,X3) U41(X1,X2,X3) (28)
a__U42(X1,X2,X3) U42(X1,X2,X3) (29)
a__plus(X1,X2) plus(X1,X2) (30)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
a__U42#(tt,M,N) mark#(N) (31)
mark#(U21(X)) a__U21#(mark(X)) (32)
a__isNat#(s(V1)) a__U21#(a__isNat(V1)) (33)
a__plus#(N,0) a__U31#(a__isNat(N),N) (34)
a__plus#(N,s(M)) a__isNat#(M) (35)
mark#(U11(X1,X2)) mark#(X1) (36)
mark#(U31(X1,X2)) mark#(X1) (37)
mark#(U31(X1,X2)) a__U31#(mark(X1),X2) (38)
mark#(isNat(X)) a__isNat#(X) (39)
a__U31#(tt,N) mark#(N) (40)
a__plus#(N,0) a__isNat#(N) (41)
mark#(U21(X)) mark#(X) (42)
a__U11#(tt,V2) a__U12#(a__isNat(V2)) (43)
mark#(plus(X1,X2)) mark#(X1) (44)
a__isNat#(s(V1)) a__isNat#(V1) (45)
mark#(U11(X1,X2)) a__U11#(mark(X1),X2) (46)
mark#(U42(X1,X2,X3)) mark#(X1) (47)
mark#(U12(X)) mark#(X) (48)
a__isNat#(plus(V1,V2)) a__isNat#(V1) (49)
mark#(s(X)) mark#(X) (50)
a__isNat#(plus(V1,V2)) a__U11#(a__isNat(V1),V2) (51)
mark#(U41(X1,X2,X3)) a__U41#(mark(X1),X2,X3) (52)
mark#(U42(X1,X2,X3)) a__U42#(mark(X1),X2,X3) (53)
mark#(plus(X1,X2)) a__plus#(mark(X1),mark(X2)) (54)
a__U11#(tt,V2) a__isNat#(V2) (55)
mark#(plus(X1,X2)) mark#(X2) (56)
a__U41#(tt,M,N) a__isNat#(N) (57)
a__U42#(tt,M,N) mark#(M) (58)
a__U42#(tt,M,N) a__plus#(mark(N),mark(M)) (59)
a__plus#(N,s(M)) a__U41#(a__isNat(M),M,N) (60)
a__U41#(tt,M,N) a__U42#(a__isNat(N),M,N) (61)
mark#(U12(X)) a__U12#(mark(X)) (62)
mark#(U41(X1,X2,X3)) mark#(X1) (63)

1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.