Verification of Programs
| Keywords |
| Classification |
Keyword |
| OFICIAL |
Computer Science |
Instance: 2025/2026 - 2S 
Cycles of Study/Courses
Teaching Staff - Responsibilities
Teaching language
Suitable for English-speaking students
Objectives
In the development of software or hardware computer systems it is essential to ensure their correction in relation to formal specifications.
This course aims to introduce to formal methods using deductive systems for ertification of program properties.
Learning outcomes and competences
Students should:
- realize the importance of using logic and formal systems in the development of complex it systems;
- be able to annotate simple programs in an functional, imperative or object-oriented language to ensure safety properties and functional properties; and to specify theories that allow the modeling of more complex structures, the correction of which will be demonstrated by an automatic or interactive theorem prover;
- acquire basic concepts of automatic solvers (SMT-solvers) and interactive theorem provers
- acquire the basic principles in order to allow to use the appropriate (formal) verification tools in future working life or the development of research in the field of formal methods;
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Notions of propositional and first-order Logic. Notions of operational semântics and basic algorithms and data structures
Program
Axiomatic semantics. Partial and total correctness calculus (Hoare logics). Verification condition generators. Tools for the specification , verification and certification programs. Proposition satisfiability problem (SAT). Satisfiability modulo theories (SMT). Program verification based on dependent types.
Mandatory literature
Almeida José Bacelar 070;
Rigorous software development. ISBN: 9780857290175
K. Leino; Program Proofs, MIT, 2023. ISBN: 978-0-262-54623-2
Daniel Kroening;
Decision procedures. ISBN: 978-3-540-74104-6
Huth Michael 1962-;
Logic in Computer Science. ISBN: 0-521-54310-X
Complementary Bibliography
Yves Bertot;
Interactive theorem proving and program development. ISBN: 9783540208549 hbk
Benjamim Pierce et al.; Software Foundations (https://softwarefoundations.cis.upenn.edu)
Teaching methods and learning activities
Lectures and case studies.
Software
Z3
SAT Solver
Dafny
Rocq
Evaluation Type
Distributed evaluation with final exam
Assessment Components
| designation |
Weight (%) |
| Exame |
40,00 |
| Trabalho escrito |
30,00 |
| Trabalho prático ou de projeto |
30,00 |
| Total: |
100,00 |
Amount of time allocated to each course unit
| designation |
Time (hours) |
| Estudo autónomo |
80,00 |
| Frequência das aulas |
42,00 |
| Trabalho escrito |
40,00 |
| Total: |
162,00 |
Eligibility for exams
Attendance to 3/4 of the lectures
Calculation formula of final grade
The final grade is the arithmetic mean of the classifications obtained in practical projects and the exam: 0.6*TP+0.4*E.
Exam has a minimum grade of 6/20 and eche project a minimum grade of 5/20.
Total minimum grade: 9.5 over 20
Classification improvement
Exam for 20