This repository contains the artifacts for the paper: Symmetries in Sorting. An HTML index of the formalized proofs in the paper can be found here.
- Website: https://symmetries.windtfw.com/
- TYPES'25 artifact: https://symmetries.windtfw.com/types25pp
- arXiv: https://arxiv.org/abs/arXiv:2512.07349
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.
This library has been tested with the following software versions:
Type check the code by running Agda:
$ agda index.agdaWith the exception of the papers/ directory, all files in this project are
licensed under the terms of the MIT License, see LICENSE.
All rights reserved for content under the papers/ directory.