Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/MYNAT_nokinds-noand_Z)

The rewrite relation of the following TRS is considered.

U11(tt,V2) U12(isNat(activate(V2))) (1)
U12(tt) tt (2)
U21(tt) tt (3)
U31(tt,V2) U32(isNat(activate(V2))) (4)
U32(tt) tt (5)
U41(tt,N) activate(N) (6)
U51(tt,M,N) U52(isNat(activate(N)),activate(M),activate(N)) (7)
U52(tt,M,N) s(plus(activate(N),activate(M))) (8)
U61(tt) 0 (9)
U71(tt,M,N) U72(isNat(activate(N)),activate(M),activate(N)) (10)
U72(tt,M,N) plus(x(activate(N),activate(M)),activate(N)) (11)
isNat(n__0) tt (12)
isNat(n__plus(V1,V2)) U11(isNat(activate(V1)),activate(V2)) (13)
isNat(n__s(V1)) U21(isNat(activate(V1))) (14)
isNat(n__x(V1,V2)) U31(isNat(activate(V1)),activate(V2)) (15)
plus(N,0) U41(isNat(N),N) (16)
plus(N,s(M)) U51(isNat(M),M,N) (17)
x(N,0) U61(isNat(N)) (18)
x(N,s(M)) U71(isNat(M),M,N) (19)
0 n__0 (20)
plus(X1,X2) n__plus(X1,X2) (21)
s(X) n__s(X) (22)
x(X1,X2) n__x(X1,X2) (23)
activate(n__0) 0 (24)
activate(n__plus(X1,X2)) plus(X1,X2) (25)
activate(n__s(X)) s(X) (26)
activate(n__x(X1,X2)) x(X1,X2) (27)
activate(X) X (28)

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.
isNat#(n__plus(V1,V2)) U11#(isNat(activate(V1)),activate(V2)) (29)
isNat#(n__x(V1,V2)) isNat#(activate(V1)) (30)
plus#(N,s(M)) isNat#(M) (31)
U11#(tt,V2) U12#(isNat(activate(V2))) (32)
U31#(tt,V2) U32#(isNat(activate(V2))) (33)
isNat#(n__x(V1,V2)) U31#(isNat(activate(V1)),activate(V2)) (34)
U52#(tt,M,N) activate#(M) (35)
U11#(tt,V2) activate#(V2) (36)
U31#(tt,V2) isNat#(activate(V2)) (37)
U31#(tt,V2) activate#(V2) (38)
U52#(tt,M,N) s#(plus(activate(N),activate(M))) (39)
U61#(tt) 0# (40)
U52#(tt,M,N) activate#(N) (41)
isNat#(n__s(V1)) U21#(isNat(activate(V1))) (42)
U72#(tt,M,N) activate#(N) (43)
U72#(tt,M,N) activate#(N) (43)
U71#(tt,M,N) activate#(N) (44)
U71#(tt,M,N) isNat#(activate(N)) (45)
isNat#(n__x(V1,V2)) activate#(V2) (46)
activate#(n__0) 0# (47)
x#(N,s(M)) isNat#(M) (48)
isNat#(n__s(V1)) isNat#(activate(V1)) (49)
x#(N,s(M)) U71#(isNat(M),M,N) (50)
x#(N,0) U61#(isNat(N)) (51)
U71#(tt,M,N) activate#(M) (52)
U51#(tt,M,N) activate#(M) (53)
U72#(tt,M,N) plus#(x(activate(N),activate(M)),activate(N)) (54)
U52#(tt,M,N) plus#(activate(N),activate(M)) (55)
U72#(tt,M,N) activate#(M) (56)
plus#(N,0) U41#(isNat(N),N) (57)
isNat#(n__plus(V1,V2)) activate#(V2) (58)
isNat#(n__x(V1,V2)) activate#(V1) (59)
plus#(N,s(M)) U51#(isNat(M),M,N) (60)
U71#(tt,M,N) U72#(isNat(activate(N)),activate(M),activate(N)) (61)
plus#(N,0) isNat#(N) (62)
activate#(n__x(X1,X2)) x#(X1,X2) (63)
U51#(tt,M,N) U52#(isNat(activate(N)),activate(M),activate(N)) (64)
activate#(n__s(X)) s#(X) (65)
U51#(tt,M,N) activate#(N) (66)
U71#(tt,M,N) activate#(N) (44)
U11#(tt,V2) isNat#(activate(V2)) (67)
U51#(tt,M,N) activate#(N) (66)
activate#(n__plus(X1,X2)) plus#(X1,X2) (68)
isNat#(n__plus(V1,V2)) isNat#(activate(V1)) (69)
U41#(tt,N) activate#(N) (70)
U72#(tt,M,N) x#(activate(N),activate(M)) (71)
isNat#(n__s(V1)) activate#(V1) (72)
isNat#(n__plus(V1,V2)) activate#(V1) (73)
x#(N,0) isNat#(N) (74)
U51#(tt,M,N) isNat#(activate(N)) (75)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.