Certification Problem

Input (TPDB TRS_Standard/SK90/4.61)

The rewrite relation of the following TRS is considered.

bsort(nil) nil (1)
bsort(.(x,y)) last(.(bubble(.(x,y)),bsort(butlast(bubble(.(x,y)))))) (2)
bubble(nil) nil (3)
bubble(.(x,nil)) .(x,nil) (4)
bubble(.(x,.(y,z))) if(<=(x,y),.(y,bubble(.(x,z))),.(x,bubble(.(y,z)))) (5)
last(nil) 0 (6)
last(.(x,nil)) x (7)
last(.(x,.(y,z))) last(.(y,z)) (8)
butlast(nil) nil (9)
butlast(.(x,nil)) nil (10)
butlast(.(x,.(y,z))) .(x,butlast(.(y,z))) (11)

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.
bsort#(.(x,y)) butlast#(bubble(.(x,y))) (12)
bsort#(.(x,y)) bsort#(butlast(bubble(.(x,y)))) (13)
bsort#(.(x,y)) bubble#(.(x,y)) (14)
bsort#(.(x,y)) last#(.(bubble(.(x,y)),bsort(butlast(bubble(.(x,y)))))) (15)
bubble#(.(x,.(y,z))) bubble#(.(y,z)) (16)
bubble#(.(x,.(y,z))) bubble#(.(x,z)) (17)
last#(.(x,.(y,z))) last#(.(y,z)) (18)
butlast#(.(x,.(y,z))) butlast#(.(y,z)) (19)

1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.