Certification Problem

Input (TPDB TRS_Standard/AProVE_06/div_notCeTermin)

The rewrite relation of the following TRS is considered.

ge(0,0) true (1)
ge(s(x),0) ge(x,0) (2)
ge(0,s(0)) false (3)
ge(0,s(s(x))) ge(0,s(x)) (4)
ge(s(x),s(y)) ge(x,y) (5)
minus(0,0) 0 (6)
minus(0,s(x)) minus(0,x) (7)
minus(s(x),0) s(minus(x,0)) (8)
minus(s(x),s(y)) minus(x,y) (9)
plus(0,0) 0 (10)
plus(0,s(x)) s(plus(0,x)) (11)
plus(s(x),y) s(plus(x,y)) (12)
div(x,y) ify(ge(y,s(0)),x,y) (13)
ify(false,x,y) divByZeroError (14)
ify(true,x,y) if(ge(x,y),x,y) (15)
if(false,x,y) 0 (16)
if(true,x,y) s(div(minus(x,y),y)) (17)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Switch to Innermost Termination

The TRS is overlay and locally confluent:

10

Hence, it suffices to show innermost termination in the following.

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
ge#(s(x),0) ge#(x,0) (18)
ge#(0,s(s(x))) ge#(0,s(x)) (19)
ge#(s(x),s(y)) ge#(x,y) (20)
minus#(0,s(x)) minus#(0,x) (21)
minus#(s(x),0) minus#(x,0) (22)
minus#(s(x),s(y)) minus#(x,y) (23)
plus#(0,s(x)) plus#(0,x) (24)
plus#(s(x),y) plus#(x,y) (25)
div#(x,y) ify#(ge(y,s(0)),x,y) (26)
div#(x,y) ge#(y,s(0)) (27)
ify#(true,x,y) if#(ge(x,y),x,y) (28)
ify#(true,x,y) ge#(x,y) (29)
if#(true,x,y) div#(minus(x,y),y) (30)
if#(true,x,y) minus#(x,y) (31)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 9 components.