The repositoty contains accompanying files for the paper "Proof assistants for undergraduate mathematics and computer science education: elements of a priori analysis"
This paper presents an a-priori analysis of the use of five different interactive proof assistants for education, based on the resolution of a typical undergraduate exercise on abstract functions. It proposes to analyse these tools according to three main categories of aspects: language and interaction mode, automation and user assistance, and proof structure and visualisation. We argue that this analysis may help formulate and clarify further research questions on the possible impact of such tools on the development of reasoning and proving skills.
For formalize the following two exercises using several proof assistants.
Given f:A→B and C⊆A, show that C⊆f^(-1) (f(C)).
Given f:A→B and C⊆A, show that if f is injective then f^(-1) (f(C))⊆C.
List of proof assistants we experimented with:
- Coq, using tactics case_study.v
- Isabelle, using the Isar declarative language case_study.thy
- Lurch, using controlled natural language case_study.lurch
- Edukera, using a point and click user interface built above Coq
- DEAduction, using a point and click user interface built above Lean
The proof formalized without using automation using the Isar language:
The popup window when clicking on a definition:
During the proof:
An option is also available to display the proof tree:
- Coq one way
- Coq reverse inclusion
- Deaduction one way
- Deaduction reverse inclusion
- Edukera both ways
- Edukera one way
- Isabelle one way
- Evmorfia Iro Bartzia
- Antoine Meyer
- Julien Narboux