Experience Implementing a Performant Category-Theory Library in Coq

  title={Experience Implementing a Performant Category-Theory Library in Coq},
  author={Jason Gross and Adam Chlipala and David I. Spivak},
We describe our experience implementing a broad category-theory library in Coq. Category theory and computational performance are not usually mentioned in the same breath, but we have needed substantial engineering effort to teach Coq to cope with large categorical constructions without slowing proof script processing unacceptably. In this paper, we share the lessons we have learned about how to represent very abstract mathematical objects and arguments in Coq and how future proof assistants… 
Category theory in Coq 8.5: Extended version
This work formalizes most of basic category theory, including concepts not covered by existing formalizations, in a library that is fit to be used as a general-purpose category-theoretical foundation and explains how the universe polymorphism of Coq 8.5 is used to represent smallness and largeness arguments.
The HoTT library: a formalization of homotopy type theory in Coq
We report on the development of the HoTT library, a formalization of homotopy type theory in the Coq proof assistant. It formalizes most of basic homotopy type theory, including univalence, higher
Proof-relevant Category Theory in Agda
The formalization revealed a number of potential design choices for Agda, and it is found that alternative definitions or alternative proofs from those found in standard textbooks can be advantageous, as well as "fit" Agda's type theory more smoothly.
Formalizing category theory in Agda
The formalization of category theory in Agda revealed a number of potential design choices, and it is found that alternative definitions or alternative proofs from those found in standard textbooks can be advantageous, as well as "fit" Agda's type theory more smoothly.
Leveraging the Information Contained in Theory Presentations
This work highlights specific redundancies in libraries of existing systems and describes a framework for generating derived concepts from theory definitions, demonstrating the usefulness of this framework on a test library of 227 theories.
Mac Lane’s Comparison Theorem for the Kleisli Construction Formalized in Coq
This paper specifies the foundations of category theory in Coq and shows that the chosen representations are useful by certifying Mac Lane’s comparison theorem and its basic consequences and it is shown that the foundations used are equivalent to the foundations by Timany.
Elaboration in Dependent Type Theory
An elaboration algorithm for dependent type theory that has been implemented in the Lean theorem prover is described, which supports higher-order unification, type class inference, ad hoc overloading, insertion of coercions, and the computational reduction of terms.
Leveraging Category Theory in Model Based Enterprise
A mathematical framework based on category theory is proposed to formally describe and explore procedures of modeling engineering products and processes that comprise operation of a model-based
A dependently typed language with nontermination
It is proved type saftey for a large subset of the Zombie core language, including features such as computational irrelevance, CBV-reduction, and propositional equality with a heterogeneous, completely erased elimination form.
Towards Mac Lane's Comparison Theorem for the (co)Kleisli Construction in Coq
This short paper summarizes an ongoing work on the formalization of Mac Lane’s comparison theorem for the (co)Kleisli construction in the Coq proof assistant. 1 Adjoint Functors and Monads Definition


Verified computing in homological algebra
It is shown that Coq is not always up to its promises and that theoretical works will be necessary to understand how these limits can be relaxed.
Categorical semantics of programming languages ( in C OQ )
The first goal is to build a library of category theory in the proof assistent COQ, and the second is to apply this library to formalize a specific theory of programming languages.
Developing the Algebraic Hierarchy with Type Classes in Coq
We present a new formalization of the algebraic hierarchy in Coq, exploiting its new type class mechanism to make practical a solution formerly thought infeasible. Our approach addresses both
CATEGORY THEORY as an extension of Martin-Lflf Type Theory
Category theory has tong been widely recognised as being conveniently formalisable In constructive mathematics. We describe a computer implementation of its basic concepts, as an extension of the
Packaging Mathematical Structures
This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system, and presents a key lemma for characterising the discrete logarithm, and a matrix decomposition problem.
A taste of category theory for computer scientists
Category theory is a field that impinges more and more frequently on the awareness of many computer scientists, especially those with an interest in programming languages and formal specifications.
Univalent categories and the Rezk completion
A definition of ‘category’ for which equality and equivalence of categories agree is proposed, and it is shown that any category is weakly equivalent to a univalent one in a universal way.
Category Theory
The main result that has been formalized is that the Yoneda functor is a full and faithful embedding of many sorted monadic equational logic.
The Implicit Calculus of Constructions
In this paper, we introduce a new type system, the Implicit Calculus of Constructions, which is a Curry-style variant of the Calculus of Constructions that we extend by adding an intersection type
Towards Observational Type Theory
Observational Type Theory (OTT) combines beneficial aspects of Intensional and Extensional Type Theory (ITT/ETT). It separates definitional equality, decidable as in ITT, and a substitutive