The Guardol Language and Verification System

  • David Hardin
  • Konrad Slind
  • Michael Whalen
  • Tuan-Hung Pham
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7214)


Guardol is a domain-specific language designed to facilitate the construction of correct network guards operating over tree-shaped data. The Guardol system generates Ada code from Guardol programs and also provides specification and automated verification support. Guard programs and specifications are translated to higher order logic, then deductively transformed to a form suitable for a SMT-style decision procedure for recursive functions over tree-structured data. The result is that difficult properties of Guardol programs can be proved fully automatically.


Decision Procedure Operational Semantic Recursive Function High Order Logic Termination Proof 
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.
    Böhme, S., Fox, A.C.J., Sewell, T., Weber, T.: Reconstruction of Z3’s Bit-Vector Proofs in HOL4 and Isabelle/HOL. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 183–198. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  2. 2.
    Bruttomesso, R., Pek, E., Sharygina, N., Tsitovich, A.: The OpenSMT Solver. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 150–153. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  3. 3.
    Filliâtre, J.-C.: Deductive Program Verification. Thèse d’habilitation, Université Paris (December 11, 2011)Google Scholar
  4. 4.
    Ganzinger, H., Hagen, G., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: DPLL(T): Fast Decision Procedures. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 175–188. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. 5.
    Goguen, J., Meseguer, J.: Security policies and security models. In: Proc. of IEEE Symposium on Security and Privacy, pp. 11–20. IEEE Computer Society Press (1982)Google Scholar
  6. 6.
    Greve, D.: Assuming termination. In: Proceedings of ACL2 Workshop, ACL2 2009, pp. 114–122. ACM (2009)Google Scholar
  7. 7.
  8. 8.
    Kiezun, A., Ganesh, V., Guo, P., Hooimeijer, P., Ernst, M.: HAMPI: A solver for string constraints. In: Proceedings of ISSTA (2009)Google Scholar
  9. 9.
    Krauss, A.: Automating recursive definitions and termination proofs in higher order logic. PhD thesis, TU Munich (2009)Google Scholar
  10. 10.
    Leino, K.R.M.: Automating Induction with an SMT Solver. In: Kuncak, V., Rybalchenko, A. (eds.) VMCAI 2012. LNCS, vol. 7148, pp. 315–331. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Leino, K.R.M., Rümmer, P.: A Polymorphic Intermediate Verification Language: Design and Logical Encoding. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 312–327. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  12. 12.
    Meijer, E., Fokkinga, M., Paterson, R.: Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 124–144. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  13. 13.
    Miller, S., Whalen, M., Cofer, D.: Software model checking takes off. CACM 53, 58–64 (2010)Google Scholar
  14. 14.
    Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). The MIT Press (1997)Google Scholar
  15. 15.
    Myreen, M.: Formal verification of machine-code programs. PhD thesis, University of Cambridge (2009)Google Scholar
  16. 16.
    Peyton Jones, S., et al.: The Haskell 98 language and libraries: The revised report. Journal of Functional Programming 13(1), 0–255 (2003)Google Scholar
  17. 17.
    Schirmer, N.: Verification of sequential imperative programs in Isabelle/HOL. PhD thesis, TU Munich (2006)Google Scholar
  18. 18.
    Sestoft, P.: ML Pattern Match Compilation and Partial Evaluation. In: Danvy, O., Thiemann, P., Glück, R. (eds.) Dagstuhl Seminar 1996. LNCS, vol. 1110, pp. 446–464. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  19. 19.
    Slind, K., Norrish, M.: A Brief Overview of HOL4. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 28–32. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  20. 20.
    Suter, P., Dotta, M., Kuncak, V.: Decision procedures for algebraic data types with abstractions. In: Proceedings of POPL, pp. 199–210. ACM (2010)Google Scholar
  21. 21.
    Suter, P., Köksal, A.S., Kuncak, V.: Satisfiability Modulo Recursive Programs. In: Yahav, E. (ed.) SAS 2011. LNCS, vol. 6887, pp. 298–315. Springer, Heidelberg (2011)Google Scholar
  22. 22.
    Whalen, M., Greve, D., Wagner, L.: Model checking information flow. In: Hardin, D. (ed.) Design and Verification of Microprocessor Systems for High-Assurance Applications. Springer (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • David Hardin
    • 1
  • Konrad Slind
    • 1
  • Michael Whalen
    • 2
  • Tuan-Hung Pham
    • 2
  1. 1.Rockwell Collins Advanced Technology CenterUSA
  2. 2.University of MinnesotaUSA

Personalised recommendations