This paper presents novel techniques for checking the sound-ness of a type system automatically using a software model checker. Our idea is to systematically generate every type correct intermediate program state (within some fi-nite bounds), execute the program one step forward if pos-sible using its small step operational semantics, and then check that the resulting intermediate program state is also type correct—but do so efficiently by detecting similarities in this search space and pruning away large portions of the search space. Thus, given only a specification of type cor-rectness and the small step operational semantics for a lan-guage, our system automatically checks type soundness by checking that the progress and preservation the...
This paper presents novel language and analysis techniques that significantly speed up software mode...
In our recent paper, we have shown how to construct a fully-automated program verification tool (so ...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
Model checking is a formal verification technique that exhaustively tests a piece of hardware or sof...
Model checking is a technique for finding errors in systems and algorithms. The tech nique requires ...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
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...
Abstraction and composition are the fundamental issues in making model checking viable for software....
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
Despite the technological advances in languages and tools to support program development, pro-gramme...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
The majority of work carried out in the formal methods community throughout the last three decades h...
This paper presents novel language and analysis techniques that significantly speed up software mode...
In our recent paper, we have shown how to construct a fully-automated program verification tool (so ...
Machine-checked proofs of properties of programming languages have gained in importance significantl...
Type systems for static programming languages are supposed to ensure the absence of type errors in c...
Model checking is a formal verification technique that exhaustively tests a piece of hardware or sof...
Model checking is a technique for finding errors in systems and algorithms. The tech nique requires ...
The correct definition and implementation of non-trivial type systems is difficult and requires expe...
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
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...
Abstraction and composition are the fundamental issues in making model checking viable for software....
Verification conditions (VCs) are logical formulae whose validity implies the correctness of a progr...
Despite the technological advances in languages and tools to support program development, pro-gramme...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
The majority of work carried out in the formal methods community throughout the last three decades h...
This paper presents novel language and analysis techniques that significantly speed up software mode...
In our recent paper, we have shown how to construct a fully-automated program verification tool (so ...
Machine-checked proofs of properties of programming languages have gained in importance significantl...