Certification Problem

Input (TPDB TRS_Standard/AProVE_07/wiehe06)

The rewrite relation of the following TRS is considered.

times(x,plus(y,1)) plus(times(x,plus(y,times(1,0))),x) (1)
times(x,1) x (2)
times(x,0) 0 (3)
plus(s(x),s(y)) s(s(plus(if(gt(x,y),x,y),if(not(gt(x,y)),id(x),id(y))))) (4)
plus(s(x),x) plus(if(gt(x,x),id(x),id(x)),s(x)) (5)
plus(zero,y) y (6)
plus(id(x),s(y)) s(plus(x,if(gt(s(y),y),y,s(y)))) (7)
id(x) x (8)
if(true,x,y) x (9)
if(false,x,y) y (10)
not(x) if(x,false,true) (11)
gt(s(x),zero) true (12)
gt(zero,y) false (13)
gt(s(x),s(y)) gt(x,y) (14)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
times#(x,plus(y,1)) times#(1,0) (15)
times#(x,plus(y,1)) plus#(y,times(1,0)) (16)
times#(x,plus(y,1)) times#(x,plus(y,times(1,0))) (17)
times#(x,plus(y,1)) plus#(times(x,plus(y,times(1,0))),x) (18)
plus#(s(x),s(y)) id#(y) (19)
plus#(s(x),s(y)) id#(x) (20)
plus#(s(x),s(y)) not#(gt(x,y)) (21)
plus#(s(x),s(y)) if#(not(gt(x,y)),id(x),id(y)) (22)
plus#(s(x),s(y)) gt#(x,y) (23)
plus#(s(x),s(y)) if#(gt(x,y),x,y) (24)
plus#(s(x),s(y)) plus#(if(gt(x,y),x,y),if(not(gt(x,y)),id(x),id(y))) (25)
plus#(s(x),x) id#(x) (26)
plus#(s(x),x) gt#(x,x) (27)
plus#(s(x),x) if#(gt(x,x),id(x),id(x)) (28)
plus#(s(x),x) plus#(if(gt(x,x),id(x),id(x)),s(x)) (29)
plus#(id(x),s(y)) gt#(s(y),y) (30)
plus#(id(x),s(y)) if#(gt(s(y),y),y,s(y)) (31)
plus#(id(x),s(y)) plus#(x,if(gt(s(y),y),y,s(y))) (32)
not#(x) if#(x,false,true) (33)
gt#(s(x),s(y)) gt#(x,y) (34)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.