Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/MYNAT_nokinds_Z)

The rewrite relation of the following TRS is considered.

U11(tt,N) activate(N) (1)
U21(tt,M,N) s(plus(activate(N),activate(M))) (2)
U31(tt) 0 (3)
U41(tt,M,N) plus(x(activate(N),activate(M)),activate(N)) (4)
and(tt,X) activate(X) (5)
isNat(n__0) tt (6)
isNat(n__plus(V1,V2)) and(isNat(activate(V1)),n__isNat(activate(V2))) (7)
isNat(n__s(V1)) isNat(activate(V1)) (8)
isNat(n__x(V1,V2)) and(isNat(activate(V1)),n__isNat(activate(V2))) (9)
plus(N,0) U11(isNat(N),N) (10)
plus(N,s(M)) U21(and(isNat(M),n__isNat(N)),M,N) (11)
x(N,0) U31(isNat(N)) (12)
x(N,s(M)) U41(and(isNat(M),n__isNat(N)),M,N) (13)
0 n__0 (14)
plus(X1,X2) n__plus(X1,X2) (15)
isNat(X) n__isNat(X) (16)
s(X) n__s(X) (17)
x(X1,X2) n__x(X1,X2) (18)
activate(n__0) 0 (19)
activate(n__plus(X1,X2)) plus(X1,X2) (20)
activate(n__isNat(X)) isNat(X) (21)
activate(n__s(X)) s(X) (22)
activate(n__x(X1,X2)) x(X1,X2) (23)
activate(X) X (24)

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.
U21#(tt,M,N) plus#(activate(N),activate(M)) (25)
U31#(tt) 0# (26)
U41#(tt,M,N) activate#(N) (27)
U41#(tt,M,N) activate#(N) (27)
x#(N,s(M)) and#(isNat(M),n__isNat(N)) (28)
plus#(N,s(M)) and#(isNat(M),n__isNat(N)) (29)
isNat#(n__x(V1,V2)) isNat#(activate(V1)) (30)
isNat#(n__x(V1,V2)) activate#(V2) (31)
plus#(N,0) isNat#(N) (32)
plus#(N,0) U11#(isNat(N),N) (33)
plus#(N,s(M)) U21#(and(isNat(M),n__isNat(N)),M,N) (34)
isNat#(n__s(V1)) isNat#(activate(V1)) (35)
plus#(N,s(M)) isNat#(M) (36)
U11#(tt,N) activate#(N) (37)
and#(tt,X) activate#(X) (38)
isNat#(n__plus(V1,V2)) isNat#(activate(V1)) (39)
x#(N,s(M)) isNat#(M) (40)
isNat#(n__x(V1,V2)) activate#(V1) (41)
U41#(tt,M,N) plus#(x(activate(N),activate(M)),activate(N)) (42)
x#(N,s(M)) U41#(and(isNat(M),n__isNat(N)),M,N) (43)
activate#(n__isNat(X)) isNat#(X) (44)
isNat#(n__plus(V1,V2)) activate#(V2) (45)
U41#(tt,M,N) x#(activate(N),activate(M)) (46)
activate#(n__0) 0# (47)
x#(N,0) isNat#(N) (48)
isNat#(n__s(V1)) activate#(V1) (49)
isNat#(n__plus(V1,V2)) and#(isNat(activate(V1)),n__isNat(activate(V2))) (50)
activate#(n__s(X)) s#(X) (51)
U41#(tt,M,N) activate#(M) (52)
isNat#(n__plus(V1,V2)) activate#(V1) (53)
x#(N,0) U31#(isNat(N)) (54)
U21#(tt,M,N) activate#(N) (55)
U21#(tt,M,N) s#(plus(activate(N),activate(M))) (56)
isNat#(n__x(V1,V2)) and#(isNat(activate(V1)),n__isNat(activate(V2))) (57)
activate#(n__x(X1,X2)) x#(X1,X2) (58)
U21#(tt,M,N) activate#(M) (59)
activate#(n__plus(X1,X2)) plus#(X1,X2) (60)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.