Algebraic Presentations of Type Dependency
Benedikt Ahrens, Jacopo Emmenegger, Paige Randall North, Egbert Rijke
TL;DR
The paper proves an equivalence between C-systems and B-systems by introducing unstratified CE- and E-systems and proving a modular chain of adjunctions that restrict to stratified rooted subcategories. It situates C-systems and B-systems within a broader semantic landscape of type-theory models and shows how initial semantics ideas underpin a constructive equivalence without choice. The main technical contributions are (i) the definitions and properties of CE- and E-systems, (ii) the stratification-based characterizations of C- and B-systems, and (iii) the two-step equivalence B-systems ≈ stratified E-systems and CE-systems ≈ stratified E-systems, culminating in an equivalence between C-systems and B-systems. The results provide a modular, constructive bridge between syntactic-like presentations of dependent type theories and their categorical models, with potential connections to categories with families and display-map frameworks. The framework advances the initiality program for type theories by enabling a rigorous, algebraic treatment of contexts and judgments through stratified, essentially algebraic structures.
Abstract
C-systems were defined by Cartmell as the algebraic structures that correspond exactly to generalised algebraic theories. B-systems were defined by Voevodsky in his quest to formulate and prove an initiality conjecture for type theories. They play a crucial role in Voevodsky's construction of a syntactic C-system from a term monad. In this work, we construct an equivalence between the category of C-systems and the category of B-systems, thus proving a conjecture by Voevodsky. We construct this equivalence as the restriction of an equivalence between more general structures, called CE-systems and E-systems, respectively. To this end, we identify C-systems and B-systems as "stratified" CE-systems and E-systems, respectively; that is, systems whose contexts are built iteratively via context extension, starting from the empty context.
