Certification Problem

Input (TPDB TRS_Standard/AProVE_06/modulo)

The rewrite relation of the following TRS is considered.

le(0,y) true (1)
le(s(x),0) false (2)
le(s(x),s(y)) le(x,y) (3)
minus(x,x) 0 (4)
minus(x,0) x (5)
minus(0,x) 0 (6)
minus(s(x),s(y)) minus(x,y) (7)
isZero(0) true (8)
isZero(s(x)) false (9)
mod(x,y) if_mod(isZero(y),le(y,x),x,y,minus(x,y)) (10)
if_mod(true,b,x,y,z) divByZeroError (11)
if_mod(false,false,x,y,z) x (12)
if_mod(false,true,x,y,z) mod(z,y) (13)

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.
le#(s(x),s(y)) le#(x,y) (14)
minus#(s(x),s(y)) minus#(x,y) (15)
mod#(x,y) if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) (16)
mod#(x,y) isZero#(y) (17)
mod#(x,y) le#(y,x) (18)
mod#(x,y) minus#(x,y) (19)
if_mod#(false,true,x,y,z) mod#(z,y) (20)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.