Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PEANO_complete_GM)

The rewrite relation of the following TRS is considered.

a__U11(tt,V1,V2) a__U12(a__isNat(V1),V2) (1)
a__U12(tt,V2) a__U13(a__isNat(V2)) (2)
a__U13(tt) tt (3)
a__U21(tt,V1) a__U22(a__isNat(V1)) (4)
a__U22(tt) tt (5)
a__U31(tt,N) mark(N) (6)
a__U41(tt,M,N) s(a__plus(mark(N),mark(M))) (7)
a__and(tt,X) mark(X) (8)
a__isNat(0) tt (9)
a__isNat(plus(V1,V2)) a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) (10)
a__isNat(s(V1)) a__U21(a__isNatKind(V1),V1) (11)
a__isNatKind(0) tt (12)
a__isNatKind(plus(V1,V2)) a__and(a__isNatKind(V1),isNatKind(V2)) (13)
a__isNatKind(s(V1)) a__isNatKind(V1) (14)
a__plus(N,0) a__U31(a__and(a__isNat(N),isNatKind(N)),N) (15)
a__plus(N,s(M)) a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) (16)
mark(U11(X1,X2,X3)) a__U11(mark(X1),X2,X3) (17)
mark(U12(X1,X2)) a__U12(mark(X1),X2) (18)
mark(isNat(X)) a__isNat(X) (19)
mark(U13(X)) a__U13(mark(X)) (20)
mark(U21(X1,X2)) a__U21(mark(X1),X2) (21)
mark(U22(X)) a__U22(mark(X)) (22)
mark(U31(X1,X2)) a__U31(mark(X1),X2) (23)
mark(U41(X1,X2,X3)) a__U41(mark(X1),X2,X3) (24)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (25)
mark(and(X1,X2)) a__and(mark(X1),X2) (26)
mark(isNatKind(X)) a__isNatKind(X) (27)
mark(tt) tt (28)
mark(s(X)) s(mark(X)) (29)
mark(0) 0 (30)
a__U11(X1,X2,X3) U11(X1,X2,X3) (31)
a__U12(X1,X2) U12(X1,X2) (32)
a__isNat(X) isNat(X) (33)
a__U13(X) U13(X) (34)
a__U21(X1,X2) U21(X1,X2) (35)
a__U22(X) U22(X) (36)
a__U31(X1,X2) U31(X1,X2) (37)
a__U41(X1,X2,X3) U41(X1,X2,X3) (38)
a__plus(X1,X2) plus(X1,X2) (39)
a__and(X1,X2) and(X1,X2) (40)
a__isNatKind(X) isNatKind(X) (41)

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.
a__U11#(tt,V1,V2) a__isNat#(V1) (42)
a__U11#(tt,V1,V2) a__U12#(a__isNat(V1),V2) (43)
a__U12#(tt,V2) a__isNat#(V2) (44)
a__U12#(tt,V2) a__U13#(a__isNat(V2)) (45)
a__U21#(tt,V1) a__isNat#(V1) (46)
a__U21#(tt,V1) a__U22#(a__isNat(V1)) (47)
a__U31#(tt,N) mark#(N) (48)
a__U41#(tt,M,N) mark#(M) (49)
a__U41#(tt,M,N) mark#(N) (50)
a__U41#(tt,M,N) a__plus#(mark(N),mark(M)) (51)
a__and#(tt,X) mark#(X) (52)
a__isNat#(plus(V1,V2)) a__isNatKind#(V1) (53)
a__isNat#(plus(V1,V2)) a__and#(a__isNatKind(V1),isNatKind(V2)) (54)
a__isNat#(plus(V1,V2)) a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) (55)
a__isNat#(s(V1)) a__isNatKind#(V1) (56)
a__isNat#(s(V1)) a__U21#(a__isNatKind(V1),V1) (57)
a__isNatKind#(plus(V1,V2)) a__isNatKind#(V1) (58)
a__isNatKind#(plus(V1,V2)) a__and#(a__isNatKind(V1),isNatKind(V2)) (59)
a__isNatKind#(s(V1)) a__isNatKind#(V1) (60)
a__plus#(N,0) a__isNat#(N) (61)
a__plus#(N,0) a__and#(a__isNat(N),isNatKind(N)) (62)
a__plus#(N,0) a__U31#(a__and(a__isNat(N),isNatKind(N)),N) (63)
a__plus#(N,s(M)) a__isNat#(M) (64)
a__plus#(N,s(M)) a__and#(a__isNat(M),isNatKind(M)) (65)
a__plus#(N,s(M)) a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) (66)
a__plus#(N,s(M)) a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) (67)
mark#(U11(X1,X2,X3)) mark#(X1) (68)
mark#(U11(X1,X2,X3)) a__U11#(mark(X1),X2,X3) (69)
mark#(U12(X1,X2)) mark#(X1) (70)
mark#(U12(X1,X2)) a__U12#(mark(X1),X2) (71)
mark#(isNat(X)) a__isNat#(X) (72)
mark#(U13(X)) mark#(X) (73)
mark#(U13(X)) a__U13#(mark(X)) (74)
mark#(U21(X1,X2)) mark#(X1) (75)
mark#(U21(X1,X2)) a__U21#(mark(X1),X2) (76)
mark#(U22(X)) mark#(X) (77)
mark#(U22(X)) a__U22#(mark(X)) (78)
mark#(U31(X1,X2)) mark#(X1) (79)
mark#(U31(X1,X2)) a__U31#(mark(X1),X2) (80)
mark#(U41(X1,X2,X3)) mark#(X1) (81)
mark#(U41(X1,X2,X3)) a__U41#(mark(X1),X2,X3) (82)
mark#(plus(X1,X2)) mark#(X2) (83)
mark#(plus(X1,X2)) mark#(X1) (84)
mark#(plus(X1,X2)) a__plus#(mark(X1),mark(X2)) (85)
mark#(and(X1,X2)) mark#(X1) (86)
mark#(and(X1,X2)) a__and#(mark(X1),X2) (87)
mark#(isNatKind(X)) a__isNatKind#(X) (88)
mark#(s(X)) mark#(X) (89)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.