Design patterns of hierarchies for order structures - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Preprints, Working Papers, ... Year : 2023

Design patterns of hierarchies for order structures


Using order structures in a proof assistant naturally raises the problem of working with multiple instances of a same structure over a common type of elements. This goes against the main design pattern of hierarchies used for instance in Coq's MathComp or Lean's mathlib libraries, where types are canonically associated to at most one instance and instances share a common overloaded syntax. We present new design patterns to leverage these issues, and apply them to the formalization of order structures in the MathComp library. A common idea in these patterns is underloading, i.e., a disambiguation of operators on a common type. In addition, our design patterns include a way to deal with duality in order structures in a convenient way. We hence formalize a large hierarchy which includes partial orders, semilattices, lattices as well as many variants. We finally pay a special attention to order substructures. We introduce a new kind of structure called prelattice. They are abstractions of semilattices, and allow us to deal with finite lattices and their sublattices within a common signature. As an application, we report on significant simplifications of the formalization of the face lattices of polyhedra in the Coq-Polyhedra library.
Fichier principal
Vignette du fichier
relorder.pdf (531.29 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

hal-04008820 , version 1 (28-02-2023)


  • HAL Id : hal-04008820 , version 1


Xavier Allamigeon, Quentin Canu, Cyril Cohen, Kazuhiko Sakaguchi, Pierre-Yves Strub. Design patterns of hierarchies for order structures. 2023. ⟨hal-04008820⟩
208 View
208 Download


Gmail Mastodon Facebook X LinkedIn More