VS3: SMT Solvers for Program Verification

  • Saurabh Srivastava
  • Sumit Gulwani
  • Jeffrey S. Foster
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5643)


We present VS3, a tool that automatically verifies complex properties of programs and infers maximally weak preconditions and maximally strong postconditions by leveraging the power of SMT solvers. VS3 discovers program invariants with arbitrary, but prespecified, quantification and logical structure. The user supplies VS3 with a set of predicates and invariant templates. VS3 automatically finds instantiations of the unknowns in the templates as subsets of the predicate set. We have used VS3 to automatically verify ∀ ∃ properties of programs and to infer worst case upper bounds and preconditions for functional correctness.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Srivastava, S., Gulwani, S.: Program verification using templates over predicate abstraction. In: PLDI (2009)Google Scholar
  2. 2.
    Gulwani, S., Srivastava, S., Venkatesan, R.: Program analysis as constraint solving. In: PLDI, pp. 281–292 (2008)Google Scholar
  3. 3.
    Microsoft Research: Phoenix (2008), http://research.microsoft.com/Phoenix/
  4. 4.
    de Moura, L., Bjørner, N.: Z3: Efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Gulwani, S., Srivastava, S., Venkatesan, R.: Constraint based invariant inference over predicate abstraction. In: Jones, N.D., Müller-Olm, M. (eds.) VMCAI 2009. LNCS, vol. 5403, pp. 120–135. Springer, Heidelberg (2009)Google Scholar
  6. 6.
    Moura, L.: Bjørner, N.: Efficient E-matching for SMT solvers. In: CADE-21 (2007)Google Scholar
  7. 7.
    Balaban, I., Fang, Y., Pnueli, A., Zuck, L.D.: IIV: An invisible invariant verifier. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 408–412. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Kovács, L., Voronkov, A.: Finding loop invariants for programs over arrays using a theorem prover. In: FASE (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Saurabh Srivastava
    • 1
  • Sumit Gulwani
    • 2
  • Jeffrey S. Foster
    • 1
  1. 1.University of Maryland
  2. 2.Microsoft ResearchRedmond

Personalised recommendations