Certification Problem

Input (TPDB TRS_Standard/AProVE_06/logarithm)

The rewrite relation of the following TRS is considered.

minus(x,0) x (1)
minus(s(x),s(y)) minus(x,y) (2)
quot(0,s(y)) 0 (3)
quot(s(x),s(y)) s(quot(minus(x,y),s(y))) (4)
le(0,y) true (5)
le(s(x),0) false (6)
le(s(x),s(y)) le(x,y) (7)
inc(s(x)) s(inc(x)) (8)
inc(0) s(0) (9)
log(x) logIter(x,0) (10)
logIter(x,y) if(le(s(0),x),le(s(s(0)),x),quot(x,s(s(0))),inc(y)) (11)
if(false,b,x,y) logZeroError (12)
if(true,false,x,s(y)) y (13)
if(true,true,x,y) logIter(x,y) (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.
minus#(s(x),s(y)) minus#(x,y) (15)
quot#(s(x),s(y)) quot#(minus(x,y),s(y)) (16)
quot#(s(x),s(y)) minus#(x,y) (17)
le#(s(x),s(y)) le#(x,y) (18)
inc#(s(x)) inc#(x) (19)
log#(x) logIter#(x,0) (20)
logIter#(x,y) if#(le(s(0),x),le(s(s(0)),x),quot(x,s(s(0))),inc(y)) (21)
logIter#(x,y) le#(s(0),x) (22)
logIter#(x,y) le#(s(s(0)),x) (23)
logIter#(x,y) quot#(x,s(s(0))) (24)
logIter#(x,y) inc#(y) (25)
if#(true,true,x,y) logIter#(x,y) (26)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 5 components.