Call-by-name Gradual Type Theory

  title={Call-by-name Gradual Type Theory},
  author={Max S. New and Daniel R. Licata},
We present gradual type theory, a logic and type theory for call-by-name gradual typing. We define the central constructions of gradual typing (the dynamic type, type casts and type error) in a novel way, by universal properties relative to new judgments for gradual type and term dynamism, which were developed in blame calculi and to state the "gradual guarantee" theorem of gradual typing. Combined with the ordinary extensionality ($\eta$) principles that type theory provides, we show that most… Expand

Paper Mentions

Blog Post
Gradual Type Theory (Extended Version)
This paper proposes an axiomatic account of program equivalence in a gradual cast calculus, which is formalized in a logic the authors call gradual type theory (GTT), which gives an axiological account of both call- by-value and call-by-name gradual languages and establishes this central theorem of gradual typing. Expand
Gradual type theory
An axiomatic account of program equivalence in a gradual cast calculus is proposed, which is formalized in a logic the authors call gradual type theory (GTT), which gives an axi automatic account of both call-by-value and call- by-name gradual languages. Expand
Graduality from embedding-projection pairs
It is argued that casts between two types where one is “more dynamic” (less precise) than the other necessarily form an ep pair, and used to cleanly prove the graduality cases for casts from the ep-pair property. Expand
Graduality from Embedding-projection Pairs (Extended Version)
It is argued that casts between two types where one is "more dynamic" than the other necessarily form an ep pair, and this is used to cleanly prove the graduality cases for casts from the ep-pair property. Expand
Gradualizing the Calculus of Inductive Constructions
This work investigates gradual variations on the Calculus of Inductive Construction for swifter prototyping with imprecise types and terms, and establishes the metatheory of this cast calculus through both a syntactic model into CIC and a monotone model that purports the study of the graduality of two of the three variants. Expand
What Kind of Programming Language Best Suits Integrative AGI?
It is tentatively proposed that the core of Atomese 2.0 should be a very flexible framework of rewriting rules for rewriting a metagraph (where the rules themselves are represented within the same metagraph, and some of the intermediate data created and used during the rule-interpretation process may be represented in the same meetagraph). Expand
A spectrum of type soundness and performance
A uniform semantic framework is presented that explains all three fundamentally different ways of thinking about the integrity of programs that combine statically typed and dynamically typed code, and adds a systematic performance comparison for a single implementation platform. Expand
Hybrid dynamical type theories for navigation
A hybrid dynamical type theory equipped with useful primitives for organizing and proving safety of navigational control algorithms and speculate on extensions of the type theory to deal with conjugacies between model and physical spaces, as well as hierarchical template-anchor relationships. Expand
Call-by-name Gradual Type Theory
It is shown that most of the standard operational behavior of casts is uniquely determined by the gradual guarantee, and shows that non-standard definitions of casts must violate these principles. Expand


On polymorphic gradual typing
System FG is developed, which is a gradually typed extension of System F with the dynamic type and a new type consistency relation, and a key conjecture to prove the gradual guarantee leads to the Jack-of-All-Trades property, conjectured as an important property of the polymorphic blame calculus. Expand
Abstracting gradual typing
A new formal foundation for gradual typing is proposed, drawing on principles from abstract interpretation to give gradual types a semantics in terms of pre-existing static types, which subsumes existing notions of consistency. Expand
Refined Criteria for Gradual Typing
This paper draws a crisp line in the sand that includes a new formal property, named the gradual guarantee, that relates the behavior of programs that differ only with respect to their type annotations, and argues that the gradually guarantee provides important guidance for designers of gradually typed languages. Expand
Dynamic Typing: Syntax and Proof Theory
This work describes when two different completions of the same run-time typed program are coherent with an equational theory that is independent of an underlying I-theory, and shows that every untyped A-term has a safe completion at any type and that it is unique modulo a suitable congruence relation in the dynamically typed A-calculus. Expand
Gradual session types
This work proposes Gradual GV as a gradually typed extension of the functional session type system GV, and demonstrates type and communication safety as well as blame safety, thus extending previous results to functional languages with session-based communication. Expand
Theorems for free for free: parametricity, with and without types
An improved version of the polymorphic blame calculus is presented and it is proved that it satisfies relational parametricity and the Fundamental Property of this logical relation is proved and that it is sound with respect to contextual equivalence are derived. Expand
Gradual Typing for Functional Languages
Static and dynamic type systems have well-known strengths and weaknesses, and each is better suited for different programming tasks. There have been many efforts to integrate static and dynamicExpand
Gradual refinement types
The notion of gradual refinement types is developed, allowing smooth evolution and interoperability between simple types and logically-refined types, and addressing two challenges unexplored in the gradual typing literature: dealing with imprecise logical information, and with dependent function types. Expand
Non-parametric parametricity
A step-indexed Kripke logical relation is defined for a language with both non-parametric polymorphism and dynamic type generation that enables us to establish parametricity and representation independence results, even in a non- Parametric setting, by attaching arbitrary relational interpretations to dynamically-generated type names. Expand
Parametricity and local variables
This work uses relational parametricity to construct a model for an Algol-like language in which interactions between local and non-local entities satisfy certain relational criteria, and supports straightforward validations of all the test equivalences that have been proposed in the literature for local-variable semantics. Expand