Abstract

The term UniMath refers both to a formal system for mathematics, as well as a computer-checked library of mathematics formalized in that system. The UniMath system is a core dependent type theory, augmented by the univalence axiom. The system is kept as small as possible in order to ease verification of it—in particular, general inductive types are not part of the system. In this work, we partially remedy the lack of inductive types by constructing some set-level datatypes and their associated induction principles from other type constructors. This involves a formalization of a category-theoretic result on the construction of initial algebras, as well as a mechanism to conveniently use the datatypes obtained. We also connect this construction to a previous formalization of substitution for languages with variable binding. Altogether, we construct a framework that allows us to concisely specify, via a simple notion of binding signature, a language with variable binding. From such a specification we obtain the datatype of terms of that language, equipped with a certified monadic substitution operation and a suitable recursion scheme. Using this we formalize the untyped lambda calculus and the raw syntax of Martin-Löf type theory.

Highlights

  • The UniMath1 language is meant to be a core dependent type theory, making use of as few type constructors as possible

  • In this work we focus on a particular class of datatypes that represent languages with variable binding

  • Still within the target area of datatype-generic programming, but the datatypes we focus on in the present work are canonically equipped with a substitution operation—itself defined via a variant of the recursion principle associated to the datatypes

Read more

Summary

Introduction

The UniMath language is meant to be a core dependent type theory, making use of as few type constructors as possible. We partially remedy the lack of general inductive types in UniMath by constructing datatypes as initial algebras. (iii) Instantiating the base category C of the previous section to Set, we construct the datatype, as an initial algebra of the endofunctor on endofunctors on the category of sets that is specified by a binding signature, using just the type constructors available in the UniMath language. We base the needed scheme of generalized iteration in Mendler-style on another theorem in [11] that is based on cocontinuity assumptions instead of the existence of right Kan extensions We apply this modified construction to the datatype constructed in (iii), where the base category is the category of sets.

About Univalent Foundations and UniMath
Fundamental Concepts of Univalent Foundations
Resizing
Univalence
Propositional Truncation
On General Inductive Datatypes
Category Theory in UniMath
Two Notions of Signatures
Binding Signatures
Signatures with Strength
Signatures with Strength from Binding Signatures
Construction of Datatypes as Initial Algebras
Colimits
Initial Algebras from Colimits of Chains
Colimits in Set
Set Quotients in UniMath
Construction of Colimits in Set
Functors Preserving Colimits
The Datatype Specified by a Binding Signature
From Binding Signatures to Monads
A Substitution Operation on the Datatype of a Binding Signature
Binding Signatures to Monads
Conclusions
Initiality for the Constructed Monad
Generalization to Multi-sorted Binding Signatures
Connection to Voevodsky’s C-Systems

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.