Tag. type-theory
Notes (3)
Freely transported terms in dependent type theory freely-transported-terms
Given and we can make sense of transported terms along equalities between indices in . Say, with
for .
For instance, if and then
To avoid landing in transport hell, I suspect that it may be preferable to work inside of a description of freely transported terms instead of taking semantic transports. The hypothesis is that by using descriptions of formal transport rather than actually computing a transport, we may defer the computation of an actual transport until the end of a construction. So instead of working with directly, perhaps we may work with
I think that this is very closely related to the Fording trick, as a map out of ,
can instead be described as a map,
Both this and the fording trick use the Coyoneda lemma to represent an dependent type family.
Constructing Equalizers in Type Theory equalizers-in-type-theory
In the presence of -types, one may construct all equalizers. Given types and with functions , the equalizer may be constructed as
Displayed Categories as Dependent Types displayed-categories-as-dependent-types
Displayed category theory is the category-theoretic analogue of dependent type theory. A category plays the role of a context, and a displayed category over it the role of a dependent type in that context. The analogy extends to each construction:
| Dependent type theory | Displayed category theory |
| context | category |
| dependent type | displayed category over |
| dependent function | section of |
| context extension | total category and its projection |
| substitution | reindexing |
| -type | displayed total category |
| a type not depending on its context | weakening |
References (52)
Compositional Program Verification with Polynomial Functors in Dependent Type Theory aberle-2026-compositional
Impredicativity in Linear Dependent Type Theory speight-2026-impredicativity
From Semantics to Syntax: A Type Theory for Comprehension Categories najmaei-2026-from
Fat Cell Structures and Generalized Algebraic Theories huang-2026-fat
Internalizing Extensions in Lattices of Type Theories chan-2025-internalizing
Consistency of a Dependent Calculus of Indistinguishability liu-2025-consistency
Impredicative Encodings of Inductive and Coinductive Types bronsveld-2025-impredicative
Coverage Semantics for Dependent Pattern Matching eremondi-2025-coverage
Controlling unfolding in type theory gratzer-2025-controlling
Notions of Stack-manipulating Computation and Relative Monads jiang_xue_new_2025
Monads provide a simple and concise interface to user-defined computational effects in functional programming languages. This enables equational reasoning about effects, abstraction over monadic interfaces and the development of monad transformer stacks to allow for multiple effects. Compiler implementors and assembly code programmers similarly virtualize effects, and would benefit from similar abstractions if possible. However, the implementation details of effects seem disconnected from the high-level monad interface: at this lower level much of the design is in the layout of the runtime stack, which is not accessible in a high-level programming language.
We demonstrate that the monadic interface can be faithfully adapted from high-level functional programming to a lower level setting with explicit stack manipulation. We use a polymorphic call-by-push-value (CBPV) calculus as a setting that captures the essence of stack-manipulation, with a type system that allows programs to define domain-specific stack structures. Within this setting, we show that the existing category-theoretic notion of a relative monad can be used to model the stack-based implementation of computational effects. To demonstrate generality, we adapt a variety of standard monads to relative monads. Additionally, we show that stack-manipulating programs can benefit from a generalization of do-notation we call “monadic blocks” that allow all CBPV code to be reinterpreted to work with an arbitrary relative monad. As an application, we show that all relative monads extend automatically to relative monad transformers, a process which is not automatic for monads in pure languages.
Foundations of Substructural Dependent Type Theory aberle-2024-foundations
Internal Parametricity, without an Interval altenkirch-2024-internal
Polynomial Time and Dependent Types atkey-2024-polynomial
Internalizing Indistinguishability with Dependent Types liu-2024-internalizing
Three non-cubical applications of extension types zhang-2023-three
Bicategorical type theory: semantics and syntax ahrens-2023-bicategorical
Two tricks to trivialize higher-indexed families zhang-2023-two
A Dependently Typed Language with Dynamic Equality lemay-2023-a
Is sized typing for Coq practical? chan-2023-is
A two-level linear dependent type theory fu2023twolevellineardependenttype
A Formal Logic for Formal Category Theory new_licata_2023
The directed plump ordering gratzer-2022-the
A Machine-Checked Proof of Birkhoff’s Variety Theorem in Martin-Löf Type Theory demeo-2022-a
Quantitative Polynomial Functors nakov_quantitative_2022
A simpler encoding of indexed types zhang-2021-a
Multimodal Dependent Type Theory gratzerNutyzBirkedal2021
Elegant elaboration with function invocation zhang-2021-elegant
1001 Representations of Syntax with Binding jesper1001
Gradual Type Theory new_licata_ahmed_2021
A Semantic Foundation for Sound Gradual Typing new_dissertation_2020
Call-by-name Gradual Type Theory new_licata_2020_lmcs
Cubical Agda: A Dependently Typed Programming Language with Univalence and Higher Inductive Types VezzosiMortbergAbel2019
Gradual Type Theory new_licata_ahmed_2019
Gradually typed languages are designed to support both dynamically typed and statically typed programming styles while preserving the benefits of each. While existing gradual type soundness theorems for these languages aim to show that type-based reasoning is preserved when moving from the fully static setting to a gradual one, these theorems do not imply that correctness of type-based refactorings and optimizations is preserved. Establishing correctness of program transformations is technically difficult, because it requires reasoning about program equivalence, and is often neglected in the metatheory of gradual languages.
In this paper, we propose an axiomatic account of program equivalence in a gradual cast calculus, which we formalize in a logic we call gradual type theory (GTT). Based on Levy’s call-by-push-value, GTT gives an axiomatic account of both call-by-value and call-by-name gradual languages. Based on our axiomatic account we prove many theorems that justify optimizations and refactorings in gradually typed languages. For example, uniqueness principles for gradual type connectives show that if the βη laws hold for a connective, then casts between that connective must be equivalent to the so-called “lazy” cast semantics. Contrapositively, this shows that “eager” cast semantics violates the extensionality of function types. As another example, we show that gradual upcasts are pure functions and, dually, gradual downcasts are strict functions. We show the consistency and applicability of our axiomatic theory by proving that a contract-based implementation using the lazy cast semantics gives a logical relations model of our type theory, where equivalence in GTT implies contextual equivalence of the programs. Since GTT also axiomatizes the dynamic gradual guarantee, our model also establishes this central theorem of gradual typing. The model is parametrized by the implementation of the dynamic types, and so gives a family of implementations that validate type-based optimization and the gradual guarantee.
Syntax and Semantics of Quantitative Type Theory atkey-2018-syntax
Substructural calculi with dependent types luo
In this paper, we investigate how to introduce dependent types into the substructural calculi such as the Lambek calculus and linear logic. The motivations of such a move include facilitating a closer correspondence between syntax and semantics in natural language analysis and developing promising applications such as that to concurrency through dependent session types.
We shall present two substructural calculi with dependent types: the first containing dependent Lambek types and the second dependent linear types. Technically, the former adheres to the usual assumption that types do not depend on substructural variables (in this case, the Lambek variables), which makes the technical development easier, while the latter allows type dependency on linear variables, which makes the development more challenging as well as more interesting in applications.
Call-by-name Gradual Type Theory new_licata_2018_fscd
A Specification for Dependent Types in Haskell weirich_etal_2017
I Got Plenty o’ Nuttin’ mcbride-2016-i
Elaboration in Dependent Type Theory moura-2015-elaboration
Indexed containers altenkirch_indexed_2015
Integrating Linear and Dependent Types krishnaswami_integrating_2015
Syntax and Semantics of Linear Dependent Types vakarSyntaxSemanticsLinear2015
A relationally parametric model of dependent type theory atkey-2014-a
The Structural Theory of Pure Type Systems roux-2014-the
Observational equality, now! altenkirch-2007-observational
The view from the left mcbride-2004-the
Wellfounded Trees and Dependent Polynomial Functors gambino_wellfounded_2004
Elimination with a Motive mcbride-2002-elimination
Categorical Logic and Type Theory jacobs-1999
This book is an attempt to give a systematic presentation of both logic and type theory from a categorical perspective, using the unifying concept of fibred category. Its intended audience consists of logicians, type theorists, category theorists and (theoretical) computer scientists.