Automated Reasoning for Software Engineering (F24AI1) :

Theorem Proving


Aims and objectives:

The aim of this part of the module is to explore topics within automated reasoning as applied to software engineering and to promote understanding of the issues involved in interactive theorem proving.

We discuss methods and tools for formally proving correctness of mathematical proofs and hardware or software systems. Verifying a complex system must include verification of the mathematical background theory, therefore it requires the development of formal mathematical models. We express the relevant properties that we want to prove using higher-order logic.

We will explain the principles of higher-order logic, its relation to typed lambda calculus, and how an interactive theorem prover for higher-order logic can be implemented. We will develop modeling and verification skills by verifying many examples with state-of-the-art theorem provers.

Practical exercises will be done with PVS. PVS incorporates powerful automatic decision procedures.


Download slides

Lecture material: