Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann09)

The rewrite relation of the following TRS is considered.

minus(minus(x,y),z) minus(x,plus(y,z)) (1)
minus(0,y) 0 (2)
minus(x,0) x (3)
minus(s(x),s(y)) minus(x,y) (4)
plus(0,y) y (5)
plus(s(x),y) plus(x,s(y)) (6)
plus(s(x),y) s(plus(y,x)) (7)
zero(s(x)) false (8)
zero(0) true (9)
p(s(x)) x (10)
p(0) 0 (11)
div(x,y) quot(x,y,0) (12)
quot(s(x),s(y),z) quot(minus(p(ack(0,x)),y),s(y),s(z)) (13)
quot(0,s(y),z) z (14)
ack(0,x) s(x) (15)
ack(0,x) plus(x,s(0)) (16)
ack(s(x),0) ack(x,s(0)) (17)
ack(s(x),s(y)) ack(x,ack(s(x),y)) (18)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
minus#(minus(x,y),z) minus#(x,plus(y,z)) (19)
minus#(minus(x,y),z) plus#(y,z) (20)
minus#(s(x),s(y)) minus#(x,y) (21)
plus#(s(x),y) plus#(x,s(y)) (22)
plus#(s(x),y) plus#(y,x) (23)
div#(x,y) quot#(x,y,0) (24)
quot#(s(x),s(y),z) quot#(minus(p(ack(0,x)),y),s(y),s(z)) (25)
quot#(s(x),s(y),z) minus#(p(ack(0,x)),y) (26)
quot#(s(x),s(y),z) p#(ack(0,x)) (27)
quot#(s(x),s(y),z) ack#(0,x) (28)
ack#(0,x) plus#(x,s(0)) (29)
ack#(s(x),0) ack#(x,s(0)) (30)
ack#(s(x),s(y)) ack#(x,ack(s(x),y)) (31)
ack#(s(x),s(y)) ack#(s(x),y) (32)

1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.