Waterproof: Educational Software for Learning How to Write Mathematical Proofs

Jelle Wemmenhove
Dick Arends
Thijs Beurskens
Maitreyee Bhaid
Sean McCarren
Jan Moraal
Diego Rivera Garrido
David Tuin
Malcolm Vassallo
Pieter Wils
Jim Portegies

In order to help students learn how to write mathematical proofs, we adapt the Coq proof assistant into an educational tool we call Waterproof. Like with other interactive theorem provers, students write out their proofs inside the software using a specific syntax, and the software provides feedback on the logical validity of each step. Waterproof consists of two components: a custom proof language that allows formal, machine-verified proofs to be written in a style that closely resembles handwritten proofs, and a custom editor that allows these proofs to be combined with formatted text to improve readability. The editor can be used for Coq documents in general, but also offers special features designed for use in education. Student input, for example, can be limited to specific parts of the document to prevent exercises from being accidentally deleted. Waterproof has been used to supplement teaching the Analysis 1 course at Eindhoven University of Technology (TU/e) for the last four years. Students started using the specific formulations of proof steps from the custom proof language in their handwritten proofs; the explicit phrasing of these sentences helped to clarify the logical structure of their arguments.

In Julien Narboux, Walther Neuper and Pedro Quaresma: Proceedings 12th International Workshop on Theorem proving components for Educational software (ThEdu'23), Rome, Italy, 5th July 2023, Electronic Proceedings in Theoretical Computer Science 400, pp. 96–119.
The previous version (v1) of this paper contains more code snippets from the coq-waterproof library that showcase the Ltac2 tactic language.
Published: 6th April 2024.

ArXived at: https://dx.doi.org/10.4204/EPTCS.400.7 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org