Certification Problem

Input (TPDB TRS_Standard/AProVE_04/JFP_Ex51)

The rewrite relation of the following TRS is considered.

minus_active(0,y) 0 (1)
mark(0) 0 (2)
minus_active(s(x),s(y)) minus_active(x,y) (3)
mark(s(x)) s(mark(x)) (4)
ge_active(x,0) true (5)
mark(minus(x,y)) minus_active(x,y) (6)
ge_active(0,s(y)) false (7)
mark(ge(x,y)) ge_active(x,y) (8)
ge_active(s(x),s(y)) ge_active(x,y) (9)
mark(div(x,y)) div_active(mark(x),y) (10)
div_active(0,s(y)) 0 (11)
mark(if(x,y,z)) if_active(mark(x),y,z) (12)
div_active(s(x),s(y)) if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) (13)
if_active(true,x,y) mark(x) (14)
minus_active(x,y) minus(x,y) (15)
if_active(false,x,y) mark(y) (16)
ge_active(x,y) ge(x,y) (17)
if_active(x,y,z) if(x,y,z) (18)
div_active(x,y) div(x,y) (19)

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.
minus_active#(s(x),s(y)) minus_active#(x,y) (20)
mark#(s(x)) mark#(x) (21)
mark#(minus(x,y)) minus_active#(x,y) (22)
mark#(ge(x,y)) ge_active#(x,y) (23)
ge_active#(s(x),s(y)) ge_active#(x,y) (24)
mark#(div(x,y)) mark#(x) (25)
mark#(div(x,y)) div_active#(mark(x),y) (26)
mark#(if(x,y,z)) mark#(x) (27)
mark#(if(x,y,z)) if_active#(mark(x),y,z) (28)
div_active#(s(x),s(y)) ge_active#(x,y) (29)
div_active#(s(x),s(y)) if_active#(ge_active(x,y),s(div(minus(x,y),s(y))),0) (30)
if_active#(true,x,y) mark#(x) (31)
if_active#(false,x,y) mark#(y) (32)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.