Idea
Free extension semantics is the method used in altenkirch2016-qiit to describe quotient inductive-inductive types by building their ambient category of algebras one constructor at a time. The starting point is a base category whose objects represent previously constructed sorts together with families of sets over them. New sorts are then added by free extension: a sort signature is given by a functor into Set, and extending by that sort produces a new base category whose objects are families indexed by the values of that functor.
Path and point constructors are treated uniformly by a pair of set-valued functors. The first is an argument functor , which assigns to each partial algebra the set of inputs for the constructor. The second is a target functor on the Grothendieck construction of , which assigns the set in which the constructor lands. An algebra structure for the constructor is then a section . In this way, both point constructors and path constructors are expressed as free extensions of the current algebra category.
Definitions
Sort specification
A specification of sorts is given by a sequence of functors
built successively from previous base categories. Intuitively, describes the indexing data for the next sort.
Given previously constructed sorts, the extended base category has objects of the form where is an object of the previous base category and
So an object of the extended category is an old algebra together with a family of sets over the new sort indices.
Constructor specification
A constructor specification on a base category consists of:
- an argument functor
- a target functor
where is required to be relatively continuous over the forgetful functor from the Grothendieck construction.
The intuition is that gives the constructor inputs available in an algebra , while gives the set of outputs for an input .
Category of algebras for a constructor
Given a constructor specification on , the corresponding category of algebras has:
- objects where and
- morphisms given by morphisms in that preserve the constructor action.
So adding a constructor means freely extending the current category by equipping each object with a chosen operation of the required shape.
Base target functor for a new sort
If a new sort is indexed by a functor
then in the extended category an object is with . The corresponding base target functor is
defined by
This is the canonical target functor for point constructors landing in the newly added sort.
Equality target functor
Path constructors are handled by an equality functor
given on objects by
Composing this with suitable global elements of a target functor gives a target functor for path constructors. This lets equality constructors be treated in the same extension framework as point constructors.
Remarks
- The adjective “free” refers to the fact that each stage adds exactly the structure required by the next sort or constructor, with no extra equations beyond those explicitly specified.
- The use of the Grothendieck construction is what makes constructor targets dependent on both the ambient algebra and the chosen constructor arguments.
- Relative continuity is the key semantic condition ensuring that these constructor extensions preserve the limits needed for the later initial-algebra argument.
- In altenkirch2016-qiit, this iterative free-extension perspective is used to prove that the relevant categories of algebras are complete and to relate initiality to the section induction principle.
References
altenkirch2016-qiit
Quotient Inductive-Inductive Type
Grothendieck Construction
Initial Algebra