COURSE DESCRIPTION
Theory Outline
- Formulas and their truth in propositional logic. Logical equivalences, formula transformations to normal forms and clausal form. Logical consequence, deduction and resolution in propositional logic.
- The syntax of first-order logic. Interpretations, models, logical consequence and deduction in first-order logic. Logical equivalences, formula transformations to normal forms, clausal form and Horn clauses.
- Substitution and unification. Resolution in first-order logic, SLD-resolution and SLD-trees.
- Definite logic programs.
- Negation in logic programming. Normal logic programs.
- General logic programs.
- Applications of logic programming.
Lab Outline
- The basic components of a Prolog program.
- Unification and Equality.
- Input-Output predicates.
- Lists.
- Arithmetic in Prolog.
- Recursion.
- Search tree, backtracking and cut.
- Negation with finite failure.
- Control flow in Prolog programs.
- User-defined operators.
- Input from a file and output to a file.
- Μeta-logical predicates.
- Predicates which collect all solutions of a goal.
- Predicates for program modification.
- Other built-in predicates.
- Programming techniques.
- Implementation of logic programming applications.
RECOMMENDED BIBLIOGRAPHY
- Ι. Bratko, Prolog Programming for Artificial Intelligence, Pearson Education Canada, 4th edition, 2011, ISBN 13: 9780321417466.
- J. Lloyd, Foundations of Logic Programming, Second Edition, Springer-Verlag, 1993, ISBN 3-540-18199-7.
- U. Nilsson and J. Maluszynski, Logic, Programming and Prolog, Second edition, John Wiley & Sons, 1995, ISBN: 0 471 95996 0.
PREREQUISITE KNOWLEDGE
- Propositional and predicate logic.
- Induction, sets, relations and functions.
- Stacks, trees and graphs.