Certification Problem

Input (TPDB TRS_Equational/Mixed_AC/BAG_nokinds-noand)

The rewrite relation of the following equational TRS is considered.

union(X,empty) X (1)
union(empty,X) X (2)
0(z) z (3)
U101(tt,X,Y) U102(isBin(Y),X,Y) (4)
U102(tt,X,Y) 0(mult(X,Y)) (5)
U11(tt) tt (6)
U111(tt,X,Y) U112(isBin(Y),X,Y) (7)
U112(tt,X,Y) plus(0(mult(X,Y)),Y) (8)
U121(tt,X) X (9)
U131(tt,X,Y) U132(isBin(Y),X,Y) (10)
U132(tt,X,Y) 0(plus(X,Y)) (11)
U141(tt,X,Y) U142(isBin(Y),X,Y) (12)
U142(tt,X,Y) 1(plus(X,Y)) (13)
U151(tt,X,Y) U152(isBin(Y),X,Y) (14)
U152(tt,X,Y) 0(plus(plus(X,Y),1(z))) (15)
U161(tt,X) X (16)
U171(tt,A,B) U172(isBag(B),A,B) (17)
U172(tt,A,B) mult(prod(A),prod(B)) (18)
U181(tt,X) X (19)
U191(tt,A,B) U192(isBag(B),A,B) (20)
U192(tt,A,B) plus(sum(A),sum(B)) (21)
U21(tt,V2) U22(isBag(V2)) (22)
U22(tt) tt (23)
U31(tt) tt (24)
U41(tt) tt (25)
U51(tt,V2) U52(isBin(V2)) (26)
U52(tt) tt (27)
U61(tt,V2) U62(isBin(V2)) (28)
U62(tt) tt (29)
U71(tt) tt (30)
U81(tt) tt (31)
U91(tt) z (32)
isBag(empty) tt (33)
isBag(singl(V1)) U11(isBin(V1)) (34)
isBag(union(V1,V2)) U21(isBag(V1),V2) (35)
isBin(z) tt (36)
isBin(0(V1)) U31(isBin(V1)) (37)
isBin(1(V1)) U41(isBin(V1)) (38)
isBin(mult(V1,V2)) U51(isBin(V1),V2) (39)
isBin(plus(V1,V2)) U61(isBin(V1),V2) (40)
isBin(prod(V1)) U71(isBag(V1)) (41)
isBin(sum(V1)) U81(isBag(V1)) (42)
mult(z,X) U91(isBin(X)) (43)
mult(0(X),Y) U101(isBin(X),X,Y) (44)
mult(1(X),Y) U111(isBin(X),X,Y) (45)
plus(z,X) U121(isBin(X),X) (46)
plus(0(X),0(Y)) U131(isBin(X),X,Y) (47)
plus(0(X),1(Y)) U141(isBin(X),X,Y) (48)
plus(1(X),1(Y)) U151(isBin(X),X,Y) (49)
prod(empty) 1(z) (50)
prod(singl(X)) U161(isBin(X),X) (51)
prod(union(A,B)) U171(isBag(A),A,B) (52)
sum(empty) 0(z) (53)
sum(singl(X)) U181(isBin(X),X) (54)
sum(union(A,B)) U191(isBag(A),A,B) (55)

Associative symbols: mult, plus, union

Commutative symbols: mult, plus, union

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 AC Dependency Pair Transformation

The following set of (strict) dependency pairs is constructed for the TRS.

U101#(tt,X,Y) U102#(isBin(Y),X,Y) (71)
U101#(tt,X,Y) isBin#(Y) (72)
U102#(tt,X,Y) 0#(mult(X,Y)) (73)
U102#(tt,X,Y) mult#(X,Y) (74)
U111#(tt,X,Y) U112#(isBin(Y),X,Y) (75)
U111#(tt,X,Y) isBin#(Y) (76)
U112#(tt,X,Y) plus#(0(mult(X,Y)),Y) (77)
U112#(tt,X,Y) 0#(mult(X,Y)) (78)
U112#(tt,X,Y) mult#(X,Y) (79)
U131#(tt,X,Y) U132#(isBin(Y),X,Y) (80)
U131#(tt,X,Y) isBin#(Y) (81)
U132#(tt,X,Y) 0#(plus(X,Y)) (82)
U132#(tt,X,Y) plus#(X,Y) (83)
U141#(tt,X,Y) U142#(isBin(Y),X,Y) (84)
U141#(tt,X,Y) isBin#(Y) (85)
U142#(tt,X,Y) plus#(X,Y) (86)
U151#(tt,X,Y) U152#(isBin(Y),X,Y) (87)
U151#(tt,X,Y) isBin#(Y) (88)
U152#(tt,X,Y) 0#(plus(plus(X,Y),1(z))) (89)
U152#(tt,X,Y) plus#(plus(X,Y),1(z)) (90)
U152#(tt,X,Y) plus#(X,Y) (91)
U171#(tt,A,B) U172#(isBag(B),A,B) (92)
U171#(tt,A,B) isBag#(B) (93)
U172#(tt,A,B) mult#(prod(A),prod(B)) (94)
U172#(tt,A,B) prod#(A) (95)
U172#(tt,A,B) prod#(B) (96)
U191#(tt,A,B) U192#(isBag(B),A,B) (97)
U191#(tt,A,B) isBag#(B) (98)
U192#(tt,A,B) plus#(sum(A),sum(B)) (99)
U192#(tt,A,B) sum#(A) (100)
U192#(tt,A,B) sum#(B) (101)
U21#(tt,V2) U22#(isBag(V2)) (102)
U21#(tt,V2) isBag#(V2) (103)
U51#(tt,V2) U52#(isBin(V2)) (104)
U51#(tt,V2) isBin#(V2) (105)
U61#(tt,V2) U62#(isBin(V2)) (106)
U61#(tt,V2) isBin#(V2) (107)
isBag#(singl(V1)) U11#(isBin(V1)) (108)
isBag#(singl(V1)) isBin#(V1) (109)
isBag#(union(V1,V2)) U21#(isBag(V1),V2) (110)
isBag#(union(V1,V2)) isBag#(V1) (111)
isBin#(0(V1)) U31#(isBin(V1)) (112)
isBin#(0(V1)) isBin#(V1) (113)
isBin#(1(V1)) U41#(isBin(V1)) (114)
isBin#(1(V1)) isBin#(V1) (115)
isBin#(mult(V1,V2)) U51#(isBin(V1),V2) (116)
isBin#(mult(V1,V2)) isBin#(V1) (117)
isBin#(plus(V1,V2)) U61#(isBin(V1),V2) (118)
isBin#(plus(V1,V2)) isBin#(V1) (119)
isBin#(prod(V1)) U71#(isBag(V1)) (120)
isBin#(prod(V1)) isBag#(V1) (121)
isBin#(sum(V1)) U81#(isBag(V1)) (122)
isBin#(sum(V1)) isBag#(V1) (123)
mult#(z,X) U91#(isBin(X)) (124)
mult#(z,X) isBin#(X) (125)
mult#(0(X),Y) U101#(isBin(X),X,Y) (126)
mult#(0(X),Y) isBin#(X) (127)
mult#(1(X),Y) U111#(isBin(X),X,Y) (128)
mult#(1(X),Y) isBin#(X) (129)
plus#(z,X) U121#(isBin(X),X) (130)
plus#(z,X) isBin#(X) (131)
plus#(0(X),0(Y)) U131#(isBin(X),X,Y) (132)
plus#(0(X),0(Y)) isBin#(X) (133)
plus#(0(X),1(Y)) U141#(isBin(X),X,Y) (134)
plus#(0(X),1(Y)) isBin#(X) (135)
plus#(1(X),1(Y)) U151#(isBin(X),X,Y) (136)
plus#(1(X),1(Y)) isBin#(X) (137)
prod#(singl(X)) U161#(isBin(X),X) (138)
prod#(singl(X)) isBin#(X) (139)
prod#(union(A,B)) U171#(isBag(A),A,B) (140)
prod#(union(A,B)) isBag#(A) (141)
sum#(empty) 0#(z) (142)
sum#(singl(X)) U181#(isBin(X),X) (143)
sum#(singl(X)) isBin#(X) (144)
sum#(union(A,B)) U191#(isBag(A),A,B) (145)
sum#(union(A,B)) isBag#(A) (146)
mult#(mult(z,X),ext) mult#(U91(isBin(X)),ext) (147)
mult#(mult(z,X),ext) U91#(isBin(X)) (148)
mult#(mult(z,X),ext) isBin#(X) (149)
mult#(mult(0(X),Y),ext) mult#(U101(isBin(X),X,Y),ext) (150)
mult#(mult(0(X),Y),ext) U101#(isBin(X),X,Y) (151)
mult#(mult(0(X),Y),ext) isBin#(X) (152)
mult#(mult(1(X),Y),ext) mult#(U111(isBin(X),X,Y),ext) (153)
mult#(mult(1(X),Y),ext) U111#(isBin(X),X,Y) (154)
mult#(mult(1(X),Y),ext) isBin#(X) (155)
plus#(plus(z,X),ext) plus#(U121(isBin(X),X),ext) (156)
plus#(plus(z,X),ext) U121#(isBin(X),X) (157)
plus#(plus(z,X),ext) isBin#(X) (158)
plus#(plus(0(X),0(Y)),ext) plus#(U131(isBin(X),X,Y),ext) (159)
plus#(plus(0(X),0(Y)),ext) U131#(isBin(X),X,Y) (160)
plus#(plus(0(X),0(Y)),ext) isBin#(X) (161)
plus#(plus(0(X),1(Y)),ext) plus#(U141(isBin(X),X,Y),ext) (162)
plus#(plus(0(X),1(Y)),ext) U141#(isBin(X),X,Y) (163)
plus#(plus(0(X),1(Y)),ext) isBin#(X) (164)
plus#(plus(1(X),1(Y)),ext) plus#(U151(isBin(X),X,Y),ext) (165)
plus#(plus(1(X),1(Y)),ext) U151#(isBin(X),X,Y) (166)
plus#(plus(1(X),1(Y)),ext) isBin#(X) (167)
union#(union(X,empty),ext) union#(X,ext) (168)
union#(union(empty,X),ext) union#(X,ext) (169)
The extended rules of the TRS
mult(mult(z,X),ext) mult(U91(isBin(X)),ext) (170)
mult(mult(0(X),Y),ext) mult(U101(isBin(X),X,Y),ext) (171)
mult(mult(1(X),Y),ext) mult(U111(isBin(X),X,Y),ext) (172)
plus(plus(z,X),ext) plus(U121(isBin(X),X),ext) (173)
plus(plus(0(X),0(Y)),ext) plus(U131(isBin(X),X,Y),ext) (174)
plus(plus(0(X),1(Y)),ext) plus(U141(isBin(X),X,Y),ext) (175)
plus(plus(1(X),1(Y)),ext) plus(U151(isBin(X),X,Y),ext) (176)
union(union(X,empty),ext) union(X,ext) (177)
union(union(empty,X),ext) union(X,ext) (178)
give rise to even more dependency pairs (by sharping the root symbols of each rule). Finiteness for all DPs in combination with the equational DPs is proven as follows.

1.1 Dependency Graph Processor

The dependency pairs are split into 6 components.