2008
DOI: 10.1145/1449955.1449803
|View full text |Cite
|
Sign up to set email alerts
|

Efficient software model checking of soundness of type systems

Abstract: This paper presents novel techniques for checking the soundness of a type system automatically using a software model checker. Our idea is to systematically generate every type correct intermediate program state (within some finite bounds), execute the program one step forward if possible 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 portion… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 10 publications
(6 citation statements)
references
References 58 publications
0
5
0
Order By: Relevance
“…To support that the soundness results in Table 1 are significant, we rely on the small scope hypothesis, which basically claims most design errors can be found in small counterexamples [20]. Experimental results suggest that exhaustive testing within a small finite domain does indeed catch all type system errors in practice [21], and many case studies using the formal language and tool Alloy have confirmed the hypothesis by performing an analysis in a variety of scopes and showing, retrospectively, that a small scope would have sufficed to find all the bugs discovered [22]. A more detailed discussion concerning the implications of the small scope hypothesis for our verification tasks is presented in Section 2.3.3.…”
Section: Verifying Soundnessmentioning
confidence: 94%
“…To support that the soundness results in Table 1 are significant, we rely on the small scope hypothesis, which basically claims most design errors can be found in small counterexamples [20]. Experimental results suggest that exhaustive testing within a small finite domain does indeed catch all type system errors in practice [21], and many case studies using the formal language and tool Alloy have confirmed the hypothesis by performing an analysis in a variety of scopes and showing, retrospectively, that a small scope would have sufficed to find all the bugs discovered [22]. A more detailed discussion concerning the implications of the small scope hypothesis for our verification tasks is presented in Section 2.3.3.…”
Section: Verifying Soundnessmentioning
confidence: 94%
“…Model Checking. Roberson et al [Roberson et al 2008] propose a model checking approach to type soundness in which configurations are generated, steps are computed, and then type checked. Similarly to testing, this approach can detect bugs but cannot guarantee type soundness.…”
Section: Related Workmentioning
confidence: 99%
“…Other more specific approaches include Roberson et al (2008), where the authors extend their previous work on using a software model checker for data structure properties to the realm of ASTs and type soundness. The idea is to exhaustively generate all possible program states, that is, well-typed expressions in an object PL, execute one step and check that types are preserved and execution does not get stuck.…”
Section: Testing Model Checking and Mechanized Metatheorymentioning
confidence: 99%