Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/MYNAT_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(U31(tt)) mark(0) (3)
active(U41(tt,M,N)) mark(plus(x(N,M),N)) (4)
active(and(tt,X)) mark(X) (5)
active(isNat(0)) mark(tt) (6)
active(isNat(plus(V1,V2))) mark(and(isNat(V1),isNat(V2))) (7)
active(isNat(s(V1))) mark(isNat(V1)) (8)
active(isNat(x(V1,V2))) mark(and(isNat(V1),isNat(V2))) (9)
active(plus(N,0)) mark(U11(isNat(N),N)) (10)
active(plus(N,s(M))) mark(U21(and(isNat(M),isNat(N)),M,N)) (11)
active(x(N,0)) mark(U31(isNat(N))) (12)
active(x(N,s(M))) mark(U41(and(isNat(M),isNat(N)),M,N)) (13)
mark(U11(X1,X2)) active(U11(mark(X1),X2)) (14)
mark(tt) active(tt) (15)
mark(U21(X1,X2,X3)) active(U21(mark(X1),X2,X3)) (16)
mark(s(X)) active(s(mark(X))) (17)
mark(plus(X1,X2)) active(plus(mark(X1),mark(X2))) (18)
mark(U31(X)) active(U31(mark(X))) (19)
mark(0) active(0) (20)
mark(U41(X1,X2,X3)) active(U41(mark(X1),X2,X3)) (21)
mark(x(X1,X2)) active(x(mark(X1),mark(X2))) (22)
mark(and(X1,X2)) active(and(mark(X1),X2)) (23)
mark(isNat(X)) active(isNat(X)) (24)
U11(mark(X1),X2) U11(X1,X2) (25)
U11(X1,mark(X2)) U11(X1,X2) (26)
U11(active(X1),X2) U11(X1,X2) (27)
U11(X1,active(X2)) U11(X1,X2) (28)
U21(mark(X1),X2,X3) U21(X1,X2,X3) (29)
U21(X1,mark(X2),X3) U21(X1,X2,X3) (30)
U21(X1,X2,mark(X3)) U21(X1,X2,X3) (31)
U21(active(X1),X2,X3) U21(X1,X2,X3) (32)
U21(X1,active(X2),X3) U21(X1,X2,X3) (33)
U21(X1,X2,active(X3)) U21(X1,X2,X3) (34)
s(mark(X)) s(X) (35)
s(active(X)) s(X) (36)
plus(mark(X1),X2) plus(X1,X2) (37)
plus(X1,mark(X2)) plus(X1,X2) (38)
plus(active(X1),X2) plus(X1,X2) (39)
plus(X1,active(X2)) plus(X1,X2) (40)
U31(mark(X)) U31(X) (41)
U31(active(X)) U31(X) (42)
U41(mark(X1),X2,X3) U41(X1,X2,X3) (43)
U41(X1,mark(X2),X3) U41(X1,X2,X3) (44)
U41(X1,X2,mark(X3)) U41(X1,X2,X3) (45)
U41(active(X1),X2,X3) U41(X1,X2,X3) (46)
U41(X1,active(X2),X3) U41(X1,X2,X3) (47)
U41(X1,X2,active(X3)) U41(X1,X2,X3) (48)
x(mark(X1),X2) x(X1,X2) (49)
x(X1,mark(X2)) x(X1,X2) (50)
x(active(X1),X2) x(X1,X2) (51)
x(X1,active(X2)) x(X1,X2) (52)
and(mark(X1),X2) and(X1,X2) (53)
and(X1,mark(X2)) and(X1,X2) (54)
and(active(X1),X2) and(X1,X2) (55)
and(X1,active(X2)) and(X1,X2) (56)
isNat(mark(X)) isNat(X) (57)
isNat(active(X)) isNat(X) (58)

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)) (59)
active#(U31(tt)) mark#(0) (60)
U21#(X1,X2,mark(X3)) U21#(X1,X2,X3) (61)
active#(plus(N,s(M))) mark#(U21(and(isNat(M),isNat(N)),M,N)) (62)
mark#(isNat(X)) active#(isNat(X)) (63)
mark#(U21(X1,X2,X3)) active#(U21(mark(X1),X2,X3)) (64)
mark#(x(X1,X2)) x#(mark(X1),mark(X2)) (65)
mark#(U11(X1,X2)) U11#(mark(X1),X2) (66)
active#(x(N,0)) isNat#(N) (67)
x#(X1,mark(X2)) x#(X1,X2) (68)
active#(x(N,0)) U31#(isNat(N)) (69)
mark#(and(X1,X2)) and#(mark(X1),X2) (70)
mark#(plus(X1,X2)) mark#(X2) (71)
mark#(plus(X1,X2)) plus#(mark(X1),mark(X2)) (72)
mark#(tt) active#(tt) (73)
mark#(s(X)) mark#(X) (74)
mark#(U11(X1,X2)) mark#(X1) (75)
active#(isNat(plus(V1,V2))) mark#(and(isNat(V1),isNat(V2))) (76)
mark#(s(X)) active#(s(mark(X))) (77)
U21#(X1,mark(X2),X3) U21#(X1,X2,X3) (78)
mark#(U31(X)) active#(U31(mark(X))) (79)
U21#(active(X1),X2,X3) U21#(X1,X2,X3) (80)
active#(plus(N,0)) mark#(U11(isNat(N),N)) (81)
U21#(X1,active(X2),X3) U21#(X1,X2,X3) (82)
mark#(and(X1,X2)) mark#(X1) (83)
s#(mark(X)) s#(X) (84)
active#(plus(N,0)) U11#(isNat(N),N) (85)
active#(isNat(plus(V1,V2))) isNat#(V1) (86)
mark#(x(X1,X2)) mark#(X1) (87)
active#(x(N,0)) mark#(U31(isNat(N))) (88)
active#(isNat(s(V1))) isNat#(V1) (89)
U11#(mark(X1),X2) U11#(X1,X2) (90)
U41#(X1,X2,active(X3)) U41#(X1,X2,X3) (91)
U31#(mark(X)) U31#(X) (92)
U41#(X1,active(X2),X3) U41#(X1,X2,X3) (93)
mark#(plus(X1,X2)) mark#(X1) (94)
plus#(active(X1),X2) plus#(X1,X2) (95)
mark#(U31(X)) U31#(mark(X)) (96)
active#(U41(tt,M,N)) x#(N,M) (97)
active#(x(N,s(M))) isNat#(N) (98)
U11#(active(X1),X2) U11#(X1,X2) (99)
active#(x(N,s(M))) isNat#(M) (100)
mark#(U41(X1,X2,X3)) U41#(mark(X1),X2,X3) (101)
U11#(X1,mark(X2)) U11#(X1,X2) (102)
mark#(U11(X1,X2)) active#(U11(mark(X1),X2)) (103)
mark#(plus(X1,X2)) active#(plus(mark(X1),mark(X2))) (104)
U21#(X1,X2,active(X3)) U21#(X1,X2,X3) (105)
and#(mark(X1),X2) and#(X1,X2) (106)
active#(plus(N,s(M))) and#(isNat(M),isNat(N)) (107)
s#(active(X)) s#(X) (108)
active#(isNat(plus(V1,V2))) isNat#(V2) (109)
active#(isNat(s(V1))) mark#(isNat(V1)) (110)
mark#(U41(X1,X2,X3)) mark#(X1) (111)
isNat#(active(X)) isNat#(X) (112)
active#(and(tt,X)) mark#(X) (113)
active#(plus(N,s(M))) U21#(and(isNat(M),isNat(N)),M,N) (114)
mark#(0) active#(0) (115)
x#(X1,active(X2)) x#(X1,X2) (116)
active#(isNat(x(V1,V2))) mark#(and(isNat(V1),isNat(V2))) (117)
active#(x(N,s(M))) mark#(U41(and(isNat(M),isNat(N)),M,N)) (118)
and#(X1,mark(X2)) and#(X1,X2) (119)
U41#(active(X1),X2,X3) U41#(X1,X2,X3) (120)
U41#(X1,X2,mark(X3)) U41#(X1,X2,X3) (121)
plus#(mark(X1),X2) plus#(X1,X2) (122)
active#(U41(tt,M,N)) mark#(plus(x(N,M),N)) (123)
active#(U41(tt,M,N)) plus#(x(N,M),N) (124)
U11#(X1,active(X2)) U11#(X1,X2) (125)
active#(plus(N,s(M))) isNat#(N) (126)
mark#(s(X)) s#(mark(X)) (127)
U21#(mark(X1),X2,X3) U21#(X1,X2,X3) (128)
and#(X1,active(X2)) and#(X1,X2) (129)
mark#(x(X1,X2)) active#(x(mark(X1),mark(X2))) (130)
active#(isNat(x(V1,V2))) isNat#(V2) (131)
active#(x(N,s(M))) and#(isNat(M),isNat(N)) (132)
isNat#(mark(X)) isNat#(X) (133)
mark#(U21(X1,X2,X3)) U21#(mark(X1),X2,X3) (134)
active#(U11(tt,N)) mark#(N) (135)
active#(isNat(x(V1,V2))) isNat#(V1) (136)
active#(plus(N,0)) isNat#(N) (137)
and#(active(X1),X2) and#(X1,X2) (138)
active#(plus(N,s(M))) isNat#(M) (139)
x#(active(X1),X2) x#(X1,X2) (140)
U41#(X1,mark(X2),X3) U41#(X1,X2,X3) (141)
active#(isNat(x(V1,V2))) and#(isNat(V1),isNat(V2)) (142)
mark#(U21(X1,X2,X3)) mark#(X1) (143)
mark#(x(X1,X2)) mark#(X2) (144)
mark#(and(X1,X2)) active#(and(mark(X1),X2)) (145)
active#(x(N,s(M))) U41#(and(isNat(M),isNat(N)),M,N) (146)
active#(isNat(0)) mark#(tt) (147)
active#(U21(tt,M,N)) plus#(N,M) (148)
mark#(U31(X)) mark#(X) (149)
active#(U21(tt,M,N)) mark#(s(plus(N,M))) (150)
active#(isNat(plus(V1,V2))) and#(isNat(V1),isNat(V2)) (151)
U31#(active(X)) U31#(X) (152)
plus#(X1,mark(X2)) plus#(X1,X2) (153)
U41#(mark(X1),X2,X3) U41#(X1,X2,X3) (154)
mark#(U41(X1,X2,X3)) active#(U41(mark(X1),X2,X3)) (155)
x#(mark(X1),X2) x#(X1,X2) (156)
plus#(X1,active(X2)) plus#(X1,X2) (157)

1.1 Dependency Graph Processor

The dependency pairs are split into 10 components.