Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_complete_FR)

The rewrite relation of the following TRS is considered.

U11(tt,V1,V2) U12(isNat(activate(V1)),activate(V2)) (1)
U12(tt,V2) U13(isNat(activate(V2))) (2)
U13(tt) tt (3)
U21(tt,V1) U22(isNat(activate(V1))) (4)
U22(tt) tt (5)
U31(tt,N) activate(N) (6)
U41(tt,M,N) s(plus(activate(N),activate(M))) (7)
and(tt,X) activate(X) (8)
isNat(n__0) tt (9)
isNat(n__plus(V1,V2)) U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) (10)
isNat(n__s(V1)) U21(isNatKind(activate(V1)),activate(V1)) (11)
isNatKind(n__0) tt (12)
isNatKind(n__plus(V1,V2)) and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) (13)
isNatKind(n__s(V1)) isNatKind(activate(V1)) (14)
plus(N,0) U31(and(isNat(N),n__isNatKind(N)),N) (15)
plus(N,s(M)) U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) (16)
0 n__0 (17)
plus(X1,X2) n__plus(X1,X2) (18)
isNatKind(X) n__isNatKind(X) (19)
s(X) n__s(X) (20)
and(X1,X2) n__and(X1,X2) (21)
isNat(X) n__isNat(X) (22)
activate(n__0) 0 (23)
activate(n__plus(X1,X2)) plus(activate(X1),activate(X2)) (24)
activate(n__isNatKind(X)) isNatKind(X) (25)
activate(n__s(X)) s(activate(X)) (26)
activate(n__and(X1,X2)) and(activate(X1),X2) (27)
activate(n__isNat(X)) isNat(X) (28)
activate(X) X (29)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
U11#(tt,V1,V2) activate#(V2) (30)
U11#(tt,V1,V2) activate#(V1) (31)
U11#(tt,V1,V2) isNat#(activate(V1)) (32)
U11#(tt,V1,V2) U12#(isNat(activate(V1)),activate(V2)) (33)
U12#(tt,V2) activate#(V2) (34)
U12#(tt,V2) isNat#(activate(V2)) (35)
U12#(tt,V2) U13#(isNat(activate(V2))) (36)
U21#(tt,V1) activate#(V1) (37)
U21#(tt,V1) isNat#(activate(V1)) (38)
U21#(tt,V1) U22#(isNat(activate(V1))) (39)
U31#(tt,N) activate#(N) (40)
U41#(tt,M,N) activate#(M) (41)
U41#(tt,M,N) activate#(N) (42)
U41#(tt,M,N) plus#(activate(N),activate(M)) (43)
U41#(tt,M,N) s#(plus(activate(N),activate(M))) (44)
and#(tt,X) activate#(X) (45)
isNat#(n__plus(V1,V2)) activate#(V2) (46)
isNat#(n__plus(V1,V2)) activate#(V1) (47)
isNat#(n__plus(V1,V2)) isNatKind#(activate(V1)) (48)
isNat#(n__plus(V1,V2)) and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) (49)
isNat#(n__plus(V1,V2)) U11#(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) (50)
isNat#(n__s(V1)) activate#(V1) (51)
isNat#(n__s(V1)) isNatKind#(activate(V1)) (52)
isNat#(n__s(V1)) U21#(isNatKind(activate(V1)),activate(V1)) (53)
isNatKind#(n__plus(V1,V2)) activate#(V2) (54)
isNatKind#(n__plus(V1,V2)) activate#(V1) (55)
isNatKind#(n__plus(V1,V2)) isNatKind#(activate(V1)) (56)
isNatKind#(n__plus(V1,V2)) and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) (57)
isNatKind#(n__s(V1)) activate#(V1) (58)
isNatKind#(n__s(V1)) isNatKind#(activate(V1)) (59)
plus#(N,0) isNat#(N) (60)
plus#(N,0) and#(isNat(N),n__isNatKind(N)) (61)
plus#(N,0) U31#(and(isNat(N),n__isNatKind(N)),N) (62)
plus#(N,s(M)) isNat#(M) (63)
plus#(N,s(M)) and#(isNat(M),n__isNatKind(M)) (64)
plus#(N,s(M)) and#(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))) (65)
plus#(N,s(M)) U41#(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) (66)
activate#(n__0) 0# (67)
activate#(n__plus(X1,X2)) activate#(X2) (68)
activate#(n__plus(X1,X2)) activate#(X1) (69)
activate#(n__plus(X1,X2)) plus#(activate(X1),activate(X2)) (70)
activate#(n__isNatKind(X)) isNatKind#(X) (71)
activate#(n__s(X)) activate#(X) (72)
activate#(n__s(X)) s#(activate(X)) (73)
activate#(n__and(X1,X2)) activate#(X1) (74)
activate#(n__and(X1,X2)) and#(activate(X1),X2) (75)
activate#(n__isNat(X)) isNat#(X) (76)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.