Certification Problem

Input (TPDB TRS_Standard/AProVE_07/otto08)

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,0) x (4)
minus(0,s(y)) 0 (5)
minus(s(x),s(y)) minus(x,y) (6)
plus(x,0) x (7)
plus(x,s(y)) s(plus(x,y)) (8)
mod(s(x),0) 0 (9)
mod(x,s(y)) help(x,s(y),0) (10)
help(x,s(y),c) if(le(c,x),x,s(y),c) (11)
if(true,x,s(y),c) help(x,s(y),plus(c,s(y))) (12)
if(false,x,s(y),c) minus(x,minus(c,s(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)
plus#(x,s(y)) plus#(x,y) (16)
mod#(x,s(y)) help#(x,s(y),0) (17)
help#(x,s(y),c) if#(le(c,x),x,s(y),c) (18)
help#(x,s(y),c) le#(c,x) (19)
if#(true,x,s(y),c) help#(x,s(y),plus(c,s(y))) (20)
if#(true,x,s(y),c) plus#(c,s(y)) (21)
if#(false,x,s(y),c) minus#(x,minus(c,s(y))) (22)
if#(false,x,s(y),c) minus#(c,s(y)) (23)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.