Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP4161 Advanced Topics in Software Verification - 2025

General Course Information

Course Code :  COMP4161

Year :  2025

Term :  Term 3

Course Details & Outcomes

Course Description

This course is about mechanical proof assistants, how they work, and what they can be used for. It presents specification and proof techniques used in industrial grade theorem provers, teaches the theoretical background to the techniques involved, and shows how to use a theorem prover to conduct formal proofs in practice. The courses is intended to bring third/fourth year and  postgraduate students into contact with the current research topics in the field of theorem proving and automated deduction and to teach them the necessary skills to successfully use industrial grade verification environments in modelling and verification.

Topics covered included: higher order logic, natural deduction, lambda calculus, term rewriting, data types and recursive functions, induction principles, calculational reasoning, mathematical proofs, decision procedures for a variety of logical domains, and proofs about programs.

Note: experience with (first-order) logic and functional programming is required.

Course Aims

This course teaches you how to do mechanical, machine-assisted proofs---the gold standard of validation for software and mathematics. This provides exposure to an ironclad, principled way of developing safety-critical systems while knowing that you got it right. Students who have taken this course will be well equipped to work in proof engineering, or to undertake research in formal verification.


Course Learning Outcomes

Course Learning Outcomes

CLO1 : Write definitions in the theorem prover Isabelle/HOL

CLO2 : Formalise software verification problems

CLO3 : Prove theorems in an interactive proof assistant

CLO4 : Effectively use proof automation and automatic counter-example finding

CLO5 : Formally verify functional programs

CLO6 : Formally verify imperative programs, including small C programs

Course Learning Outcomes

Assessment Item

CLO1 : Write definitions in the theorem prover Isabelle/HOL

• Assignments 1, 2 and 3

 Final exam

CLO2 : Formalise software verification problems

• Assignments 1, 2 and 3

 Final exam

CLO3 : Prove theorems in an interactive proof assistant

• Assignments 1, 2 and 3

 Final exam

CLO4 : Effectively use proof automation and automatic counter-example finding

• Assignments 1, 2 and 3

 Final exam

CLO5 : Formally verify functional programs

• Assignments 1, 2 and 3

 Final exam

CLO6 : Formally verify imperative programs, including small C programs

• Assignments 1, 2 and 3

 Final exam