Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann25)

The rewrite relation of the following TRS is considered.

plus(0,y) y (1)
plus(s(x),y) s(plus(x,y)) (2)
lt(0,s(y)) true (3)
lt(x,0) false (4)
lt(s(x),s(y)) lt(x,y) (5)
fib(x) fibiter(x,0,0,s(0)) (6)
fibiter(b,c,x,y) if(lt(c,b),b,c,x,y) (7)
if(false,b,c,x,y) x (8)
if(true,b,c,x,y) fibiter(b,s(c),y,plus(x,y)) (9)

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.
plus#(s(x),y) plus#(x,y) (10)
lt#(s(x),s(y)) lt#(x,y) (11)
fib#(x) fibiter#(x,0,0,s(0)) (12)
fibiter#(b,c,x,y) if#(lt(c,b),b,c,x,y) (13)
fibiter#(b,c,x,y) lt#(c,b) (14)
if#(true,b,c,x,y) fibiter#(b,s(c),y,plus(x,y)) (15)
if#(true,b,c,x,y) plus#(x,y) (16)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.