Lecturer(s)
|
-
Kolařík Miroslav, doc. RNDr. Ph.D.
-
Balun Jiří, Mgr.
|
Course content
|
The course is an introduction to logic programming and its theoretical foundations based on predicate logic. The course includes theoretical topics on the syntax and semantics of logic programs and their relationship to first-order theories. Further attention is paid to the principles of PROLOG compilers. The course is concluded by showing applications in expert and database systems. <ol> Repetition of relevant concepts from predicate logic. Resolution inference rule. <li> Introduction to logic programming. Logic program and its semantics. Logic paradigm as a paradigm of programming. <li> Definite programs and their syntax. Clauses, facts, rules, and queries. <li> Declarative semantics of of definite programs: herbrand structure, herbrand model, least herbrand models and their constructive description. Semantic entailment of definite programs, Substitution, application, ground instances, sound answers. Pure logic programming vs. PROLOG. <li>Operational (procedural) semantics of logic programs. Recursive data structures. Recursive rules. Unification. Nondeterministic inference. Deterministic methods. Most general unifiers, procedural semantics and its relationship to declarative semantics: sound and computed answers. <li> PROLOG as a push-down automaton, backtracking, alternative solutions. <li> Cuts and metalogic annotations. Cuts as nullary predicates. Computation control using cuts. Conditional expressions and loops using cuts. <li>Theoretical models of negation: closed world assumption, negation as finite failure. Cut-based negation. <li> Applications of logic programming in database and expert systems. </ol>
|
Learning activities and teaching methods
|
Lecture, Demonstration
|
Learning outcomes
|
The students become familiar with basic concepts of logic programming.
Analyze problem and propose a logic program for its solution.
|
Prerequisites
|
unspecified
|
Assessment methods and criteria
|
Oral exam, Written exam
Active participation in class. Completion of assigned homeworks. Passing the oral (or written) exam.
|
Recommended literature
|
-
Bratko I. (2001). PROLOG Programming for Artificial Intelligence. Addison Wesley (third edition).
-
Jirků P. a kol. (1991). Programování v jazyku Prolog. SNTL, Praha.
-
K. Doets. (1994). From Logic to Logic Programming. The MIT Press.
-
Lloyd J.-W. (1987). Foundations of Logic Programming. Springer, New York.
-
M. Kifer, Y. A. Liu. (2018). Declarative Logic Programming: Theory, Systems, and Applications. Morgan & Claypool.
-
P. Boizumault. (2014). The Implementation of Prolog. Princeton University Press.
|