15819K Logic Programming
Fall 2006 
Frank Pfenning 
TuTh 10:3011:50 
WeH 4623 
12 units 
Logic programming is a paradigm where computation arises from proof
search in a logic according to a fixed, predictable strategy. It
thereby unifies logical specification and implementation in a way that
is quite different from functional or imperative programming. This
course provides a thorough, modern introduction to logic programming.
It consists of a traditional lecture component and a project component.
The lecture component introduces the basic concepts and techniques of logic
programming followed by successive refinement towards more efficient
implementations or extensions to richer logical concepts. We plan
to cover a variety of logics and operational interpretations. The
project component will be one or several projects related to logic
programming.
Prerequisites: For undergraduates,
15317 Constructive Logic or
15312 Foundations of Programming Languages.
No prerequisites for graduate students.
What's New?
Class Material
Course Information
Lectures 
TuTh 10:3011:50, WeH 4623 
Office Hours 
Wed 11:0012:00, WeH 8117

Notes 
There is no textbook, but notes on Logic Programming
and papers will be handed out

Credit 
12 units 
Grading 
30% Homework, 15% Midterm, 55% Project 
Homework 
Weekly homework is assigned each Thursday and due the following Thursday.

Midterm 
Date Thu Oct 19, in class.
Closed book.

Project 
Project topic or topics will be selected after the midterm.

Topics 
Horn logic, intuitionistic logic, linear logic,
unification, constraints, backward chaining, backtracking,
forward chaining, saturation,
proof terms, higherorder patterns, concurrency,
resource management, logical compilation.
Time permitting: deontic, epistemic, or other modal logics,
reasoning about logic programs.

Mailing List 
lpcourse@cs [.cmu.edu] 
Home 
http://www.cs.cmu.edu/~fp/courses/lp/ 
[ Home
 Schedule
 Assignments
 Projects
 Handouts
 Software
 Resources
]
fp@cs
Frank Pfenning
