Certification Problem

Input (TPDB TRS_Standard/AG01/#3.6b)

The rewrite relation of the following TRS is considered.

le(0,y) true (1)
le(s(x),0) false (2)
le(s(x),s(y)) le(x,y) (3)
minus(0,y) 0 (4)
minus(s(x),y) if_minus(le(s(x),y),s(x),y) (5)
if_minus(true,s(x),y) 0 (6)
if_minus(false,s(x),y) s(minus(x,y)) (7)
gcd(0,y) y (8)
gcd(s(x),0) s(x) (9)
gcd(s(x),s(y)) if_gcd(le(y,x),s(x),s(y)) (10)
if_gcd(true,s(x),s(y)) gcd(minus(x,y),s(y)) (11)
if_gcd(false,s(x),s(y)) gcd(minus(y,x),s(x)) (12)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
if_gcd#(true,s(x),s(y)) minus#(x,y) (13)
gcd#(s(x),s(y)) if_gcd#(le(y,x),s(x),s(y)) (14)
minus#(s(x),y) le#(s(x),y) (15)
gcd#(s(x),s(y)) le#(y,x) (16)
le#(s(x),s(y)) le#(x,y) (17)
if_minus#(false,s(x),y) minus#(x,y) (18)
if_gcd#(false,s(x),s(y)) gcd#(minus(y,x),s(x)) (19)
if_gcd#(true,s(x),s(y)) gcd#(minus(x,y),s(y)) (20)
minus#(s(x),y) if_minus#(le(s(x),y),s(x),y) (21)
if_gcd#(false,s(x),s(y)) minus#(y,x) (22)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.