Certification Problem

Input (TPDB TRS_Innermost/Transformed_CSR_innermost_04/PEANO_nokinds_noand_iGM)

The rewrite relation of the following TRS is considered.

active(U11(tt,V2)) mark(U12(isNat(V2))) (1)
active(U12(tt)) mark(tt) (2)
active(U21(tt)) mark(tt) (3)
active(U31(tt,N)) mark(N) (4)
active(U41(tt,M,N)) mark(U42(isNat(N),M,N)) (5)
active(U42(tt,M,N)) mark(s(plus(N,M))) (6)
active(isNat(0)) mark(tt) (7)
active(isNat(plus(V1,V2))) mark(U11(isNat(V1),V2)) (8)
active(isNat(s(V1))) mark(U21(isNat(V1))) (9)
active(plus(N,0)) mark(U31(isNat(N),N)) (10)
active(plus(N,s(M))) mark(U41(isNat(M),M,N)) (11)
mark(U11(X1,X2)) active(U11(mark(X1),X2)) (12)
mark(tt) active(tt) (13)
mark(U12(X)) active(U12(mark(X))) (14)
mark(isNat(X)) active(isNat(X)) (15)
mark(U21(X)) active(U21(mark(X))) (16)
mark(U31(X1,X2)) active(U31(mark(X1),X2)) (17)
mark(U41(X1,X2,X3)) active(U41(mark(X1),X2,X3)) (18)
mark(U42(X1,X2,X3)) active(U42(mark(X1),X2,X3)) (19)
mark(s(X)) active(s(mark(X))) (20)
mark(plus(X1,X2)) active(plus(mark(X1),mark(X2))) (21)
mark(0) active(0) (22)
U11(mark(X1),X2) U11(X1,X2) (23)
U11(X1,mark(X2)) U11(X1,X2) (24)
U11(active(X1),X2) U11(X1,X2) (25)
U11(X1,active(X2)) U11(X1,X2) (26)
U12(mark(X)) U12(X) (27)
U12(active(X)) U12(X) (28)
isNat(mark(X)) isNat(X) (29)
isNat(active(X)) isNat(X) (30)
U21(mark(X)) U21(X) (31)
U21(active(X)) U21(X) (32)
U31(mark(X1),X2) U31(X1,X2) (33)
U31(X1,mark(X2)) U31(X1,X2) (34)
U31(active(X1),X2) U31(X1,X2) (35)
U31(X1,active(X2)) U31(X1,X2) (36)
U41(mark(X1),X2,X3) U41(X1,X2,X3) (37)
U41(X1,mark(X2),X3) U41(X1,X2,X3) (38)
U41(X1,X2,mark(X3)) U41(X1,X2,X3) (39)
U41(active(X1),X2,X3) U41(X1,X2,X3) (40)
U41(X1,active(X2),X3) U41(X1,X2,X3) (41)
U41(X1,X2,active(X3)) U41(X1,X2,X3) (42)
U42(mark(X1),X2,X3) U42(X1,X2,X3) (43)
U42(X1,mark(X2),X3) U42(X1,X2,X3) (44)
U42(X1,X2,mark(X3)) U42(X1,X2,X3) (45)
U42(active(X1),X2,X3) U42(X1,X2,X3) (46)
U42(X1,active(X2),X3) U42(X1,X2,X3) (47)
U42(X1,X2,active(X3)) U42(X1,X2,X3) (48)
s(mark(X)) s(X) (49)
s(active(X)) s(X) (50)
plus(mark(X1),X2) plus(X1,X2) (51)
plus(X1,mark(X2)) plus(X1,X2) (52)
plus(active(X1),X2) plus(X1,X2) (53)
plus(X1,active(X2)) plus(X1,X2) (54)
The evaluation strategy is innermost.

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
active#(U11(tt,V2)) mark#(U12(isNat(V2))) (55)
active#(U11(tt,V2)) U12#(isNat(V2)) (56)
active#(U11(tt,V2)) isNat#(V2) (57)
active#(U12(tt)) mark#(tt) (58)
active#(U21(tt)) mark#(tt) (59)
active#(U31(tt,N)) mark#(N) (60)
active#(U41(tt,M,N)) mark#(U42(isNat(N),M,N)) (61)
active#(U41(tt,M,N)) U42#(isNat(N),M,N) (62)
active#(U41(tt,M,N)) isNat#(N) (63)
active#(U42(tt,M,N)) mark#(s(plus(N,M))) (64)
active#(U42(tt,M,N)) s#(plus(N,M)) (65)
active#(U42(tt,M,N)) plus#(N,M) (66)
active#(isNat(0)) mark#(tt) (67)
active#(isNat(plus(V1,V2))) mark#(U11(isNat(V1),V2)) (68)
active#(isNat(plus(V1,V2))) U11#(isNat(V1),V2) (69)
active#(isNat(plus(V1,V2))) isNat#(V1) (70)
active#(isNat(s(V1))) mark#(U21(isNat(V1))) (71)
active#(isNat(s(V1))) U21#(isNat(V1)) (72)
active#(isNat(s(V1))) isNat#(V1) (73)
active#(plus(N,0)) mark#(U31(isNat(N),N)) (74)
active#(plus(N,0)) U31#(isNat(N),N) (75)
active#(plus(N,0)) isNat#(N) (76)
active#(plus(N,s(M))) mark#(U41(isNat(M),M,N)) (77)
active#(plus(N,s(M))) U41#(isNat(M),M,N) (78)
active#(plus(N,s(M))) isNat#(M) (79)
mark#(U11(X1,X2)) active#(U11(mark(X1),X2)) (80)
mark#(U11(X1,X2)) U11#(mark(X1),X2) (81)
mark#(U11(X1,X2)) mark#(X1) (82)
mark#(tt) active#(tt) (83)
mark#(U12(X)) active#(U12(mark(X))) (84)
mark#(U12(X)) U12#(mark(X)) (85)
mark#(U12(X)) mark#(X) (86)
mark#(isNat(X)) active#(isNat(X)) (87)
mark#(U21(X)) active#(U21(mark(X))) (88)
mark#(U21(X)) U21#(mark(X)) (89)
mark#(U21(X)) mark#(X) (90)
mark#(U31(X1,X2)) active#(U31(mark(X1),X2)) (91)
mark#(U31(X1,X2)) U31#(mark(X1),X2) (92)
mark#(U31(X1,X2)) mark#(X1) (93)
mark#(U41(X1,X2,X3)) active#(U41(mark(X1),X2,X3)) (94)
mark#(U41(X1,X2,X3)) U41#(mark(X1),X2,X3) (95)
mark#(U41(X1,X2,X3)) mark#(X1) (96)
mark#(U42(X1,X2,X3)) active#(U42(mark(X1),X2,X3)) (97)
mark#(U42(X1,X2,X3)) U42#(mark(X1),X2,X3) (98)
mark#(U42(X1,X2,X3)) mark#(X1) (99)
mark#(s(X)) active#(s(mark(X))) (100)
mark#(s(X)) s#(mark(X)) (101)
mark#(s(X)) mark#(X) (102)
mark#(plus(X1,X2)) active#(plus(mark(X1),mark(X2))) (103)
mark#(plus(X1,X2)) plus#(mark(X1),mark(X2)) (104)
mark#(plus(X1,X2)) mark#(X1) (105)
mark#(plus(X1,X2)) mark#(X2) (106)
mark#(0) active#(0) (107)
U11#(mark(X1),X2) U11#(X1,X2) (108)
U11#(X1,mark(X2)) U11#(X1,X2) (109)
U11#(active(X1),X2) U11#(X1,X2) (110)
U11#(X1,active(X2)) U11#(X1,X2) (111)
U12#(mark(X)) U12#(X) (112)
U12#(active(X)) U12#(X) (113)
isNat#(mark(X)) isNat#(X) (114)
isNat#(active(X)) isNat#(X) (115)
U21#(mark(X)) U21#(X) (116)
U21#(active(X)) U21#(X) (117)
U31#(mark(X1),X2) U31#(X1,X2) (118)
U31#(X1,mark(X2)) U31#(X1,X2) (119)
U31#(active(X1),X2) U31#(X1,X2) (120)
U31#(X1,active(X2)) U31#(X1,X2) (121)
U41#(mark(X1),X2,X3) U41#(X1,X2,X3) (122)
U41#(X1,mark(X2),X3) U41#(X1,X2,X3) (123)
U41#(X1,X2,mark(X3)) U41#(X1,X2,X3) (124)
U41#(active(X1),X2,X3) U41#(X1,X2,X3) (125)
U41#(X1,active(X2),X3) U41#(X1,X2,X3) (126)
U41#(X1,X2,active(X3)) U41#(X1,X2,X3) (127)
U42#(mark(X1),X2,X3) U42#(X1,X2,X3) (128)
U42#(X1,mark(X2),X3) U42#(X1,X2,X3) (129)
U42#(X1,X2,mark(X3)) U42#(X1,X2,X3) (130)
U42#(active(X1),X2,X3) U42#(X1,X2,X3) (131)
U42#(X1,active(X2),X3) U42#(X1,X2,X3) (132)
U42#(X1,X2,active(X3)) U42#(X1,X2,X3) (133)
s#(mark(X)) s#(X) (134)
s#(active(X)) s#(X) (135)
plus#(mark(X1),X2) plus#(X1,X2) (136)
plus#(X1,mark(X2)) plus#(X1,X2) (137)
plus#(active(X1),X2) plus#(X1,X2) (138)
plus#(X1,active(X2)) plus#(X1,X2) (139)

1.1 Dependency Graph Processor

The dependency pairs are split into 10 components.