Symmetries in Sorting
By: Vikraman Choudhury, Wind Wong
Potential Business Impact:
Makes computers sort lists without knowing their order.
Sorting algorithms are fundamental to computer science, and their correctness criteria are well understood as rearranging elements of a list according to a specified total order on the underlying set of elements. As mathematical functions, they are functions on lists that perform combinatorial operations on the representation of the input list. In this paper, we study sorting algorithms conceptually as abstract sorting functions. There is a canonical surjection from the free monoid on a set (lists of elements) to the free commutative monoid on the same set (multisets of elements). We show that sorting functions determine a section (right inverse) to this surjection satisfying two axioms, that do not presuppose a total order on the underlying set. Then, we establish an equivalence between (decidable) total orders on the underlying set and correct sorting functions. The first part of the paper develops concepts from universal algebra from the point of view of functorial signatures, and gives constructions of free monoids and free commutative monoids in (univalent) type theory. Using these constructions, the second part of the paper develops the axiomatisation of sorting functions. The paper uses informal mathematical language, and comes with an accompanying formalisation in Cubical Agda.
Similar Papers
Monadic Second-Order Logic of Permutations
Combinatorics
Helps computers understand patterns in ordered lists.
Optimal antimatroid sorting
Data Structures and Algorithms
Sorts lists faster using hints about order.
Faster Certified Symmetry Breaking Using Orders With Auxiliary Variables
Logic in Computer Science
Proves computer math puzzles faster and more reliably.