This module is offered in 2020-21.

This module covers the foundations of logic that are relevant to computer scientists, with an emphasis on automatic reasoning and decidability. Topics include propositional and predicate calculus, proof techniques, the development and presentation of mathematical arguments, and Goedel’s incompleteness theorem.

Learning Outcomes

  • Appreciate the deep linkages between formal logic and the foundations of computer science;
  • Be comfortable with the application of formal reasoning principles;
  • Be able to understand, develop, and present precise mathematical arguments;
  • Be proficient in reasoning about discrete mathematical structures of relevance to computer science; and
  • Understand the capabilities and limitations of computer reasoning tools.


  • propositional calculus, notation, inference, etc.
  • non-monotonic logic
  • predicate calculus, notation, truth trees
  • predicate calculus, completeness, decidability
  • first-order theories
  • modular arithmetic, finite fields
  • proof techniques
  • incompleteness
  • advanced topics in logic

Compulsory Elements

This module has no compulsory elements beyond those common to all modules (mark of 4 in each assessment component).

Module Delivery

Back to top

Last Published: 19 Oct 2020.