Algebraic Structures and Dependent Records
Résumé
In mathematics, algebraic structures are defined according to a rather strict hierarchy: rings come up after groups, which rely themselves on monoids, and so on. In the Foc project, we represent these structures by species. A species is made up of algorithms as well as proofs that these algorithms meet their specifications, and it can be built from existing species through inheritance and refinement mechanisms.
To avoid inconsistencies, these mechanisms must be used carefully. In this paper, we recall the conditions that must be fulfilled when going from a species to another, as formalized by S. Boulmé in his PhD. We then show how these conditions can be checked through a static analysis of the Foc code. Finally, we describe how to translate Foc declarations into Coq.