Foundations
This part of the course provides the basic vocabulary to talk and reason about logic.
Proofs as programs
In this part, we briefly make a connection between
natural deduction proofs and functional programming.
Proof search
This part of the course sets the foundations of
efficient search for derivations, both for theorem proving and for
using logic as a programming device.
Forward chaining
This part of the course explores a different approach
to using logic to do computation, an approach that is particularly
amenable to parallel and concurrent computation.
Backward chaining
This part of the course explores one way of using logic
for computation, both by exploring its theoretical foundations,
using an actual language that follows this paradigm, and
implementing such a language.
Advanced topics
The end of the course will be dedicated to whatever
topic ticks our imagination.