next up previous
Next: MC222 Optimisation Up: Year 2 Previous: MC211 Automata, Languages and

MC213 Applied Logic


MC213 Applied Logic

Credits: 20 Convenor: Dr. S. Ambler Semester: 2


Prerequisites: essential: MC111 desirable: MC103, MC104, MC208
Assessment: Continual assessment: 30% Three hour exam in May/June: 70%

Lectures: 36 Classes: none
Tutorials: 12 Private Study: 96
Labs: 6 Seminars: none
Project: none Other: none
Total: 150

Explanation of Pre-requisites

The course requires a knowledge of basic discrete mathematics, in particular, the properties of sets, functions, relations and trees. In addition, students should already have had an introduction to logic and be familiar with propositional logic, truth tables, tableaux, and with the language of the predicate calculus.

A knowledge of functional programming is also desirable because some of the software to be used is written in Haskell.

Course Description

Logic is the science of reasoning. The principles of deduction have long been studied by philosophers and mathematicians. It is interesting to see how their ideas have become important in Computer Science. One of the main fields of application is in formal specification. If we wish to reason about the behaviour of a computer system before it has been fully implemented then we must try to infer its properties on the basis of a system specification. To be sure that our predictions are correct we must make certain that each step of reasoning is sound. The permissible steps in a logical deduction can be coded as a series of rules written in the formal language of the predicate calculus. What we need to do is to make sure that we follow the rules; in fact, this can be checked on a computer using a proof assistance package. A second field of application is in Artificial Intelligence. If logical deduction can be expressed as a series of rules then it opens the way for us to write programs which can reason for themselves automatically. This is a far more difficult goal. Nevertheless, the idea of logic programming stems from this and has gained widespread industrial use. Both of these are very active areas of research.

There are two main aspects to the study of formal logic. The first is concerned with the syntax of the language and the rules which are used for deduction. This is the proof theory of the logic and provides the basis for machine implementation. The second is concerned with the meaning of the language. We would like to know that the rules are sound and adequate to the task. This is achieved by looking at the model theory of the logic. This module covers the essential core of these ideas and lays the foundation of knowledge which any computer scientist using formal logic should have.

Aims

The course aims to present the concepts of formal logic from a computational point of view. The use of the predicate calculus as a tool for reasoning about computer systems is illustrated through a number of examples. The concepts are then developed in methodical way. The student will see how the basic notions of `truth in a model' and semantic consequence lead to proof methods given by tableaux and sequent calculus. The correctness of these methods is established by proving soundness and completeness theorems. A proof assistance package is then used to support the development of formal proofs, and the student will learn about the basic algorithms that underlie the package. These ideas are developed further with the introduction of logic programming. The course ends with some elementary programming exercises in Prolog.

Objectives

Transferable Skills

Syllabus

Predicate logic: examples; review of the syntax; free and bound variables; term substitution. Models and validity; semantic consequence; counter models; the tableau method (basic and meta-variable versions). Proof theory: sequent calculus (basic and meta-variable); derived rules and admissible rules. Machine assisted proof. Soundness and completeness: Herbrand models, Hintikka sets and the algorithm Search. Proof search: first order unification; linear resolution; search strategies. Pure Prolog: definite clauses, SLD trees, simple logic programming.

Reading list

Recommended:

D. Richardson, Logic, Language, Formalism, Informalism, International Thompson Computer Press, 1995.

Background:

A. Galton, Logic for Information Technology, John Wiley and Sons, 1990 (out of print).

M. Fitting, First-order Logic and Automated Theorem Proving, Springer-Verlag, 1990.

M. Ben-Ari, Mathematical Logic for Computer Science, Prentice Hall, 1993.

Details of Assessment

There is a series of nine worksheets, which are all assessed. These include pen and paper exercises, but also computer work using the proof assistant Verity and logic programming in Prolog.

The written Midsummer examination has six questions and candidates can obtain full marks for good answers to four questions. The examination is intended to cover all aspects of the course except for the laboratory work.


next up previous
Next: MC222 Optimisation Up: Year 2 Previous: MC211 Automata, Languages and
Roy L. Crole
10/22/1998