Formal Mathematics and Proof Assistants - NMMB568
|
|
|
||
The topic of the course are formal (computer-understandable) mathematics and proof assistants (interactive
theorem provers). A proof assistent is a tool to assist with the development of formal proofs by human-machine
collaboration. The language of communication is some variant of formal logic and the main aim a high level of
assurance that the proven actually holds.We will have a look at the proof assistent Lean, study its theoretical
foundations and explore the ways in which it can be used to develop theories, model systems, and prove
theorems in computer science as well as mathematics.
Last update: Žemlička Jan, doc. Mgr. et Mgr., Ph.D. (08.12.2022)
|
|
||
Předmět je zakončen ústní zkouškou. Last update: Žemlička Jan, doc. Mgr. et Mgr., Ph.D. (08.12.2022)
|
|
||
Blanchette et at. The Hitchhiker's Guide to Logical Verification (available online)
Jeremy Avigad, Leonardo de Moura, and Soonho Kong. Theorem Proving in Lean (available online) Last update: Žemlička Jan, doc. Mgr. et Mgr., Ph.D. (08.12.2022)
|
|
||
Will be specified later. Last update: Žemlička Jan, doc. Mgr. et Mgr., Ph.D. (08.12.2022)
|
|
||
We will mostly follow the Hitchhiker's Guide:
Basics:
(Quantifiers, Connectives, Tactics, Propositions as Types / Proofs as Terms)
Functional–Logic Programming:
(Basic Data Structures, Proofs by induction, Arithmetic tactics)
Program Semantics:
(Small-step/big-step, Partial vs Total correctness, Monotone functions, lattices and fixpoints)
Mathematics:
(Foundational principles, Subtypes, Quotient types, Type Classes) Last update: Žemlička Jan, doc. Mgr. et Mgr., Ph.D. (08.12.2022)
|