• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Low-Level Liquid Types ∗

Cached

  • Download as a PDF

Download Links

  • [www.cs.ucsd.edu]
  • [goto.ucsd.edu]
  • [pho.ucsd.edu]
  • [pho.ucsd.edu]
  • [pho.ucsd.edu]
  • [pho.ucsd.edu]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Patrick Rondon , Ming Kawaguchi , Ranjit Jhala
Citations:4 - 3 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Rondon_low-levelliquid,
    author = {Patrick Rondon and Ming Kawaguchi and Ranjit Jhala},
    title = {Low-Level Liquid Types ∗},
    year = {}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

We present Low-Level Liquid Types, a refinement type system for C based on Liquid Types. Low-Level Liquid Types combine refinement types with three key elements to automate verification of critical safety properties of low-level programs: First, by associating refinement types with individual heap locations and precisely tracking the locations referenced by pointers, our system is able to reason about complex invariants of in-memory data structures and sophisticated uses of pointer arithmetic. Second, by adding constructs which allow strong updates to the types of heap locations, even in the presence of aliasing, our system is able to verify properties of in-memory data structures in spite of temporary invariant violations. By using this strong update mechanism, our system is able to verify the correct initialization of newly-allocated regions of memory. Third, by using the abstract interpretation framework of Liquid Types, we are able to use refinement type inference to automatically verify important safety properties without imposing an onerous annotation burden. We have implemented our approach in CSOLVE, a tool for Low-Level Liquid Type inference for C programs. We demonstrate through several examples that CSOLVE is able to precisely infer complex invariants required to verify important safety properties, like the absence of array bounds violations and null-dereferences, with a minimal annotation overhead.

Citations

747 MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems - Lee - 1997
455 Extended static checking for Java - Flanagan, Leino, et al.
375 Efficient ContextSensitive Pointer Analysis for C Programs - Wilson, Lam - 1995
322 Flow-sensitive type qualifiers - Foster, Terauchi, et al. - 2002
317 The SLAM project: Debugging system software via static analysis - Ball, Rajamani - 2002
272 Dependent types in practical programming - Xi, Pfenning - 1999
162 K.L.: Abstractions from proofs - Henzinger, Jhala, et al. - 2004
140 Adoption and focus: Practical linear types for imperative programming - Fähndrich, DeLine - 2002
136 A static analyzer for large safety-critical software - Blanchet, Cousot, et al. - 2003
128 Alias types for recursive data structures - Walker, Morrisett - 2000
106 M.: TVLA: A system for implementing static analyses - Lev-Ami, Sagiv - 2000
96 Hybrid type checking - Flanagan - 2006
82 Scalable error detection using boolean satisfiability - Xie, Aiken
79 CCured in the real world - Condit, Harren, et al. - 2003
61 The Why/Krakatoa/Caduceus platform for deductive program verification - Filliâtre, Marché - 2007
59 Full functional verification of linked data structures - Zee, Kuncak, et al. - 2008
52 Compositional Shape Analysis by Means of Bi-Abduction - Calcagno, Distefano, et al.
44 Dependent types for low-level programming - Condit, Harren, et al. - 2007
43 Refinement types for secure implementations - Bengtson, Bhargavan, et al. - 2008
40 Checking and inferring local non-aliasing - Aiken, Foster, et al. - 2003
33 Relational inductive shape analysis - Chang, Rival - 2008
28 Dynamic typing with dependent types - Ou, Tan, et al. - 2004
27 Automated verification of shape and size properties via separation logic - Nguyen, David, et al. - 2007
25 Unifying type checking and property checking for low-level code - Condit, Hackett, et al. - 2009
24 Liquid types - Rondon, Kawaguchi, et al. - 2008
24 Safe programming with pointers through stateful views - Zhu, Xi
21 A linear language with locations - Morrisett, Ahmed, et al.
17 Using Statically Computed Invariants inside the Predicate Abstraction and Refinement Loop - Jain, Ivancic, et al. - 2006
15 Automated compositional abstraction refinement for concurrent C programs: A two-level approach - Chaki, Ouaknine, et al.
12 An inference-rule-based decision procedure for verification of heap-manipulating programs with mutable data and cyclic data structures - Rakamarić, Bingham, et al. - 2007
10 L.: Ynot: Reasoning with the awkward squad - Nanevski, Morrisett, et al.
6 Type-based data structure verification - Kawaguchi, Rondon, et al. - 2009
5 An operating system kernel - Jos
1 h ⊢ {ν :〈n〉i | a} ℓ ∈ Dom(h) Γ;ν :ref(ℓ, i) ⊢ a - unknown authors
1 h ⊢ {ν :ref(ℓ, i) | a} Abstract Block Well-Formedness Γ, h ⊢˜ ℓ b Γ - unknown authors
1 h ⊢˜ ℓ i:T , b Concrete Block Well-Formedness Γ, h ⊢ℓ b Γ - unknown authors
1 h ⊢ℓ i:T , b Heap Well-Formedness Γ ⊢ h Γ ⊢ emp [WF-Empty] ˜ℓ - unknown authors
1 h ∗ ℓj ↦→ b ˜ℓ /∈ Dom(h) Γ ⊢ h Γ, h ∗ ˜ ℓ ↦→ b ⊢˜ ℓ b Γ - unknown authors
1 T/h Schema Well-Formedness ⊢ S x:T . . . ⊢ h for each xi - unknown authors
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University