The automated proof of a trace transformation for a bitonic sort (Q1822503)

From MaRDI portal
scientific article
Language Label Description Also known as
English
The automated proof of a trace transformation for a bitonic sort
scientific article

    Statements

    The automated proof of a trace transformation for a bitonic sort (English)
    0 references
    0 references
    0 references
    1986
    0 references
    In his third volume of The Art of Computer Programming (1973; Zbl 0302.68010), \textit{D. E. Knuth} presents Batcher's bitonic sorting network. With concurrency, this sorting network can be executed in logarithmic time. Knuth suggests a formal argument for the correctness of the bitonic sorting algorithm (as an exercise), but addresses the question of concurrency only informally. We develop a program for the bitonic sort by (1) deriving a stepwise refinement from Knuth's informal description of the algorithm, (2) deriving from the refinement a sequential execution or 'trace' of order O(n log n) in the length n of the sequence to be sorted, and (3) transforming the sequential trace into a parallel trace of order O(log n) while preserving its semantics. We shall be informal in Steps 1 and 2 - although these steps can be formalized. But we will provide a formal treatment of Step 3 and report on the certification of this treatment in a mechanized logic. This work is a contribution to the optimization of programs (via concurrency) through transformation and the automation of program proofs.
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    bitonic sorting
    0 references
    concurrency
    0 references
    stepwise refinement
    0 references
    0 references