Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/MYNAT_nokinds_FR)

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

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.