Abstract
We report on a university course on computer-aided program verification using the ✓eriFun system. Requirements for a system to be used in a verification course are discussed, and a sketch of our system is given. We illustrate the problems presented to the students, starting with simple sorting algorithms and finally verifying the unsolvability of the halting problem, the correctness of RSA encryption, and a first-order matching algorithm. We give an account of our experience with the course and the conclusions to be drawn from this event. We also report on further experience obtained when the system was used in an undergraduate course.
Similar content being viewed by others
References
http://www.informatik.tu-darmstadt.de/pm/verifun/.
http://www.cs.utexas.edu/users/boyer/ftp/nqthm/index.html.
Auer, J. and Aderhold, M.: Unentscheidbarkeit des Halteproblems-Ein computergestützter Beweis mit ✔eriFun, 2002.
Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, New York, 1979.
Boyer, R. S. and Moore, J S.: A mechanical proof of the unsolvability of the halting problem, J. ACM 31(3) (1984), 441-458.
Boyer, R. S. and Moore, J S.: Proof checking the RSA public key encryption algorithm, Amer. Math. Monthly 91(3) (1984), 181-189.
Burstall, R. M.: Proving properties of programs by structural induction, Comput. J. 12(1) (1969), 41-48.
Gordon, M. J. C. and Melham, T. F.: Introduction to HOL: A Theorem Proving Environment for Higher-Order Logic, Cambridge University Press, Cambridge, 1993.
Gosling, J., Joy, B. and Steele, G. L.: The Java Language Specification, Addison-Wesley, Reading, MA, 1996.
Hutter, D., Langenstein, B., Sengler, C., Siekmann, J., Stephan, W. and Wolpers, A.: Deduction in the verification support environment, in M.-C. Gaudel and J. Woodcock (eds.), Intern. Symp. of Formal Methods Europe (FME), Lecture Notes in Artif. Intell. 1051, Springer, New York, 1996.
Kaufmann, M. and Moore, J S.: ACL2: An industrial strength version of NQTHM, in Compass '96: 11th Annual Conf. on Computer Assurance, Gaithersburg, Maryland, 1996.
Owre, S., Rushby, J. and Shankar, N.: PVS: A prototype verification system, in Proc. 11th Intern. Conf. on Automated Deduction (CADE-92), Lecture Notes in Artif. Intell. 607, Springer-Verlag, New York, 1992.
Paulson, L. C.: Isabelle: A Generic Theorem Prover, Lecture Notes in Comput. Sci. 828, Springer-Verlag, New York, 1994.
Reif, W.: The KIV approach to software verification, in M. Broy and S. Jähnichen (eds.), KORSO: Methods, Languages and Tools for the Construction of Correct Software, Lecture Notes in Comput. Sci. 1009, Springer-Verlag, New York, 1995.
Walther, C.: Computing induction axioms, in A. Voronkov (ed.), Proc. of the Inter. Conf. on Logic Programming and Automated Reasoning (LPAR-1992) (St. Petersburg, Russia), Lecture Notes in Comput. Sci. 624, Springer-Verlag, New York, 1992, pp. 381-392.
Walther, C.: On proving the termination of algorithms by machine, Artificial Intelligence 71(1) (1994), 101-157.
Walther, C. and Schweitzer, S.: The ✔eriFun tutorial, Technical Report VFR 02/04, Programmiermethodik, Technische Universität Darmstadt, 2002.
Walther, C. and Schweitzer, S.: ✔eriFun user guide, Technical Report VFR, 02/01, Programmiermethodik, Technische Universität Darmstadt, 2002.
Walther, C. and Schweitzer, S.: About ✔eriFun, in F. Baader (ed.), Proc. of the 19th Inter. Conf. on Automated Deduction (CADE-19), Lecture Notes in Artif. Intell. 2741, Springer-Verlag, New York, 2003, pp. 322-327.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Walther, C., Schweitzer, S. Verification in the Classroom. Journal of Automated Reasoning 32, 35–73 (2004). https://doi.org/10.1023/B:JARS.0000021872.64036.41
Issue Date:
DOI: https://doi.org/10.1023/B:JARS.0000021872.64036.41