R.-J. Back & J. von Wright (1998):
Refinement Calculus: A Systematic Introduction.
Springer,
New York.
Ralph-Johan Back (2009):
Invariant Based Programming: Basic Approach and Teaching Experiences.
Formal Aspects of Computing 21(3),
pp. 227–244,
doi:10.1007/s00165-008-0070-y.
Clark Barrett & Sergey Berezin (2004):
CVC Lite: A New Implementation of the Cooperating Validity Checker.
In: Computer Aided Verification: 16th International Conference, CAV 2004, Boston, MA, USA, July 13–17, 2004,
LNCS 3114.
Springer,
pp. 515–518,
doi:10.1007/978-3-540-27813-9_49.
Bernhard Beckert, Reiner Hähnle & Peter H. Schmitt (2007):
Verification of Object-Oriented Software: The KeY Approach.
LNCS 4334.
Springer,
doi:10.1007/978-3-540-69061-0.
P. Boca, J. P. Bowen & D. A. Duce (2006):
Teaching Formal Methods: Practice and Experience.
Electronic Workshops in Computing (eWIC).
British Computer Society,
London, UK, December 16.
http://www.bcs.org/category/8726.
Raymond T. Boute (2006):
Calculational Semantics: Deriving Programming Theories from Equations by Functional Predicate Calculus.
ACM Transactions on Programming Languages and Systems 28(4),
pp. 747–793,
doi:10.1145/1146809.1146814.
Lilian Burdy, Yoonsik Cheon, David R. Cok, Michael D. Ernst, Joseph R. Kiniry, Gary T. Leavens, K. Rustan M. Leino & Erik Poll (2005):
An Overview of JML Tools and Applications.
International Journal on Software Tools for Technology Transfer 7,
pp. 212–232,
doi:10.1007/s10009-004-0167-4.
C. Neville Dean & Raymond T. Boute (2004):
Teaching Formal Methods, CoLogNET/FME Symposium, TFM 2004, Ghent, Belgium, November 18–19, 2004.
LNCS 3294.
Springer,
doi:10.1007/b102075.
Edsger W. Dijkstra (1968):
A Constructive Approach to the Problem of Program Correctness.
BIT Numerical Mathematics 8(3),
pp. 174–186,
doi:10.1007/BF01933419.
Ingo Feinerer & Gernot Salzer (2009):
A Comparison of Tools for Teaching Formal Software Verification.
Formal Aspects of Computing 21(3),
pp. 293–301,
doi:10.1007/s00165-008-0084-5.
Jean-Christophe Filliâtre & Claude Marché (2007):
The Why/Krakatoa/Caduceus Platform for Deductive Program Verification.
In: Computer Aided Verification, 19th International Conference, CAV 2007, Berlin, Germany, July 3-7, 2007,
LNCS 4590.
Springer,
pp. 173–177,
doi:10.1007/978-3-540-73368-3_21.
Jeremy Gibbons & José Nuno Oliveira (2009):
Teaching Formal Methods, Second International Conference, TFM 2009, Eindhoven, The Netherlands, November 2–6, 2009.
Lecture Notes in Computer Science 5846.
Springer,
doi:10.1007/978-3-642-04912-5.
Mike Gordon (2010):
Specification and Verification I.
University of Cambridge, UK, Lecture Notes, http://www.cl.cam.ac.uk/~mjcg/Lectures/SpecVer1/SpecVer1.html.
Eric C.R. Hehner (2006):
A Practical Theory of Programming.
Springer,
New York.
http://www.cs.utoronto.ca/~hehner/aPToP.
C.A.R. Hoare & He Jifeng (1998):
Unifying Theories of Programming.
Prentice Hall,
London, UK.
Available at http://www.unifyingtheories.org.
J. M. Morris (1987):
A Theoretical Basis for Stepwise Refinement and the Programming Calculus.
Science of Computer Programming 9(3),
pp. 287–306,
doi:10.1016/0167-6423(87)90011-6.
José Nuno Oliveira (2004):
A Survey of Formal Methods Courses in European Higher Education.
In: TFM2004,
pp. 235–248,
doi:10.1007/978-3-540-30472-2_16.
S. Owre, J. M. Rushby & N. Shankar (1992):
PVS: A Prototype Verification System.
In: Deepak Kapur: 11th International Conference on Automated Deduction (CADE),
Lecture Notes in Artificial Intelligence 607.
Springer,
Saratoga, NY, June 14–18,
pp. 748–752,
doi:10.1007/3-540-55602-8_217.
Wolfgang Schreiner (2008):
A Program Calculus.
Technical Report.
RISC,
Johannes Kepler University, Linz, Austria.
http://www.risc.jku.at/people/schreine/papers/ProgramCalculus2008.pdf.
Wolfgang Schreiner (2008):
Understanding Programs.
Technical Report.
Research Institute for Symbolic Computation (RISC),
Johannes Kepler University, Linz, Austria.
http://www.risc.uni-linz.ac.at/people/schreine/papers/Understanding2008.pdf.
Wolfgang Schreiner (2009):
The RISC ProofNavigator: A Proving Assistant for Program Verification in the Classroom.
Formal Aspects of Computing 21(3),
pp. 277–291,
doi:10.1007/s00165-008-0069-4.