Reference. Focusing on Refinement Typing
Cite
Cites 90 works (5 here)
With notes (5)
Bidirectional Typing dunfield-2021-bidirectional
Functors are type refinement systems mellies_zeilberger_2015
The standard reading of type theory through the lens of category theory is based on the idea of viewing a type system as a category of well-typed terms. We propose a basic revision of this reading: rather than interpreting type systems as categories, we describe them as functors from a category of typing derivations to a category of underlying terms. Then, turning this around, we explain how in fact any functor gives rise to a generalized type system, with an abstract notion of typing judgment, typing derivations and typing rules. This leads to a purely categorical reformulation of various natural classes of type systems as natural classes of functors.
The main purpose of this paper is to describe the general framework (which can also be seen as providing a categorical analysis of refinement types), and to present a few applications. As a larger case study, we revisit Reynolds’ paper on “The Meaning of Types” (2000), showing how the paper’s main results may be reconstructed along these lines.
Complete and easy bidirectional typechecking for higher-rank polymorphism dunfield-2013-complete
The view from the left mcbride-2004-the
Dependent types in practical programming xi-1999-dependent
External (85)
- Flux: Liquid Types for Rust (2023)
- LTR (software, github.com/nulano/LTR) (2023)
- Computation focusing (2020)
- Sound and complete bidirectional typechecking for higher-rank polymorphism with existentials and indexed types (2019)
- Liquidate your assets: reasoning about resource usage in liquid Haskell (2019)
- Sequent Calculus: A Logic and a Language for Computation and Duality (2017)
- The Polarized λ -calculus (2017)
- Polymorphic Manifest Contracts, Revised and Resolved (2017)
- Refinement reflection: complete verification with SMT (2017)
- TiML: a functional language for practical complexity analysis with invariants (2017)
- A principled approach to ornamentation in ML (2017)
- Dependent types and multi-monadic effects in F* (2016)
- Computation in focused intuitionistic logic (2015)
- Manifest Contracts for Datatypes (2014)
- Structural Focalization (2014)
- Refinement types for Haskell (2014)
- Abstract Refinement Types (2013)
- Refining Inductive Types (2012)
- Transporting functions across ornaments (2012)
- Polymorphic Contracts (2011)
- Ornamental Algebras, Algebraic Ornaments (2011)
- Contracts made manifest (2010)
- Satisfiability Modulo Theories (2009)
- On understanding data abstraction, revisited (2009)
- Type-based data structure verification (2009)
- Focusing on pattern matching (2009)
- Focusing and polarization in linear, intuitionistic, and classical logics (2009)
- Refinement types and computational duality (2009)
- Verifying a Semantic βη-Conversion Test for Martin-Löf Type Theory (2008)
- Z3: An Efficient SMT Solver (2008)
- Church and Curry: Combining intrinsic and extrinsic typing (2008)
- A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions (2008)
- Liquid types (2008)
- Refined typechecking with Stardust (2007)
- A Unified System of Type Refinements (2007)
- Practical type inference for arbitrary-rank types (2007)
- Combining programming with theorem proving (2005)
- A Formulation of Dependent ML with Explicit Equality Proofs (2005)
- Call-By-Push-Value: A Functional/Imperative Synthesis (2004)
- A Concurrent Logical Framework: The Propositional Fragment (2004)
- Applied Type System (2004)
- A Linear Spine Calculus (2003)
- First-class Phantom Types (2003)
- Type Assignment for Intersections and Unions in Call-by-Value Languages (2003)
- Guarded recursive datatype constructors (2003)
- Contracts for higher-order functions (2002)
- Generalizing Hindley-Milner Type Inference Algorithms (2002)
- Dependent Types for Program Termination Verification (2002)
- Colored local type inference (2001)
- Intersection types and computational effects (2000)
- Local type inference (2000)
- Theories of Programming Languages (1998)
- Dependent Types in Practical Programming (PhD thesis) (1998)
- Eliminating array bound checking through dependent types (1998)
- Cayenne—a language with dependent types (1998)
- An algorithm for type-checking dependent types (1996)
- On the meanings of the logical constants and the justifications of the logical laws (1996)
- Simple imperative polymorphism (1995)
- Dimension types (1994)
- Analytic and Synthetic Judgements in Type Theory (1994)
- Definitional reflection and the completion (1994)
- The essence of compiling with continuations (1993)
- On the unity of logic (1993)
- Semantics of Programming Languages: Structures and Techniques (1993)
- Reasoning about programs in continuation-passing style (1993)
- Logic Programming with Focusing Proofs in Linear Logic (1992)
- A Fixpoint Theorem in Linear Logic (post to Linear Logic mailing list) (1992)
- Refinement types for ML (1991)
- ML with callcc is unsound (post to TYPES mailing list) (1991)
- Higher-order modules and the phase distinction (1990)
- A category-theoretic account of program modules (1989)
- Computational lambda-calculus and monads (1989)
- Mathematics as programming (1984)
- Intuitionistic Type Theory (1984)
- A filter lambda model and the completeness of type assignment (1983)
- Principal type-schemes for functional programs (1982)
- A theory of type polymorphism in programming (1978)
- An Intuitionistic Theory of Types: Predicative Part (1975)
- A Theory of Types (manuscript) (1971)
- The principal type-scheme of an object in combinatory logic (1969)
- An axiomatic basis for computer programming (1969)
- Analytic cut (1969)
- Assigning meanings to programs (1967)
- Intensional interpretations of functionals of finite type I (1967)
- On computable numbers, with an application to the Entscheidungsproblem (1936)