Logic Programming
Frank Pfenning
Carnegie Mellon University
Draft of January 2, 2007
Notes for a course given at Carnegie Mellon University, Fall 2006. Materials available at http:/www.cs.cmu.edu/~fp/courses/lp. Please send
comments to fp@cs.cmu.edu.
Copy
15-819K: Logic Programming
Lecture 26
Datalog
Frank Pfenning
December 5, 2006
In this lecture we describe Datalog, a decidable fragment of Horn logic.
Briey, Datalog disallows function symbols, which means that the so-called
Herbrand universe of ground in
15-819K: Logic Programming
Lecture 27
Constraint Logic Programming
Frank Pfenning
December 7, 2006
In this lecture we sketch constraint logic programming which generalizes
the xed structure of so-called uninterpreted function and predicate symbols of Horn
15-819K: Logic Programming
Bibliography
Frank Pfenning
December 2006
This is the collection of all papers and reports cited in the lecture notes.
[1] Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, and Jan Midtgaard. A functional correspondence between e
15-819K: Logic Programming
Lecture 19
Verifying Progress
Frank Pfenning
November 2, 2006
In this lecture we discuss another logic program analysis, namely verifying the progress property. Progress guarantees that a predicate can never
fail for arbitrary v
15-819K: Logic Programming
Lecture 4
Operational Semantics
Frank Pfenning
September 7, 2006
In this lecture we begin in the quest to formally capture the operational
semantics in order to prove properties of logic programs that depend on the
way proof sea
15-819K: Logic Programming
Lecture 1
Logic Programming
Frank Pfenning
August 29, 2006
In this rst lecture we give a brief introduction to logic programming. We
also discuss administrative details of the course, although these are not
included here, but ca
15-819K: Logic Programming
Lecture 2
Data Structures
Frank Pfenning
August 31, 2006
In this second lecture we introduce some simple data structures such as
lists, and simple algorithms on them such as as quicksort or mergesort.
We also introduce some rst
15-819K: Logic Programming
Lecture 3
Induction
Frank Pfenning
September 5, 2006
One of the reasons we are interested in high-level programming languages is that, if properly designed, they allow rigorous reasoning about
properties of programs. We can prov