Certification Problem

Input (TPDB TRS_Standard/AProVE_07/otto12)

The rewrite relation of the following TRS is considered.

plus(0,x) x (1)
plus(s(x),y) s(plus(x,y)) (2)
times(0,y) 0 (3)
times(s(x),y) plus(y,times(x,y)) (4)
exp(x,0) s(0) (5)
exp(x,s(y)) times(x,exp(x,y)) (6)
ge(x,0) true (7)
ge(0,s(x)) false (8)
ge(s(x),s(y)) ge(x,y) (9)
tower(x,y) towerIter(0,x,y,s(0)) (10)
towerIter(c,x,y,z) help(ge(c,x),c,x,y,z) (11)
help(true,c,x,y,z) z (12)
help(false,c,x,y,z) towerIter(s(c),x,y,exp(y,z)) (13)

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) (14)
times#(s(x),y) plus#(y,times(x,y)) (15)
times#(s(x),y) times#(x,y) (16)
exp#(x,s(y)) times#(x,exp(x,y)) (17)
exp#(x,s(y)) exp#(x,y) (18)
ge#(s(x),s(y)) ge#(x,y) (19)
tower#(x,y) towerIter#(0,x,y,s(0)) (20)
towerIter#(c,x,y,z) help#(ge(c,x),c,x,y,z) (21)
towerIter#(c,x,y,z) ge#(c,x) (22)
help#(false,c,x,y,z) towerIter#(s(c),x,y,exp(y,z)) (23)
help#(false,c,x,y,z) exp#(y,z) (24)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 5 components.