Notes
Slide Show
Outline
1
First-Order Logic
  • Chapter 8
2
Outline
  • Why FOL?
  • Syntax and semantics of FOL
  • Using FOL
  • Wumpus world in FOL
  • Knowledge engineering in FOL
3
Pros and cons of propositional logic
  • J Propositional logic is declarative
  • J Propositional logic allows partial/disjunctive/negated information
    • (unlike most data structures and databases)
  • J Propositional logic is compositional:
    • meaning of B1,1 Ù P1,2 is derived from meaning of B1,1 and of P1,2
  • J Meaning in propositional logic is context-independent
    • (unlike natural language, where meaning depends on context)
  • L Propositional logic has very limited expressive power
    • (unlike natural language)
    • E.g., cannot say "pits cause breezes in adjacent squares“
      •  except by writing one sentence for each square
4
First-order logic
  • Whereas propositional logic assumes the world contains facts,
  • first-order logic (like natural language) assumes the world contains
    • Objects: people, houses, numbers, colors, baseball games, wars, …
    • Relations: red, round, prime, brother of, bigger than, part of, comes between, …
    • Functions: father of, best friend, one more than, plus, …
5
Syntax of FOL: Basic elements
  • Constants KingJohn, 2, NUS,...
  • Predicates Brother, >,...
  • Functions Sqrt, LeftLegOf,...
  • Variables x, y, a, b,...
  • Connectives Ø, Þ, Ù, Ú, Û
  • Equality =
  • Quantifiers  ", $
6
Atomic sentences
  • Atomic sentence = predicate (term1,...,termn) or term1 = term2


  • Term            = function (term1,...,termn) or constant or variable


  • E.g., Brother(KingJohn,RichardTheLionheart) > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))
7
Complex sentences
  • Complex sentences are made from atomic sentences using connectives
  • ØS, S1 Ù S2, S1 Ú S2, S1 Þ S2, S1 Û S2,


  • E.g. Sibling(KingJohn,Richard) Þ Sibling(Richard,KingJohn)
  •      >(1,2) Ú ≤ (1,2)
  •      >(1,2) Ù Ø >(1,2)
8
Truth in first-order logic
  • Sentences are true with respect to a model and an interpretation


  • Model contains objects (domain elements) and relations among them


  • Interpretation specifies referents for
    • constant symbols → objects
    • predicate symbols → relations
    • function symbols → functional relations


  • An atomic sentence predicate(term1,...,termn) is true
  • iff the objects referred to by term1,...,termn
  • are in the relation referred to by predicate
9
Models for FOL: Example
10
Universal quantification
  • "<variables> <sentence>


  • Everyone at NUS is smart:
  • "x At(x,NUS) Þ Smart(x)


  • "x P is true in a model m iff P is true with x being each possible object in the model


  • Roughly speaking, equivalent to the conjunction of instantiations of P
      • At(KingJohn,NUS) Þ Smart(KingJohn)
      • Ù At(Richard,NUS) Þ  Smart(Richard)
      • Ù At(NUS,NUS) Þ Smart(NUS)
      • Ù ...
11
A common mistake to avoid
  • Typically, Þ is the main connective with "
  • Common mistake: using Ù as the main connective with ":
    • "x At(x,NUS) Ù Smart(x)
    • means “Everyone is at NUS and everyone is smart”
12
Existential quantification
  • $<variables> <sentence>


  • Someone at NUS is smart:
  • $x At(x,NUS) Ù Smart(x)


  • $x P is true in a model m iff P is true with x being some possible object in the model


  • Roughly speaking, equivalent to the disjunction of instantiations of P
    • At(KingJohn,NUS) Ù Smart(KingJohn)
    • Ú At(Richard,NUS) Ù Smart(Richard)
    • Ú At(NUS,NUS) Ù Smart(NUS)
    • Ú ...
13
Another common mistake to avoid
  • Typically, Ù is the main connective with $


  • Common mistake: using Þ as the main connective with $:
  • $x At(x,NUS) Þ Smart(x)
  • is true if there is anyone who is not at NUS!
14
Properties of quantifiers
  • "x "y is the same as "y "x
  • $x $y is the same as $y $x


  • $x "y is not the same as "y $x
  • $x "y Loves(x,y)
    • “There is a person who loves everyone in the world”
  • "y $x Loves(x,y)
    • “Everyone in the world is loved by at least one person”

  • Quantifier duality: each can be expressed using the other
  • "x Likes(x,IceCream) Ø$x ØLikes(x,IceCream)
  • $x Likes(x,Broccoli) Ø"x ØLikes(x,Broccoli)
15
Equality
  • term1 = term2 is true under a given interpretation if and only if term1 and term2 refer to the same object


  • E.g., definition of Sibling in terms of Parent:
    • "x,y Sibling(x,y) Û [Ø(x = y) Ù  $m,f Ø (m = f) Ù Parent(m,x) Ù Parent(f,x) Ù Parent(m,y) Ù  Parent(f,y)]
16
Using FOL
  • The kinship domain:
  • Brothers are siblings
    • "x,y Brother(x,y) Þ Sibling(x,y)
  • One's mother is one's female parent
    • "m,c Mother(c) = m Û (Female(m) Ù Parent(m,c))
  • “Sibling” is symmetric
    • "x,y Sibling(x,y) Û Sibling(y,x)
17
Using FOL
  • The set domain:
  • "s Set(s) Û (s = {} ) Ú ($x,s2 Set(s2) Ù s = {x|s2})
  • Ø$x,s {x|s} = {}
  • "x,s x Î s Û s = {x|s}
  • "x,s x Î s Û [ $y,s2} (s = {y|s2} Ù (x = y Ú x Î s2))]
  • "s1,s2 s1 Í s2 Û ("x x Î s1 Þ x Î s2)
  • "s1,s2 (s1 = s2) Û (s1 Í s2 Ù s2 Í s1)
  • "x,s1,s2 x Î (s1 Ç s2) Û (x Î s1 Ù x Î s2)
  • "x,s1,s2 x Î (s1 È s2) Û (x Î s1 Ú x Î s2)
18
Interacting with FOL KBs
  • Suppose a wumpus-world agent is using an FOL KB and perceives a smell and a breeze (but no glitter) at t=5:
    • Tell(KB,Percept([Smell,Breeze,None],5))
    • Ask(KB,$a BestAction(a,5))


  • I.e., does the KB entail some best action at t=5?


  • Answer: Yes, {a/Shoot}  ← substitution (binding list)
  • Given a sentence S and a substitution σ,
  • Sσ denotes the result of plugging σ into S; e.g.,
    • S = Smarter(x,y)
    • σ = {x/Hillary,y/Bill}
    • Sσ = Smarter(Hillary,Bill)

  • Ask(KB,S) returns some/all σ such that KB╞ σ
19
Knowledge base for the wumpus world
  • Perception
    • "t,s,b Percept([s,b,Glitter],t) Þ Glitter(t)


  • Reflex
    • "t Glitter(t) Þ BestAction(Grab,t)
20
Deducing hidden properties
  • "x,y,a,b Adjacent([x,y],[a,b]) Û
  • [a,b] Î {[x+1,y], [x-1,y],[x,y+1],[x,y-1]}


  • Properties of squares:
  • "s,t At(Agent,s,t) Ù Breeze(t) Þ Breezy(s)
  • Squares are breezy near a pit:
    • Diagnostic rule - infer cause from effect
      • "s Breezy(s) Þ $r Adjacent(r,s) Ù Pit(r)
    • Causal rule - infer effect from cause
      • "r Pit(r) Þ ["s Adjacent(r,s) Þ Breezy(s) ]
21
Knowledge engineering in FOL
  • Identify the task
  • Assemble the relevant knowledge
  • Decide on a vocabulary of predicates, functions, and constants
  • Encode general knowledge about the domain
  • Encode a description of the specific problem instance
  • Pose queries to the inference procedure and get answers
  • Debug the knowledge base
22
The electronic circuits domain
  • One-bit full adder


23
The electronic circuits domain
  • Identify the task
    • Does the circuit actually add properly? (circuit verification)
  • Assemble the relevant knowledge
    • Composed of wires and gates; Types of gates (AND, OR, XOR, NOT)
    • Irrelevant: size, shape, color, cost of gates
  • Decide on a vocabulary
    • Alternatives:
      • Type(X1) = XOR
      • Type(X1, XOR)
      • XOR(X1)
24
The electronic circuits domain
  • Encode general knowledge of the domain
    • "t1,t2 Connected(t1, t2) Þ Signal(t1) = Signal(t2)
    • "t Signal(t) = 1 Ú Signal(t) = 0
    • 1 ≠ 0
    • "t1,t2 Connected(t1, t2) Þ Connected(t2, t1)
    • "g Type(g) = OR Þ Signal(Out(1,g)) = 1 Û $n Signal(In(n,g)) = 1
    • "g Type(g) = AND Þ Signal(Out(1,g)) = 0 Û $n Signal(In(n,g)) = 0
    • "g Type(g) = XOR Þ Signal(Out(1,g)) = 1 Û Signal(In(1,g)) ≠ Signal(In(2,g))
    • "g Type(g) = NOT Þ Signal(Out(1,g)) ≠ Signal(In(1,g))
25
The electronic circuits domain
  • Encode the specific problem instance
    • Type(X1) = XOR Type(X2) = XOR
    • Type(A1) = AND Type(A2) = AND
    • Type(O1) = OR


    • Connected(Out(1,X1),In(1,X2)) Connected(In(1,C1),In(1,X1))
    • Connected(Out(1,X1),In(2,A2)) Connected(In(1,C1),In(1,A1))
    • Connected(Out(1,A2),In(1,O1)) Connected(In(2,C1),In(2,X1))
    • Connected(Out(1,A1),In(2,O1)) Connected(In(2,C1),In(2,A1))
    • Connected(Out(1,X2),Out(1,C1)) Connected(In(3,C1),In(2,X2))
    • Connected(Out(1,O1),Out(2,C1)) Connected(In(3,C1),In(1,A2))
26
The electronic circuits domain
  • Pose queries to the inference procedure
    • What are the possible sets of values of all the terminals for the adder circuit?
  • $i1,i2,i3,o1,o2 Signal(In(1,C1)) = i1 Ù Signal(In(2,C1)) = i2 Ù Signal(In(3,C1)) = i3 Ù Signal(Out(1,C1)) = o1 Ù Signal(Out(2,C1)) = o2


  • Debug the knowledge base
    • May have omitted assertions like 1 ≠ 0
27
Summary
  • First-order logic:
    • objects and relations are semantic primitives
    • syntax: constants, functions, predicates, equality, quantifiers


  • Increased expressive power: sufficient to define wumpus world