Design patterns of hierarchies for order structures - Laboratoire d'informatique de l'école polytechnique Accéder directement au contenu
Pré-Publication, Document De Travail Année : 2023

Design patterns of hierarchies for order structures

Résumé

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
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

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

Identifiants

  • HAL Id : hal-04008820 , version 1

Citer

Xavier Allamigeon, Quentin Canu, Cyril Cohen, Kazuhiko Sakaguchi, Pierre-Yves Strub. Design patterns of hierarchies for order structures. 2023. ⟨hal-04008820⟩
184 Consultations
190 Téléchargements

Partager

Gmail Facebook X LinkedIn More