Certification Problem

Input (TPDB TRS_Standard/CiME_04/list-sum-prod-assoc-append)

The rewrite relation of the following TRS is considered.

+(x,0) x (1)
+(0,x) x (2)
+(s(x),s(y)) s(s(+(x,y))) (3)
+(+(x,y),z) +(x,+(y,z)) (4)
*(x,0) 0 (5)
*(0,x) 0 (6)
*(s(x),s(y)) s(+(*(x,y),+(x,y))) (7)
*(*(x,y),z) *(x,*(y,z)) (8)
app(nil,l) l (9)
app(cons(x,l1),l2) cons(x,app(l1,l2)) (10)
sum(nil) 0 (11)
sum(cons(x,l)) +(x,sum(l)) (12)
sum(app(l1,l2)) +(sum(l1),sum(l2)) (13)
prod(nil) s(0) (14)
prod(cons(x,l)) *(x,prod(l)) (15)
prod(app(l1,l2)) *(prod(l1),prod(l2)) (16)

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.
sum#(app(l1,l2)) sum#(l1) (17)
*#(s(x),s(y)) +#(*(x,y),+(x,y)) (18)
+#(s(x),s(y)) +#(x,y) (19)
app#(cons(x,l1),l2) app#(l1,l2) (20)
prod#(app(l1,l2)) prod#(l1) (21)
prod#(app(l1,l2)) prod#(l2) (22)
*#(*(x,y),z) *#(x,*(y,z)) (23)
*#(s(x),s(y)) *#(x,y) (24)
prod#(app(l1,l2)) *#(prod(l1),prod(l2)) (25)
sum#(cons(x,l)) sum#(l) (26)
prod#(cons(x,l)) prod#(l) (27)
+#(+(x,y),z) +#(y,z) (28)
prod#(cons(x,l)) *#(x,prod(l)) (29)
sum#(app(l1,l2)) sum#(l2) (30)
sum#(app(l1,l2)) +#(sum(l1),sum(l2)) (31)
*#(s(x),s(y)) +#(x,y) (32)
*#(*(x,y),z) *#(y,z) (33)
sum#(cons(x,l)) +#(x,sum(l)) (34)
+#(+(x,y),z) +#(x,+(y,z)) (35)

1.1 Dependency Graph Processor

The dependency pairs are split into 5 components.