Basic information

Code:

Sector:

Credits:

Term:

Degree(s):

Language:

Teacher(s):

Same as:

Course Objectives

The goal of this course is to introduce symbolic techniques for the specification and verification of systems properties based on equational reasoning and theorem proving. On successful completion of this course, the student should understand the basic notions of first-order rewriting and logic, and be able to reason on properties of terms by means of symbolic manipulation modulo an equational theory or the deduction rules of a given logic.

Learning Outcomes (Dublin Descriptors)

On successful completion of this course, the student should

have profound knowledge of the basic concepts of first-order rewriting and first-order logic, relate the termination and confluence properties, have knowledge and understanding of pattern matching, syntactic and semantic unification, have knowledge and understanding of the natural deduction rules for propositional logic and predicate calculus, understand lambda-calculus as the base of the syntax for higher-order logic and functional programming;

understand and apply definitions, inference rules and theorems;

analyse and discuss different variants of a concept, discuss different proof techniques for deriving properties of terms and formulae;

explain and illustrate the fundamental notions of unification of terms, reduction ordering and critical pairs, explain the word problem and the completion of equational theories;

demonstrate skill in equational reasoning, formal derivation and symbolic manipulation, demonstrate ability to derive types for higher-order terms and properties of terms and formulae, demonstrate capacity for building proofs.

Prerequisites and Learning Activities

Basic notions of mathematical logic and functional programming are helpful.

Teaching Methods

Language: English
Lectures and exercises

Assessment Methods and Criteria

Written and oral examination. The written exam can be split into a midterm exam + a final exam at the end of the course.