a3up / plog

Logic Programming Repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Program

Foundations of Logic Programming
  • Predicate logic
  • Inference rules
  • Horn clauses
  • Unification
  • Resolution
  • Conjunctive normal form
  • Origins of Prolog
Logic Programming
  • Clauses, predicates and facts
  • Queries
  • Rules
  • Logic variables
  • Instantiation
  • Logic programming and databases
  • Recursion
  • Lists and trees
  • Symbolic expressions
  • Computation model of a logic program
  • The unification algorithm
  • Abstract interpreter
  • Traces
  • Search trees
  • Negation
The Prolog Language
  • Execution model
  • Backtracking
  • Rule and goal order
  • Termination
  • Arithmetic
  • Iteration
  • Structure inspection
  • Meta-logical predicates
  • Control: cuts and negation
  • Extra-logical predicates
Advanced Prolog Programming Techniques
  • Non-deterministic programming
  • Incomplete data structures
  • Meta-interpreters
  • Search techniques
Constraint Logic Programming
  • Constraints
  • Constraint satisfaction
  • Constraints in finite domains.
  • Constraint logic programming (CLP)
  • Search control
  • Variable and value ordering
  • Modelling problems in CLP
  • Constraint programming using SICStus Prolog

Objectives

The Logic Programming paradigm is a declarative approach to programming, based on formal reasoning processes, which is more appropriate to address some types of problems. Constraint logic programming allows addressing constraint satisfaction and optimization problems by modeling them in a straightforward and elegant fashion.
Aims: To get acquainted with the Logic Programming and Constraint Programming paradigms. To develop skills for abstract reasoning and declarative problem representation.
The course focuses on first-order logic programming. On the practical side the Prolog programming language is explored. Additionally, constraint logic programming is also introduced, and several application examples are provided.

Learning Outcomes and Competences

At the end of this course, students must be able to:

  • Identify classes of problems where (Constraint) Logic Programming is particularly relevant.
  • Apply Prolog programming and constraint logic programming techniques.
  • Build full Prolog applications, with possible connections to other programming languages.

Software

SICStus Prolog

Literature

  • Sterling, Leon; The Art of Prolog. ISBN: 0-262-69163-9
  • Marriot, Kim; Programming with constraints. ISBN: 0-262-13341-5
  • Clocksin, W. F.; Programming in prolog. ISBN: 0-387-58350-5
Complementary
  • Christopher Hogger, Essentials of logic programming. ISBN:0-19-853832-4
  • Torres, Delfim Fernando Marado; Introdução à programação em lógica. ISBN: 972-8021-93-3
  • Bratko, Ivan; Prolog programming for artificial intelligence. ISBN: 0-201-40375-7
  • O.Keefe, Richard A.; The craft of Prolog. ISBN: 0-262-15039-5
  • Stuart Russell, Peter Norvig; Artificial intelligence. ISBN: 978-0-13-207148-2

About

Logic Programming Repository


Languages

Language:Prolog 100.0%