Type systems for static programming languages are supposed to ensure the absence of type errors in code prior to execution. Type systems that meet this expectation are called sound type systems in the literature. In practice, however, many type systems are unsound, i.e. they successfully type-check programs with type errors which get stuck during execution due to undefined behavior. To reliably ensure that a type system is sound, a sub-area in programming languages research proposes to develop type soundness proofs: One proves a soundness property for a logical specification of a type system via logical deduction. The mechanization of such a proof shall ensure the absence of human-made deduction errors within the different reasoning steps...
Language extensions introduce high-level programming constructs that protect programmers from low-le...
Because of our increasing dependence on software in every aspect of our lives, it is crucial that ou...
We show how programming language semantics and definitions of their corresponding type systems can b...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Type systems for programming languages shall detect type errors in programs before runtime. To ensur...
Developing provably sound type systems is a non-trivial task which, as of today, typically requires ...
This paper presents novel techniques for checking the sound-ness of a type system automatically usin...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
systems using current techniques are notorious for straight-forward but tedious inductions involving...
Language extensions introduce high-level programming constructs that protect programmers from low-le...
Because of our increasing dependence on software in every aspect of our lives, it is crucial that ou...
We show how programming language semantics and definitions of their corresponding type systems can b...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Type systems for programming languages shall detect type errors in programs before runtime. To ensur...
Developing provably sound type systems is a non-trivial task which, as of today, typically requires ...
This paper presents novel techniques for checking the sound-ness of a type system automatically usin...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
systems using current techniques are notorious for straight-forward but tedious inductions involving...
Language extensions introduce high-level programming constructs that protect programmers from low-le...
Because of our increasing dependence on software in every aspect of our lives, it is crucial that ou...
We show how programming language semantics and definitions of their corresponding type systems can b...