Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann29)

The rewrite relation of the following TRS is considered.

le(s(x),0) false (1)
le(0,y) true (2)
le(s(x),s(y)) le(x,y) (3)
plus(0,y) y (4)
plus(s(x),y) s(plus(x,y)) (5)
times(0,y) 0 (6)
times(s(x),y) plus(y,times(x,y)) (7)
log(x,0) baseError (8)
log(x,s(0)) baseError (9)
log(0,s(s(b))) logZeroError (10)
log(s(x),s(s(b))) loop(s(x),s(s(b)),s(0),0) (11)
loop(x,s(s(b)),s(y),z) if(le(x,s(y)),x,s(s(b)),s(y),z) (12)
if(true,x,b,y,z) z (13)
if(false,x,b,y,z) loop(x,b,times(b,y),s(z)) (14)

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) (15)
plus#(s(x),y) plus#(x,y) (16)
times#(s(x),y) plus#(y,times(x,y)) (17)
times#(s(x),y) times#(x,y) (18)
log#(s(x),s(s(b))) loop#(s(x),s(s(b)),s(0),0) (19)
loop#(x,s(s(b)),s(y),z) if#(le(x,s(y)),x,s(s(b)),s(y),z) (20)
loop#(x,s(s(b)),s(y),z) le#(x,s(y)) (21)
if#(false,x,b,y,z) loop#(x,b,times(b,y),s(z)) (22)
if#(false,x,b,y,z) times#(b,y) (23)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.