Summary of lecture 1:
- general info about the course, learning objectives, examination, project, textbook, reading instructions in the course-PM, alternative literature, Prolog systems to use
- a little history about logic, its role in philosophy, automatic resoning, AI and in computer science
Logic was from the beginning a way to handle knowledge and to structure arguments.
Today the focus lies on formal proofs in mathematics and on mechanised (computer based) reasoning.
In philosophical logic you study proof systems. What strengths do they have? What can you prove?
How do you handle paradoxes and unprovable satatements? Is there a difference between truth and provability?
How can you defend an argument?
What do we know? Which statements have unambiguous truth values ("true" T, or "false" F)=
- propositional logic (Boolean logic)
The connectives and their respective truth tables
conjunction ("and", "&", "^", ",")
disjunction ("or", "v", ";"),
implication ("if", "->", "<-", ":-"),
equivalence ("if and only if","iff", "<->"),
negation ("not", "\+")
- Predicate logic
logical variables
quantifiers, "for all", "exists"
scope rules in predicates
Proof rules expressed with natural deduction.
- Logic programming: To use construction of logical proofs as a programming language
SImple Prolog programs.
A family database.(homework: to define some family relations).
What kind of data is there in Prolog? (constants and compound terms)
The syntax of Prolog statements (facts and rules defining relations)
- Abstract description of the execution of a Prolog program
The equality theory, what is a "substitution" (in the description)
The result of an execution is the answer "yes" or "no"
With a "yes" the system often delivers bindings for the unbound variables that are in the question (the "query") , a part of a substitution that we call the "binding environment".
This can be understood as a number of conditions:
("I constructed a proof of your statement and assumed that these variables have these values").
How the unification algorithm that handles this works and what programs "mean" declaratively (the "model theory") we bring up next time.
Have a nice weekend!
-Thomas