Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_complete_Z)

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(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)
activate(n__0) 0 (22)
activate(n__plus(X1,X2)) plus(X1,X2) (23)
activate(n__isNatKind(X)) isNatKind(X) (24)
activate(n__s(X)) s(X) (25)
activate(n__and(X1,X2)) and(X1,X2) (26)
activate(X) X (27)

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) (28)
U11#(tt,V1,V2) activate#(V1) (29)
U11#(tt,V1,V2) isNat#(activate(V1)) (30)
U11#(tt,V1,V2) U12#(isNat(activate(V1)),activate(V2)) (31)
U12#(tt,V2) activate#(V2) (32)
U12#(tt,V2) isNat#(activate(V2)) (33)
U12#(tt,V2) U13#(isNat(activate(V2))) (34)
U21#(tt,V1) activate#(V1) (35)
U21#(tt,V1) isNat#(activate(V1)) (36)
U21#(tt,V1) U22#(isNat(activate(V1))) (37)
U31#(tt,N) activate#(N) (38)
U41#(tt,M,N) activate#(M) (39)
U41#(tt,M,N) activate#(N) (40)
U41#(tt,M,N) plus#(activate(N),activate(M)) (41)
U41#(tt,M,N) s#(plus(activate(N),activate(M))) (42)
and#(tt,X) activate#(X) (43)
isNat#(n__plus(V1,V2)) activate#(V2) (44)
isNat#(n__plus(V1,V2)) activate#(V1) (45)
isNat#(n__plus(V1,V2)) isNatKind#(activate(V1)) (46)
isNat#(n__plus(V1,V2)) and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) (47)
isNat#(n__plus(V1,V2)) U11#(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) (48)
isNat#(n__s(V1)) activate#(V1) (49)
isNat#(n__s(V1)) isNatKind#(activate(V1)) (50)
isNat#(n__s(V1)) U21#(isNatKind(activate(V1)),activate(V1)) (51)
isNatKind#(n__plus(V1,V2)) activate#(V2) (52)
isNatKind#(n__plus(V1,V2)) activate#(V1) (53)
isNatKind#(n__plus(V1,V2)) isNatKind#(activate(V1)) (54)
isNatKind#(n__plus(V1,V2)) and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) (55)
isNatKind#(n__s(V1)) activate#(V1) (56)
isNatKind#(n__s(V1)) isNatKind#(activate(V1)) (57)
plus#(N,0) isNat#(N) (58)
plus#(N,0) and#(isNat(N),n__isNatKind(N)) (59)
plus#(N,0) U31#(and(isNat(N),n__isNatKind(N)),N) (60)
plus#(N,s(M)) isNat#(N) (61)
plus#(N,s(M)) isNat#(M) (62)
plus#(N,s(M)) and#(isNat(M),n__isNatKind(M)) (63)
plus#(N,s(M)) and#(and(isNat(M),n__isNatKind(M)),n__and(isNat(N),n__isNatKind(N))) (64)
plus#(N,s(M)) U41#(and(and(isNat(M),n__isNatKind(M)),n__and(isNat(N),n__isNatKind(N))),M,N) (65)
activate#(n__0) 0# (66)
activate#(n__plus(X1,X2)) plus#(X1,X2) (67)
activate#(n__isNatKind(X)) isNatKind#(X) (68)
activate#(n__s(X)) s#(X) (69)
activate#(n__and(X1,X2)) and#(X1,X2) (70)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.