Reference. (Co)condition hits the Path
We propose an enhancement to inductive types and records in a dependent type theory, namely (co)conditions. With a primitive interval type, conditions generalize the cubical syntax of higher inductive types in homotopy type theory, while coconditions generalize the cubical path type. (Co)conditions are also useful without an interval type. The duality between conditions and coconditions is presented in an interesting way: The elimination principles of inductive types with conditions can be internalized with records with coconditions and vice versa. However, we do not develop the metatheory of conditions and coconditions in this paper. Instead, we only present the type checking.
Cite
Cites 42 works (10 here)
With notes (10)
A simpler encoding of indexed types zhang-2021-a
In functional programming languages, generalized algebraic data types (GADTs) are very useful as the unnecessary pattern matching over them can be ruled out by the failure of unification of type arguments. In dependent type systems, this is usually called indexed types and it’s particularly useful as the identity type is a special case of it. However, pattern matching over indexed types is very complicated as it requires term unification in general. We study a simplified version of indexed types (called simpler indexed types) where we explicitly specify the selection process of constructors, and we discuss its expressiveness, limitations, and properties.
Syntax and models of Cartesian cubical type theory angiuli-2021-syntax
We present a cubical type theory based on the Cartesian cube category (faces, degeneracies, symmetries, diagonals, but no connections or reversal) with univalent universes, each containing Π, Σ, path, identity, natural number, boolean, suspension, and glue (equivalence extension) types. The type theory includes a syntactic description of a uniform Kan operation, along with judgmental equality rules defining the Kan operation on each type. The Kan operation uses both a different set of generating trivial cofibrations and a different set of generating cofibrations than the Cohen, Coquand, Huber, and Mörtberg (CCHM) model. Next, we describe a constructive model of this type theory in Cartesian cubical sets. We give a mechanized proof, using Agda as the internal language of cubical sets in the style introduced by Orton and Pitts, that glue, Π, Σ, path, identity, boolean, natural number, suspension types, and the universe itself are Kan in this model, and that the universe is univalent. An advantage of this formal approach is that our construction can also be interpreted in a range of other models, including cubical sets on the connections cube category and the De Morgan cube category, as used in the CCHM model, and bicubical sets, as used in directed type theory.
Normalization for Cubical Type Theory sterling_angiuli_2021
We prove normalization for (univalent, Cartesian) cubical type theory, closing the last major open problem in the syntactic metatheory of cubical type theory. Our normalization result is reduction-free, in the sense of yielding a bijection between equivalence classes of terms in context and a tractable language of β/η-normal forms. As corollaries we obtain both decidability of judgmental equality and the injectivity of type constructors.
Cubical Agda: A Dependently Typed Programming Language with Univalence and Higher Inductive Types VezzosiMortbergAbel2019
Proof assistants based on dependent type theory provide expressive languages for both programming and proving within the same system. However, all of the major implementations lack powerful extensionality principles for reasoning about equality, such as function and propositional extensionality. These principles are typically added axiomatically which disrupts the constructive properties of these systems. Cubical type theory provides a solution by giving computational meaning to Homotopy Type Theory and Univalent Foundations, in particular to the univalence axiom and higher inductive types. This paper describes an extension of the dependently typed functional programming language Agda with cubical primitives, making it into a full-blown proof assistant with native support for univalence and a general schema of higher inductive types. These new primitives make function and propositional extensionality as well as quotient types directly definable with computational content. Additionally, thanks also to copatterns, bisimilarity is equivalent to equality for coinductive types. This extends Agda with support for a wide range of extensionality principles, without sacrificing type checking and constructivity.
Cubical Syntax for Reflection-Free Extensional Equality sterling-2019-cubical
We contribute XTT, a cubical reconstruction of Observational Type Theory [Altenkirch et al., 2007] which extends Martin-Löf’s intensional type theory with a dependent equality type that enjoys function extensionality and a judgmental version of the unicity of identity proofs principle (UIP): any two elements of the same equality type are judgmentally equal. Moreover, we conjecture that the typing relation can be decided in a practical way. In this paper, we establish an algebraic canonicity theorem using a novel extension of the logical families or categorical gluing argument inspired by Coquand and Shulman [Coquand, 2018; Shulman, 2015]: every closed element of boolean type is derivably equal to either true or false.
The RedPRL Proof Assistant (Invited Paper) angiuli-2018-the
RedPRL is an experimental proof assistant based on Cartesian cubical computational type theory, a new type theory for higher-dimensional constructions inspired by homotopy type theory. In the style of Nuprl, RedPRL users employ tactics to establish behavioral properties of cubical functional programs embodying the constructive content of proofs. Notably, RedPRL implements a two-level type theory, allowing an extensional, proof-irrelevant notion of exact equality to coexist with a higher-dimensional proof-relevant notion of paths.
Cartesian Cubical Computational Type Theory: Constructive Reasoning with Paths and Equalities angiuli-2018-cartesian
We present a dependent type theory organized around a Cartesian notion of cubes (with faces, degeneracies, and diagonals), supporting both fibrant and non-fibrant types. The fibrant fragment validates Voevodsky’s univalence axiom and includes a circle type, while the non-fibrant fragment includes exact (strict) equality types satisfying equality reflection. Our type theory is defined by a semantics in cubical partial equivalence relations, and is the first two-level type theory to satisfy the canonicity property: all closed terms of boolean type evaluate to either true or false.
I Got Plenty o’ Nuttin’ mcbride-2016-i
Observational equality, now! altenkirch-2007-observational
External (32)
- Type-Theoretic Signatures for Algebraic Theories and Inductive Types (2022)
- The Aya Proof Assistant (2021)
- The Taming of the Rew: A Type Theory with Computational Assumptions (2021)
- Models of Homotopy Type Theory with an Interval Type (2020)
- A Cubical Language for Bishop Sets (2020)
- Internal Parametricity for Cubical Type Theory (2020)
- Unifying Cubical Models of Univalent Type Theory (2020)
- Signatures and Induction Principles for Higher Inductive-Inductive Types (2020)
- Higher Inductive Types in Cubical Computational Type Theory (2019)
- Computational Semantics of Cartesian Cubical Type Theory (2019)
- Setoid Type Theory—A Syntactic Translation (2019)
- On Higher Inductive Types in Cubical Type Theory (2018)
- Elaborating Dependent (Co)Pattern Matching (2018)
- Computational Higher Type Theory I: Abstract Cubical Realizability (2016)
- Cubical Type Theory: A Constructive Interpretation of the Univalence Axiom (2015)
- The Arend Proof Assistant (2015)
- The Lean theorem prover (system description) (2015)
- A model of type theory in cubical sets (2014)
- Overlapping and Order-Independent Patterns (2014)
- Copatterns: Programming Infinite Structures by Observations (2013)
- Idris, a general-purpose dependently typed programming language: Design and implementation (2013)
- Overlapping and order-independent patterns in type theory (2013)
- Inductive-inductive definitions (2010)
- Dependently Typed Programming in Agda (2009)
- A simple type-theoretic language: Mini-TT (2009)
- Towards a practical programming language based on dependent type theory (2007)
- A General Formulation of Simultaneous Inductive-Recursive Definitions in Type Theory (2003)
- A semantical analysis of structural recursion (1999)
- Programming in Martin-Löf's Type Theory: An Introduction (1990)
- On Girard’s “Candidats De Reductibilité” (1989)
- An intuitionistic theory of types: predicative part (1975)
- Development of homotopy type theory in Agda