CSolve: Verifying C with Liquid Types

  • Patrick Rondon
  • Alexander Bakst
  • Ming Kawaguchi
  • Ranjit Jhala
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7358)


We present CSolve, an automated verifier for C programs based on Liquid Type inference. We show how CSolve verifies memory safety through an example and describe its architecture and interface.


Logical Predicate Program Variable Type Inference Library Function Type Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Bengtson, J., Bhargavan, K., Fournet, C., Gordon, A.D., Maffeis, S.: Refinement types for secure implementations. In: CSF (2008)Google Scholar
  2. 2.
    Condit, J., Harren, M., Anderson, Z., Gay, D.M., Necula, G.C.: Dependent Types for Low-Level Programming. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 520–535. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs. In: CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Rondon, P., Kawaguchi, M., Jhala, R.: Liquid types. In: PLDI (2008)Google Scholar
  6. 6.
    Rondon, P., Kawaguchi, M., Jhala, R.: Low-level liquid types. In: POPL, pp. 131–144 (2010)Google Scholar
  7. 7.
    Xi, H., Pfenning, F.: Dependent types in practical programming. In: POPL (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Patrick Rondon
    • 1
  • Alexander Bakst
    • 1
  • Ming Kawaguchi
    • 1
  • Ranjit Jhala
    • 1
  1. 1.University of CaliforniaSan DiegoUSA

Personalised recommendations