Certification Problem

Input (TPDB TRS_Standard/AG01/#3.13)

The rewrite relation of the following TRS is considered.

eq(0,0) true (1)
eq(0,s(x)) false (2)
eq(s(x),0) false (3)
eq(s(x),s(y)) eq(x,y) (4)
or(true,y) true (5)
or(false,y) y (6)
union(empty,h) h (7)
union(edge(x,y,i),h) edge(x,y,union(i,h)) (8)
reach(x,y,empty,h) false (9)
reach(x,y,edge(u,v,i),h) if_reach_1(eq(x,u),x,y,edge(u,v,i),h) (10)
if_reach_1(true,x,y,edge(u,v,i),h) if_reach_2(eq(y,v),x,y,edge(u,v,i),h) (11)
if_reach_2(true,x,y,edge(u,v,i),h) true (12)
if_reach_2(false,x,y,edge(u,v,i),h) or(reach(x,y,i,h),reach(v,y,union(i,h),empty)) (13)
if_reach_1(false,x,y,edge(u,v,i),h) reach(x,y,i,edge(u,v,h)) (14)

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.
if_reach_2#(false,x,y,edge(u,v,i),h) reach#(x,y,i,h) (15)
if_reach_1#(true,x,y,edge(u,v,i),h) eq#(y,v) (16)
reach#(x,y,edge(u,v,i),h) eq#(x,u) (17)
eq#(s(x),s(y)) eq#(x,y) (18)
if_reach_1#(false,x,y,edge(u,v,i),h) reach#(x,y,i,edge(u,v,h)) (19)
union#(edge(x,y,i),h) union#(i,h) (20)
if_reach_1#(true,x,y,edge(u,v,i),h) if_reach_2#(eq(y,v),x,y,edge(u,v,i),h) (21)
if_reach_2#(false,x,y,edge(u,v,i),h) reach#(v,y,union(i,h),empty) (22)
if_reach_2#(false,x,y,edge(u,v,i),h) or#(reach(x,y,i,h),reach(v,y,union(i,h),empty)) (23)
reach#(x,y,edge(u,v,i),h) if_reach_1#(eq(x,u),x,y,edge(u,v,i),h) (24)
if_reach_2#(false,x,y,edge(u,v,i),h) union#(i,h) (25)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.