2017
DOI: 10.1145/3093333.3009866
|View full text |Cite
|
Sign up to set email alerts
|

Type soundness proofs with definitional interpreters

Abstract: While type soundness proofs are taught in every graduate PL class, the gap between realistic languages and what is accessible to formal proofs is large. In the case of Scala, it has been shown that its formal model, the Dependent Object Types (DOT) calculus, cannot simultaneously support key metatheoretic properties such as environment narrowing and subtyping transitivity, which are usually required for a type soundness proof. Moreover, Scala and many other realistic languages lack a general substitution prope… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
23
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
4
4

Relationship

0
8

Authors

Journals

citations
Cited by 25 publications
(23 citation statements)
references
References 54 publications
0
23
0
Order By: Relevance
“…Several aspects of the formalization are standard: intrinsically typed abstract syntax with de Bruijn indexing [Benton et al 2012;Poulsen et al 2018;Wadler 2018], type-indexed values, and gas-driven evaluation [Amin and Rompf 2017;Owens et al 2016; Siek 2013]. In addition, we address the following key challenges.…”
Section: Challenges Of the Formalizationmentioning
confidence: 99%
See 1 more Smart Citation
“…Several aspects of the formalization are standard: intrinsically typed abstract syntax with de Bruijn indexing [Benton et al 2012;Poulsen et al 2018;Wadler 2018], type-indexed values, and gas-driven evaluation [Amin and Rompf 2017;Owens et al 2016; Siek 2013]. In addition, we address the following key challenges.…”
Section: Challenges Of the Formalizationmentioning
confidence: 99%
“…The use of indexing to tame potential nontermination can be traced back to Appel and McAllester [2001]. It has been rejuvenated in the context of big-step semantics by Siek [2013] and Owens et al [2016], in proving type soundness with definitional interpreters [Amin and Rompf 2017], and in definitional interpretation for imperative languages [Poulsen et al 2018]. As these interpreters are universally quantified over gas, the respective properties hold for all terminating and nonterminating computations.…”
Section: Related Workmentioning
confidence: 99%
“…We will say that the evaluation of e occurred "at step n", or simply "at n" following the intuition that n is a Kripke world. Another intuition is that this judgment describes an interpreter receiving a certain amount n of "fuel" which controls how many times recursive definitions have to be unrolled [1].…”
Section: Operational Semanticsmentioning
confidence: 99%
“…We could then reason about the partial correctness of a program declared in this effect or to prove its termination after its definition. Going back to the while interpreter from §5.1, we could forget about the decreasing metric and use either Bove and Capretta's 2005 termination witnesses or step-indexing as in §3.3 (Amin and Rompf 2017;Owens et al 2016), proving, for example, noninterference of reachable states of an interactive non-terminating program. Observational purity Another desirable feature would be to hide the effect of a term if it is proven observationally pure, e.g., in §6.1 this would provide the ability to replace the original pure code by its equivalent memoized variant.…”
Section: Future Workmentioning
confidence: 99%