Certification Problem

Input (TPDB TRS_Standard/SK90/4.59)

The rewrite relation of the following TRS is considered.

qsort(nil) nil (1)
qsort(.(x,y)) ++(qsort(lowers(x,y)),.(x,qsort(greaters(x,y)))) (2)
lowers(x,nil) nil (3)
lowers(x,.(y,z)) if(<=(y,x),.(y,lowers(x,z)),lowers(x,z)) (4)
greaters(x,nil) nil (5)
greaters(x,.(y,z)) if(<=(y,x),greaters(x,z),.(y,greaters(x,z))) (6)

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.
qsort#(.(x,y)) lowers#(x,y) (7)
greaters#(x,.(y,z)) greaters#(x,z) (8)
lowers#(x,.(y,z)) lowers#(x,z) (9)
greaters#(x,.(y,z)) greaters#(x,z) (8)
qsort#(.(x,y)) qsort#(greaters(x,y)) (10)
qsort#(.(x,y)) qsort#(lowers(x,y)) (11)
lowers#(x,.(y,z)) lowers#(x,z) (9)
qsort#(.(x,y)) greaters#(x,y) (12)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.