Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann24)

The rewrite relation of the following TRS is considered.

lt(0,s(x)) true (1)
lt(x,0) false (2)
lt(s(x),s(y)) lt(x,y) (3)
times(0,y) 0 (4)
times(s(x),y) plus(y,times(x,y)) (5)
plus(0,y) y (6)
plus(s(x),y) s(plus(x,y)) (7)
fac(x) loop(x,s(0),s(0)) (8)
loop(x,c,y) if(lt(x,c),x,c,y) (9)
if(false,x,c,y) loop(x,s(c),times(y,s(c))) (10)
if(true,x,c,y) y (11)

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.
lt#(s(x),s(y)) lt#(x,y) (12)
times#(s(x),y) plus#(y,times(x,y)) (13)
times#(s(x),y) times#(x,y) (14)
plus#(s(x),y) plus#(x,y) (15)
fac#(x) loop#(x,s(0),s(0)) (16)
loop#(x,c,y) if#(lt(x,c),x,c,y) (17)
loop#(x,c,y) lt#(x,c) (18)
if#(false,x,c,y) loop#(x,s(c),times(y,s(c))) (19)
if#(false,x,c,y) times#(y,s(c)) (20)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.