Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_nokinds_iGM)

The rewrite relation of the following TRS is considered.

active(U11(tt,N)) mark(N) (1)
active(U21(tt,M,N)) mark(s(plus(N,M))) (2)
active(and(tt,X)) mark(X) (3)
active(isNat(0)) mark(tt) (4)
active(isNat(plus(V1,V2))) mark(and(isNat(V1),isNat(V2))) (5)
active(isNat(s(V1))) mark(isNat(V1)) (6)
active(plus(N,0)) mark(U11(isNat(N),N)) (7)
active(plus(N,s(M))) mark(U21(and(isNat(M),isNat(N)),M,N)) (8)
mark(U11(X1,X2)) active(U11(mark(X1),X2)) (9)
mark(tt) active(tt) (10)
mark(U21(X1,X2,X3)) active(U21(mark(X1),X2,X3)) (11)
mark(s(X)) active(s(mark(X))) (12)
mark(plus(X1,X2)) active(plus(mark(X1),mark(X2))) (13)
mark(and(X1,X2)) active(and(mark(X1),X2)) (14)
mark(isNat(X)) active(isNat(X)) (15)
mark(0) active(0) (16)
U11(mark(X1),X2) U11(X1,X2) (17)
U11(X1,mark(X2)) U11(X1,X2) (18)
U11(active(X1),X2) U11(X1,X2) (19)
U11(X1,active(X2)) U11(X1,X2) (20)
U21(mark(X1),X2,X3) U21(X1,X2,X3) (21)
U21(X1,mark(X2),X3) U21(X1,X2,X3) (22)
U21(X1,X2,mark(X3)) U21(X1,X2,X3) (23)
U21(active(X1),X2,X3) U21(X1,X2,X3) (24)
U21(X1,active(X2),X3) U21(X1,X2,X3) (25)
U21(X1,X2,active(X3)) U21(X1,X2,X3) (26)
s(mark(X)) s(X) (27)
s(active(X)) s(X) (28)
plus(mark(X1),X2) plus(X1,X2) (29)
plus(X1,mark(X2)) plus(X1,X2) (30)
plus(active(X1),X2) plus(X1,X2) (31)
plus(X1,active(X2)) plus(X1,X2) (32)
and(mark(X1),X2) and(X1,X2) (33)
and(X1,mark(X2)) and(X1,X2) (34)
and(active(X1),X2) and(X1,X2) (35)
and(X1,active(X2)) and(X1,X2) (36)
isNat(mark(X)) isNat(X) (37)
isNat(active(X)) isNat(X) (38)

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.
active#(U21(tt,M,N)) s#(plus(N,M)) (39)
and#(X1,mark(X2)) and#(X1,X2) (40)
plus#(X1,mark(X2)) plus#(X1,X2) (41)
mark#(tt) active#(tt) (42)
plus#(X1,active(X2)) plus#(X1,X2) (43)
U21#(X1,mark(X2),X3) U21#(X1,X2,X3) (44)
s#(active(X)) s#(X) (45)
active#(isNat(plus(V1,V2))) mark#(and(isNat(V1),isNat(V2))) (46)
U11#(active(X1),X2) U11#(X1,X2) (47)
active#(U11(tt,N)) mark#(N) (48)
U21#(X1,X2,active(X3)) U21#(X1,X2,X3) (49)
active#(plus(N,s(M))) isNat#(N) (50)
U11#(X1,mark(X2)) U11#(X1,X2) (51)
active#(isNat(plus(V1,V2))) and#(isNat(V1),isNat(V2)) (52)
isNat#(mark(X)) isNat#(X) (53)
mark#(isNat(X)) active#(isNat(X)) (54)
active#(plus(N,s(M))) U21#(and(isNat(M),isNat(N)),M,N) (55)
active#(isNat(plus(V1,V2))) isNat#(V2) (56)
mark#(0) active#(0) (57)
mark#(plus(X1,X2)) mark#(X2) (58)
active#(isNat(s(V1))) isNat#(V1) (59)
mark#(plus(X1,X2)) plus#(mark(X1),mark(X2)) (60)
active#(plus(N,s(M))) isNat#(M) (61)
mark#(s(X)) mark#(X) (62)
mark#(s(X)) s#(mark(X)) (63)
U11#(mark(X1),X2) U11#(X1,X2) (64)
mark#(plus(X1,X2)) mark#(X1) (65)
U11#(X1,active(X2)) U11#(X1,X2) (66)
active#(plus(N,s(M))) and#(isNat(M),isNat(N)) (67)
mark#(U11(X1,X2)) active#(U11(mark(X1),X2)) (68)
U21#(X1,active(X2),X3) U21#(X1,X2,X3) (69)
active#(and(tt,X)) mark#(X) (70)
and#(X1,active(X2)) and#(X1,X2) (71)
plus#(active(X1),X2) plus#(X1,X2) (72)
U21#(active(X1),X2,X3) U21#(X1,X2,X3) (73)
isNat#(active(X)) isNat#(X) (74)
active#(isNat(plus(V1,V2))) isNat#(V1) (75)
mark#(plus(X1,X2)) active#(plus(mark(X1),mark(X2))) (76)
active#(plus(N,0)) U11#(isNat(N),N) (77)
and#(active(X1),X2) and#(X1,X2) (78)
s#(mark(X)) s#(X) (79)
mark#(and(X1,X2)) mark#(X1) (80)
mark#(s(X)) active#(s(mark(X))) (81)
active#(plus(N,0)) isNat#(N) (82)
mark#(and(X1,X2)) and#(mark(X1),X2) (83)
active#(isNat(0)) mark#(tt) (84)
mark#(U21(X1,X2,X3)) active#(U21(mark(X1),X2,X3)) (85)
active#(plus(N,0)) mark#(U11(isNat(N),N)) (86)
mark#(U21(X1,X2,X3)) mark#(X1) (87)
mark#(and(X1,X2)) active#(and(mark(X1),X2)) (88)
and#(mark(X1),X2) and#(X1,X2) (89)
U21#(X1,X2,mark(X3)) U21#(X1,X2,X3) (90)
mark#(U11(X1,X2)) mark#(X1) (91)
active#(U21(tt,M,N)) plus#(N,M) (92)
active#(U21(tt,M,N)) mark#(s(plus(N,M))) (93)
active#(plus(N,s(M))) mark#(U21(and(isNat(M),isNat(N)),M,N)) (94)
active#(isNat(s(V1))) mark#(isNat(V1)) (95)
mark#(U11(X1,X2)) U11#(mark(X1),X2) (96)
plus#(mark(X1),X2) plus#(X1,X2) (97)
U21#(mark(X1),X2,X3) U21#(X1,X2,X3) (98)
mark#(U21(X1,X2,X3)) U21#(mark(X1),X2,X3) (99)

1.1 Dependency Graph Processor

The dependency pairs are split into 7 components.