|
|
|
|
When Propositional Logic Isn’t Enough |
|
First-Order Logic (FOL) |
|
Practice with FOL |
|
FOL Proof Method: Resolution |
|
[Why Representing Change in Time is Difficult] |
|
|
|
|
|
Simple domain: Blocks stacked on a table |
|
Simple problem: Stack blocks in a given
configuration |
|
Home to much research in a variety of areas: |
|
Vision (Huffman, 1971) |
|
Constraint Propogation (Waltz, 1975) |
|
Machine Learning (Winston, 1970) |
|
Natural Language Understanding (Winograd, 1972) |
|
Planning (Fahlman, 1974) |
|
|
|
|
|
How would you represent the following: |
|
Block A is on Block D |
|
Block A is not on Block B |
|
If A is on D, A is not on B |
|
No block is on A |
|
If A is on D and D is on B, A is above B. |
|
|
|
|
Define Above using transitivity of On |
|
“There’s a/there’s no block on A.” |
|
“All blocks have red letters.” |
|
Need for properties, relationships, and ways to
generalize information compactly |
|
Practical applications: mathematical theorem
proving, common-sense reasoning (CYC image database), circuit/program
design/verification |
|
|
|
|
Propositions - T/F atomic sentences about the
world |
|
Boolean functions (Ø,Ù,Ú,Þ,Û) - negate
and logically combine sentences |
|
Parentheses - disambiguates grammar |
|
|
|
|
Atomic sentences - more complex than
propositions |
|
Boolean functions (Ø,Ù,Ú,Þ,Û) - make compound
sentences |
|
Quantifiers (",$) - tell us first-order facts which
correspond to sets of sentences |
|
Parentheses |
|
|
|
|
|
Domain of Discourse (DOD) - relevant things in
the world that we’re reasoning about |
|
Symbols: |
|
variables - assigned things in the domain of
discourse (DOD) |
|
constants - things and relations relations
between things in the DOD |
|
An interpretation I maps |
|
variables to things in the DOD. |
|
constants to things and relationships between
things in the DOD. |
|
|
|
|
Domain of Discourse: blocks (for simplicity,
exclude table) |
|
Constant Symbols (A, B, C, D, On, Above, …) |
|
Variables (x, y, z, …) |
|
An interpretation maps variables and constant
symbols to things in the world. (e.g. A means this block with an “A”.) |
|
|
|
|
|
object constants - corresponding to things in
the DOD |
|
relation constants - relationships between
things in the DOD |
|
relations also called predicates |
|
n-ary relation - a set of n-tuples from the DOD |
|
1-ary relation - a property constant |
|
|
|
|
|
Object Constants: A, B, C, D correspond to
blocks with the same letters on them. |
|
Relations Constants: |
|
OnTable: set of blocks resting on table |
|
On: set of block pairs where the first rests on
the second |
|
Above: transitive closure of On |
|
Clear: set of blocks with no blocks above |
|
|
|
|
|
function constants - mappings between tuples and
things in the DOD |
|
0-ary function - an object constant |
|
n-ary function (n>0) - special case of
n+1-ary relation where n arguments uniquely determine n+1st argument |
|
|
|
|
terms - variables, objects, functions of terms |
|
atomic sentence - relationship between terms |
|
Under a given interpretation, an atomic sentence
is true or false |
|
compound (or complex) sentences are built of
atomic sentences, Boolean functions (negation, connectives), and... |
|
|
|
|
Terms: x, A, nextBlock(A) |
|
Atomic sentences: Above(A,D), On(x,B), Clear(y) |
|
These sentence are true under an interpretation
where constants and relations are as we described and x, y are interpreted
as D, A or D, C. |
|
These sentences are also true under an
interpretation where A,B,C,D are the numbers 16, 2, 17, 4, On is “the
square of”, Above is “a power of”,
Clear is “greater than 15”. |
|
|
|
|
|
universal (") - “For all” |
|
"x f - “For all x, f is true.” |
|
"Every block is a red block". |
|
"If x>y and y>z then x>z." |
|
|
|
|
|
existential ($) - “There exists” |
|
$x f - “There exists x such that f is true.” |
|
same as Ø "x Ø f |
|
"There is a block on
the table." |
|
Challenging: "If a block is above another
block, then the block is on the other block or on a block that is above
it." |
|
|
|
|
|
nested quantifiers - "x $y is
different than $y "x |
|
"Everybody likes someone." |
|
"Someone likes everyone." |
|
Relations: Person, Time, FoolPersonAtTime |
|
"You can fool all the people some of the
time, …" |
|
"… and some of the people all the time,
…" |
|
"… but you cannot fool all the people all
the time." |
|
|
|
|
variable scope - the parts of a sentence for
which a variable quantifier is relevant |
|
free variables - unquantified variables |
|
formula - another word for sentence |
|
well-formed formula (wff) - a sentence with no
free variables |
|
|
|
|
|
|
Express the following in FOL using relations On,
Above, Clear, OnTable, and objects A, B, C, D: |
|
If block A is on block B, then A is above B, B
is not clear, and A is not on the table. |
|
If one block is on another block, it is also
above that block. |
|
A or D or C is on the table. |
|
If A is on the table, then D and C are not. |
|
|
|
|
A sentence is valid if it is true for all
possible interpretations. |
|
A sentence is satisfiable if there exists a
“satisfying” interpretation (i.e. an interpretation for which the sentence
is true). |
|
An interpretation which satisfies a sentence is
a model of that sentence. |
|
|
|
|
entailment - whether a sentences follows from
other sentences |
|
inference rules - deduce new sentences from old
sentences |
|
soundness - what can be inferred is entailed |
|
completeness - what is entailed can be inferred |
|
|
|
|
|
|
A logic consists of |
|
a formal
language consisting of |
|
syntax |
|
semantics |
|
a proof theory |
|
terms: sentences, KB, valid, satisfiable, model,
entail, inference rule, sound, complete |
|
|
|
|
Good News: There exists a complete inference
procedure for FOL. (Gödel 1930-31) |
|
Robinson’s resolution algorithm |
|
Bad News: Can’t tell if a sentence isn’t
entailed Þ FOL is semidecidable. |
|
|
|
|
conversion to normal form |
|
generalized resolution |
|
unification |
|
|
|
|
situation calculus - situations, actions, result
function |
|
frame problem - how to say when things don’t
change (e.g. cartoon frames) |
|
qualification problem - how to define
circumstances under which an action will work (e.g. banana in tailpipe) |
|
ramification problem - how to infer all of the
implicit consequences of actions (e.g. moving luggage) |
|