Documente Academic
Documente Profesional
Documente Cultură
Relations: red, round, prime, brother of, bigger than, part of,
comes between,
Functions: father of, best friend, one more than, plus,
Topic 8: First-Order Logic 6
CS 271, Fall 2007: Professor Padhraic Smyth
Logics in General
Ontological Commitment:
What exists in the world TRUTH
PL : facts hold or do not hold.
FOL : objects with relations between them that hold or do not hold
Epistemological Commitment:
What an agent believes about facts BELIEF
Topic 8: First-Order Logic 7
CS 271, Fall 2007: Professor Padhraic Smyth
Syntax of FOL: Basic elements
Constant Symbols:
Stand for objects
e.g., KingJohn, 2, UCI,...
Predicate Symbols
Stand for relations
E.g., Brother(Richard, John), greater_than(3,2)...
Function Symbols
Stand for functions
E.g., Sqrt(3), LeftLegOf(John),...
Topic 8: First-Order Logic 8
CS 271, Fall 2007: Professor Padhraic Smyth
Syntax of FOL: Basic elements
Constants KingJohn, 2, UCI,...
Predicates Brother, >,...
Functions Sqrt, LeftLegOf,...
Variables x, y, a, b,...
Connectives , , , v,
Equality =
Quantifiers V, n
Topic 8: First-Order Logic 9
CS 271, Fall 2007: Professor Padhraic Smyth
Relations
Some relations are properties: they state
some fact about a single object: Round(ball), Prime(7).
n-ary relations state facts about two or more objects:
Married(John,Mary), LargerThan(3,2).
Some relations are functions: their value is another object:
Plus(2,3), Father(Dan).
Topic 8: First-Order Logic 10
CS 271, Fall 2007: Professor Padhraic Smyth
Models for FOL: Example
Topic 8: First-Order Logic 11
CS 271, Fall 2007: Professor Padhraic Smyth
Terms
Term = logical expression that refers to an object.
There are 2 kinds of terms:
constant symbols: Table, Computer
function symbols: LeftLeg(Pete), Sqrt(3), Plus(2,3) etc
Topic 8: First-Order Logic 12
CS 271, Fall 2007: Professor Padhraic Smyth
Atomic Sentences
Atomic sentences state facts using terms and predicate symbols
P(x,y) interpreted as x is P of y
Examples:
LargerThan(2,3) is false.
Brother_of(Mary,Pete) is false.
Married(Father(Richard), Mother(John)) could be true or false
Note: Functions do not state facts and form no sentence:
Brother(Pete) refers to John (his brother) and is neither true nor false.
Brother_of(Pete,Brother(Pete)) is True.
Binary relation
Function
Topic 8: First-Order Logic 13
CS 271, Fall 2007: Professor Padhraic Smyth
Complex Sentences
We make complex sentences with connectives (just like in
propositional logic).
( ( ), ) ( ( )) Brother LeftLeg Richard John Democrat Bush v
binary
relation
function
property
objects
connectives
Topic 8: First-Order Logic 14
CS 271, Fall 2007: Professor Padhraic Smyth
More Examples
Brother(Richard, John) Brother(John, Richard)
King(Richard) v King(John)
King(John) => King(Richard)
LessThan(Plus(1,2) ,4) GreaterThan(1,2)
(Semantics are the same as in propositional logic)
Topic 8: First-Order Logic 15
CS 271, Fall 2007: Professor Padhraic Smyth
Variables
Person(John) is true or false because we give it a single
argument John
We can be much more flexible if we allow variables which can
take on values in a domain. e.g., all persons x, all integers i,
etc.
E.g., can state rules like Person(x) => HasHead(x)
or Integer(i) => Integer(plus(i,1)
Topic 8: First-Order Logic 16
CS 271, Fall 2007: Professor Padhraic Smyth
Universal Quantification V
V means for all
Allows us to make statements about all objects that have certain
properties
Can now state general rules:
V x King(x) => Person(x)
V x Person(x) => HasHead(x)
V i Integer(i) => Integer(plus(i,1))
Note that
V x King(x) Person(x) is not correct!
This would imply that all objects x are Kings and are People
V x King(x) => Person(x) is the correct way to say this
Topic 8: First-Order Logic 17
CS 271, Fall 2007: Professor Padhraic Smyth
Existential Quantification n
n x means there exists an x such that. (at least one object x)
Allows us to make statements about some object without naming it
Examples:
n x King(x)
n x Lives_in(John, Castle(x))
n i Integer(i) GreaterThan(i,0)
Note that is the natural connective to use with n
(And => is the natural connective to use with V )
Topic 8: First-Order Logic 18
CS 271, Fall 2007: Professor Padhraic Smyth
More examples
2
[( 2) ( 3)] ( )
[( 1)] ( )
x x x x R false
x x x R false
V > >
n =
For all real x, x>2 implies x>3.
There exists some real x whose square is minus 1.
Topic 8: First-Order Logic 19
CS 271, Fall 2007: Professor Padhraic Smyth
Topic 8: First-Order Logic 20
CS 271, Fall 2007: Professor Padhraic Smyth
Topic 8: First-Order Logic 21
CS 271, Fall 2007: Professor Padhraic Smyth
Topic 8: First-Order Logic 22
CS 271, Fall 2007: Professor Padhraic Smyth
Topic 8: First-Order Logic 23
CS 271, Fall 2007: Professor Padhraic Smyth
Topic 8: First-Order Logic 24
CS 271, Fall 2007: Professor Padhraic Smyth
Combining Quantifiers
V x n y Loves(x,y)
For everyone (all x) there is someone (y) who loves them
n y V x Loves(x,y)
- there is someone (y) who loves everyone
Clearer with parentheses: n y ( V x Loves(x,y) )
Topic 8: First-Order Logic 25
CS 271, Fall 2007: Professor Padhraic Smyth
Connections between Quantifiers
Asserting that all x have property P is the same as asserting
that does not exist any x that dont have the property P
V x Likes(x, 271 class) n x Likes(x, 271 class)
In effect:
- V is a conjunction over the universe of objects
- n is a disjunction over the universe of objects
Thus, DeMorgans rules can be applied
Topic 8: First-Order Logic 26
CS 271, Fall 2007: Professor Padhraic Smyth
De Morgans Law for Quantifiers
( )
( )
( )
( )
x P x P
x P x P
x P x P
x P x P
V n
n V
V n
n V
( )
( )
( )
( )
P Q P Q
P Q P Q
P Q P Q
P Q P Q
v
v
v
v
De Morgans Rule
Generalized De Morgans Rule
Rule is simple: if you bring a negation inside a disjunction or a conjunction,
always switch between them (or and, and or).
Topic 8: First-Order Logic 27
CS 271, Fall 2007: Professor Padhraic Smyth
Using FOL
We want to TELL things to the KB, e.g.
TELL(KB, )
TELL(KB, King(John) )
These sentences are assertions
We also want to ASK things to the KB,
ASK(KB, )
these are queries or goals
The KB should return the list of xs for which Person(x) is true:
{x/John,x/Richard,...}
, ( ) ( ) Ki rs
, ( ) rs n
Topic 8: First-Order Logic 28
CS 271, Fall 2007: Professor Padhraic Smyth
FOL Version of Wumpus World
Typical percept sentence:
Percept([Stench,Breeze,Glitter,None,None],5)
Actions:
Turn(Right), Turn(Left), Forward, Shoot, Grab, Release, Climb
To determine best action, construct query:
V a BestAction(a,5)
ASK solves this and returns {a/Grab}
And TELL about the action.
Topic 8: First-Order Logic 29
CS 271, Fall 2007: Professor Padhraic Smyth
Knowledge Base for Wumpus World
Perception
Vb,g,t Percept([Breeze,b,g],t) Breeze(t)
Vs,b,t Percept([s,b,Glitter],t) Glitter(t)
Reflex
Vt Glitter(t) BestAction(Grab,t)
Reflex with internal state
Vt Glitter(t) Holding(Gold,t) BestAction(Grab,t)
Holding(Gold,t) can not be observed: keep track of change.
Topic 8: First-Order Logic 30
CS 271, Fall 2007: Professor Padhraic Smyth
Deducing hidden properties
Environment definition:
Vx,y,a,b Adjacent([x,y],[a,b])
[a,b] {[x+1,y], [x-1,y],[x,y+1],[x,y-1]}
Properties of locations:
Vs,t At(Agent,s,t) Breeze(t) Breezy(s)
Squares are breezy near a pit:
Diagnostic rule---infer cause from effect
Vs Breezy(s) n r Adjacent(r,s) Pit(r)
Causal rule---infer effect from cause (model based reasoning)
Vr Pit(r) [Vs Adjacent(r,s) Breezy(s)]
Topic 8: First-Order Logic 31
CS 271, Fall 2007: Professor Padhraic Smyth
Set Theory in First-Order Logic
Can we define set theory using FOL?
- individual sets, union, intersection, etc
Answer is yes.
Basics:
- empty set = constant = { }
- unary predicate Set( ), true for sets
- binary predicates:
x s (true if x is a member of the set x)
s
1
_ s
2
(true if s1 is a subset of s2)
- binary functions:
intersection s
1
s
2
, union s
1
s
2 ,
adjoining {x|s}
Topic 8: First-Order Logic 32
CS 271, Fall 2007: Professor Padhraic Smyth
A Possible Set of FOL Axioms for Set Theory
The only sets are the empty set and sets made by adjoining an
element to a set
Vs Set(s) (s = {} ) v (nx,s
2
Set(s
2
) s = {x|s
2
})
The empty set has no elements adjoined to it
nx,s {x|s} = {}
Adjoining an element already in the set has no effect
Vx,s x s s = {x|s}
The only elements of a set are those that were adjoined into it.
Expressed recursively:
Vx,s x s [ ny,s
2
(s = {y|s
2
} (x = y v x s
2
))]
Topic 8: First-Order Logic 33
CS 271, Fall 2007: Professor Padhraic Smyth
A Possible Set of FOL Axioms for Set Theory
A set is a subset of another set iff all the first sets members are
members of the 2
nd
set
Vs
1
,s
2
s
1
_ s
2
(Vx x s
1
x s
2
)
Two sets are equal iff each is a subset of the other
Vs
1
,s
2
(s
1
= s
2
) (s
1
_ s
2
s
2
_ s
1
)
An object is in the intersection of 2 sets only if a member of both
Vx,s
1
,s
2
x (s
1
s
2
) (x s
1
x s
2
)
An object is in the union of 2 sets only if a member of either
Vx,s
1
,s
2
x (s
1
s
2
) (x s
1
v x s
2
)
Topic 8: First-Order Logic 34
CS 271, Fall 2007: Professor Padhraic Smyth
Knowledge engineering in FOL
1. Identify the task
2.
2. Assemble the relevant knowledge
3.
3. Decide on a vocabulary of predicates, functions, and constants
4.
4. Encode general knowledge about the domain
5.
5. Encode a description of the specific problem instance
6.
6. Pose queries to the inference procedure and get answers
7.
7. Debug the knowledge base
8.
Topic 8: First-Order Logic 35
CS 271, Fall 2007: Professor Padhraic Smyth
The electronic circuits domain
One-bit full adder
Possible queries:
- does the circuit function properly?
- what gates are connected to the first input terminal?
- what would happen if one of the gates is broken?
and so on
Topic 8: First-Order Logic 36
CS 271, Fall 2007: Professor Padhraic Smyth
The electronic circuits domain
1. Identify the task
2.
Does the circuit actually add properly?
2. Assemble the relevant knowledge
3.
Composed of wires and gates; Types of gates (AND, OR, XOR, NOT)
3. Decide on a vocabulary
4.
Alternatives:
Type(X
1
) = XOR (function)
Type(X
1
, XOR) (binary predicate)
XOR(X
1
)
(unary predicate)
Topic 8: First-Order Logic 37
CS 271, Fall 2007: Professor Padhraic Smyth
The electronic circuits domain
4. Encode general knowledge of the domain
5.
Vt
1
,t
2
Connected(t
1
, t
2
) Signal(t
1
) = Signal(t
2
)
Vt Signal(t) = 1 v Signal(t) = 0
1 0
Vt
1
,t
2
Connected(t
1
, t
2
) Connected(t
2
, t
1
)