Formal Aspects of Computing

, Volume 21, Issue 3, pp 293–301 | Cite as

A comparison of tools for teaching formal software verification

  • Ingo Feinerer
  • Gernot SalzerEmail author
Original Article


We compare four tools regarding their suitability for teaching formal software verification, namely the Frege Program Prover, the Key system, Perfect Developer, and the Prototype Verification System (PVS). We evaluate them on a suite of small programs, which are typical of courses dealing with Hoare-style verification, weakest preconditions, or dynamic logic. Finally we report our experiences with using Perfect Developer in class.


Formal software verification Frege Program Prover Key system Perfect developer Prototype verification system 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. ABB+05.
    Ahrendt W, Baar T, Beckert B, Bubel R, Giese M, Hähnle R, Menzel W, Mostowski W, Roth A, Schlager S, Schmitt PH (2005) The KeY tool. Softw Syst Model 4(1): 32–54CrossRefGoogle Scholar
  2. BHS07.
    Beckert B, Hähnle R, Schmitt PH (eds) (2007) Verification of object-oriented software. The KeY approach. In: Lecture notes in artificial intelligence, vol 4334. Springer, HeidelbergGoogle Scholar
  3. CGP00.
    Clarke EM, Grumberg O, Peled DA (2000) Model checking. MIT Press, CambridgeGoogle Scholar
  4. Cro03.
    Crocker D (2003) Perfect developer: a tool for object-oriented formal specification and refinement. Tools exhibition notes at formal methods EuropeGoogle Scholar
  5. CZ92.
    Clarke EM, Zhao X (1992) Analytica—a theorem prover in Mathematica. In: Kapur D(eds) Proceedings of 11th international conference on automated deduction (CADE’92). LNCS, vol 607. Springer, Heidelberg, pp 761–765Google Scholar
  6. Dij76.
    Dijkstra E (1976) A discipline of programming. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  7. DM05.
    Denning PJ, McGettrick A (2005) Recentering computer science. Commun ACM 48(11): 15–19CrossRefGoogle Scholar
  8. Fei05.
    Feinerer I (2005) Formal program verification: a comparison of selected tools and their theoretical foundations. Master’s thesis, Technische Universität Wien, Vienna, Austria, JanuaryGoogle Scholar
  9. FPP.
  10. Gri87.
    Gries D (1987) The science of programming. Springer, HeidelbergzbMATHGoogle Scholar
  11. HR03.
    Huth MRA, Ryan MD (2003) Logic in computer science—modeling and reasoning about systems. Cambridge University Press, LondonGoogle Scholar
  12. Isa.
  13. KEY.
  14. Mat.
  15. Obj05.
    Object Management Group (2005) Unified modeling language 2.0 Superstructure specification.
  16. Obj06.
    Object Management Group (2006) UML 2.0 Object constraint language specification.
  17. ORS92.
    Owre S, Rushby J, Shankar N (1992) PVS: a prototype verification system. In: Kapur D(eds) 11th International conference on automated deduction (CADE), Lecture notes in artificial intelligence vol 607. . Springer, Saratoga, pp 748–752Google Scholar
  18. Pat05.
    Patterson DA (2005) Restoring the popularity of computer science. Commun ACM 48(9): 25–28CrossRefGoogle Scholar
  19. PD.
  20. PVS.
    Prototype Verification System.
  21. SL03.
    Stiller E, LeBlanc C (2003) Creating new computer science curricula for the new millenium. J Comput Small Coll 18(5): 198–209Google Scholar
  22. SMV.
  23. Win97.
    Winkler J (1997) The Frege program prover, vol 42. Internationales Wissenschaftliches Kolloquium, Technische Universität Ilmenau, pp 116–121Google Scholar

Copyright information

© British Computer Society 2008

Authors and Affiliations

  1. 1.Institut für ComputersprachenTechnische Universität WienViennaAustria

Personalised recommendations