Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann22)

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)
double(0) 0 (4)
double(s(x)) s(s(double(x))) (5)
log(0) logError (6)
log(s(x)) loop(s(x),s(0),0) (7)
loop(x,s(y),z) if(le(x,s(y)),x,s(y),z) (8)
if(true,x,y,z) z (9)
if(false,x,y,z) loop(x,double(y),s(z)) (10)

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) (11)
double#(s(x)) double#(x) (12)
log#(s(x)) loop#(s(x),s(0),0) (13)
loop#(x,s(y),z) if#(le(x,s(y)),x,s(y),z) (14)
loop#(x,s(y),z) le#(x,s(y)) (15)
if#(false,x,y,z) loop#(x,double(y),s(z)) (16)
if#(false,x,y,z) double#(y) (17)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.