ACM Home Page
Please provide us with feedback. Feedback
A type system equivalent to a model checker
Full text PdfPdf (270 KB)
Source
ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 30 ,  Issue 5  (August 2008) table of contents
Article No. 29  
Year of Publication: 2008
ISSN:0164-0925
Authors
Mayur Naik  Intel Research, Berkeley, CA
Jens Palsberg  UCLA, Los Angeles, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 225,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1387673.1387678
What is a DOI?

ABSTRACT

Type systems and model checking are two prevalent approaches to program verification. A prominent difference between them is that type systems are typically defined in a syntactic and modular style whereas model checking is usually performed in a semantic and whole-program style. This difference between the two approaches makes them complementary to each other: type systems are good at explaining why a program was accepted while model checkers are good at explaining why a program was rejected.

We present a type system that is equivalent to a model checker for verifying temporal safety properties of imperative programs. The model checker is natural and may be instantiated with any finite-state abstraction scheme such as predicate abstraction. The type system, which is also parametric, type checks exactly those programs that are accepted by the model checker. It uses a variant of function types to capture flow sensitivity and intersection and union types to capture context sensitivity. Our result sheds light on the relationship between type systems and model checking, provides a methodology for studying their relative expressiveness, is a step towards sharing results between the two approaches, and motivates synergistic program analyses involving interplay between them.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
4
5
 
6
 
7
8
 
9
10
11
12
 
13
14
 
15
 
16
17
18
 
19
 
20
Haack, C. and Wells, J. B. 2003. Type error slicing in implicitly typed higher-order languages. In Proceedings of the 12th European Symposium on Programming. Springer, 284--301.
 
21
 
22
 
23
Henzinger, T. A., Jhala, R., Majumdar, R., and Sutre, G. 2003. Software verification with Blast. In Proceedings of the 10th International SPIN Workshop on Model Checking Software. Springer, 235--239.
24
25
26
 
27
28
 
29
Milner, R. 1978. A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348--375.
 
30
 
31
Naik, M. 2004. A type system equivalent to a model checker. M.S. thesis, Purdue University.
 
32
 
33
34
 
35
36
 
37
38
 
39
 
40
 
41
42
 
43
 
44
45
 
46
47
 
48

Collaborative Colleagues:
Mayur Naik: colleagues
Jens Palsberg: colleagues