First-Order Logic Chapter 8
Outline Why FOL? Syntax and semantics for first order logic, Using first order logic, Knowledge engineering in first order logic,  Inference in First order logic,  Unification and lifting
Pros and cons of propositional logic    Propositional logic is  declarative    Propositional logic allows partial/disjunctive/negated information (unlike most data structures and databases) Propositional logic is  compositional : meaning of  B 1,1      P 1,2  is derived from meaning of  B 1,1  and of  P 1,2    Meaning in propositional logic is  context-independent (unlike natural language, where meaning depends on context)    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
First-order logic First-order logic  is a  formal logical system  used in  mathematics ,  philosophy ,  linguistics , and  computer science . It goes by many names, including:  first-order predicate calculus , the  lower predicate calculus ,  quantification theory , and  predicate logic  (a less precise term).  First-order logic is distinguished from  propositional logic  by its use of  quantifiers ; each interpretation of first-order logic includes a  domain of discourse  over which the quantifiers range
First-order logic Whereas propositional logic assumes the world contains  facts , first-order logic (like natural language) assumes the world contains Functions : father of, best friend, one more than, plus, …. Objects: people, houses, numbers, colors, baseball games, wars, … Relations: red, round, prime, brother of, bigger than, part of, comes between,
Syntax of FOL: Basic elements Constants KingJohn, 2, NUS,...  Predicates Brother, >,... Functions Sqrt, LeftLegOf,... Variables x, y, a, b,... Connectives  ,   ,   ,   ,   Equality =  Quantifiers   ,  
Atomic sentences Atomic sentence = predicate  ( term 1 ,..., term n )  or  term 1  = term 2 Term  = function  ( term 1 ,..., term n )  or  constant  or  variable   E.g.,  Brother(KingJohn,RichardTheLionheart) > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))
Complex sentences Complex sentences are made from atomic sentences using connectives  S ,  S 1      S 2 ,  S 1     S 2 ,  S 1      S 2 ,  S 1      S 2 , E.g.  Sibling(KingJohn,Richard)    Sibling(Richard,KingJohn)   >(1,2)     ≤  (1,2) >(1,2)       >(1,2)
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(term 1 ,...,term n )  is true iff the  objects  referred to by  term 1 ,...,term n are in the  relation  referred to by  predicate
Models for FOL: Example
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)     ...
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”
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)     ...
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!
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)
Equality term 1  = term 2   is true under a given interpretation if and only if  term 1   and  term 2   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)]
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)
Using FOL The set domain:   s Set(s)    (s = {} )    (  x,s 2  Set(s 2 )    s = {x|s 2 })  x,s {x|s} = {}  x,s x    s    s = {x|s}  x,s x    s    [   y,s 2 } (s = {y|s 2 }    (x = y    x    s 2 ))]  s 1 ,s 2  s 1     s 2     (  x x    s 1     x    s 2 )  s 1 ,s 2  (s 1  = s 2 )    (s 1     s 2     s 2     s 1 )  x,s 1 ,s 2  x    (s 1     s 2 )    (x    s 1     x    s 2 )  x,s 1 ,s 2  x    (s 1     s 2 )    (x    s 1     x    s 2 )
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 ╞   σ
Knowledge base for the wumpus world Perception  t,s,b Percept([s,b,Glitter],t)    Glitter(t) Reflex  t Glitter(t)    BestAction(Grab,t)
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)    \Exi{r} Adjacent(r,s)    Pit(r)$ Causal  rule---infer effect from cause  r Pit(r)    [  s Adjacent(r,s)    Breezy(s)$ ]
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
The electronic circuits domain One-bit full adder
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(X 1 ) = XOR Type(X 1 , XOR) XOR(X 1 )
The electronic circuits domain Encode general knowledge of the domain  t Signal(t) = 1    Signal(t) = 0 1  ≠  0  t 1 ,t 2  Connected(t 1 , t 2 )    Connected(t 2 , t 1 )  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)) t1,t2 Connected(t1, t2)  Signal(t1) = Signal(t2)
The electronic circuits domain Encode the specific problem instance Type(X 1 ) = XOR  Type(X 2 ) = XOR Type(A 1 ) = AND  Type(A 2 ) = AND Type(O 1 ) = OR Connected(Out(1,X 1 ),In(1,X 2 )) Connected(In(1,C 1 ),In(1,X 1 )) Connected(Out(1,X 1 ),In(2,A 2 )) Connected(In(1,C 1 ),In(1,A 1 )) Connected(Out(1,A 2 ),In(1,O 1 ))  Connected(In(2,C 1 ),In(2,X 1 )) Connected(Out(1,A 1 ),In(2,O 1 ))  Connected(In(2,C 1 ),In(2,A 1 )) Connected(Out(1,X 2 ),Out(1,C 1 ))  Connected(In(3,C 1 ),In(2,X 2 )) Connected(Out(1,O 1 ),Out(2,C 1 ))  Connected(In(3,C 1 ),In(1,A 2 ))
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?   i 1 ,i 2 ,i 3 ,o 1 ,o 2  Signal(In(1,C_1)) = i 1     Signal(In(2,C 1 )) = i 2     Signal(In(3,C 1 )) = i 3     Signal(Out(1,C 1 )) = o 1     Signal(Out(2,C 1 )) = o 2 Debug the knowledge base May have omitted assertions like 1  ≠  0
Summary First-order logic: objects and relations are semantic primitives syntax: constants, functions, predicates, equality, quantifiers Increased expressive power: sufficient to define wumpus world

Fol

  • 1.
  • 2.
    Outline Why FOL?Syntax and semantics for first order logic, Using first order logic, Knowledge engineering in first order logic, Inference in First order logic, Unification and lifting
  • 3.
    Pros and consof propositional logic  Propositional logic is declarative  Propositional logic allows partial/disjunctive/negated information (unlike most data structures and databases) Propositional logic is compositional : meaning of B 1,1  P 1,2 is derived from meaning of B 1,1 and of P 1,2  Meaning in propositional logic is context-independent (unlike natural language, where meaning depends on context)  Propositional logic has very limited expressive power (unlike natural language) E.g., cannot say &quot;pits cause breezes in adjacent squares“ except by writing one sentence for each square
  • 4.
    First-order logic First-orderlogic is a formal logical system used in mathematics , philosophy , linguistics , and computer science . It goes by many names, including: first-order predicate calculus , the lower predicate calculus , quantification theory , and predicate logic (a less precise term). First-order logic is distinguished from propositional logic by its use of quantifiers ; each interpretation of first-order logic includes a domain of discourse over which the quantifiers range
  • 5.
    First-order logic Whereaspropositional logic assumes the world contains facts , first-order logic (like natural language) assumes the world contains Functions : father of, best friend, one more than, plus, …. Objects: people, houses, numbers, colors, baseball games, wars, … Relations: red, round, prime, brother of, bigger than, part of, comes between,
  • 6.
    Syntax of FOL:Basic elements Constants KingJohn, 2, NUS,... Predicates Brother, >,... Functions Sqrt, LeftLegOf,... Variables x, y, a, b,... Connectives  ,  ,  ,  ,  Equality = Quantifiers  , 
  • 7.
    Atomic sentences Atomicsentence = predicate ( term 1 ,..., term n ) or term 1 = term 2 Term = function ( term 1 ,..., term n ) or constant or variable E.g., Brother(KingJohn,RichardTheLionheart) > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))
  • 8.
    Complex sentences Complexsentences are made from atomic sentences using connectives  S , S 1  S 2 , S 1  S 2 , S 1  S 2 , S 1  S 2 , E.g. Sibling(KingJohn,Richard)  Sibling(Richard,KingJohn) >(1,2)  ≤ (1,2) >(1,2)   >(1,2)
  • 9.
    Truth in first-orderlogic 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(term 1 ,...,term n ) is true iff the objects referred to by term 1 ,...,term n are in the relation referred to by predicate
  • 10.
  • 11.
    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)  ...
  • 12.
    A common mistaketo 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”
  • 13.
    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)  ...
  • 14.
    Another common mistaketo 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!
  • 15.
    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)
  • 16.
    Equality term 1 = term 2 is true under a given interpretation if and only if term 1 and term 2 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)]
  • 17.
    Using FOL Thekinship 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)
  • 18.
    Using FOL Theset domain:  s Set(s)  (s = {} )  (  x,s 2 Set(s 2 )  s = {x|s 2 })  x,s {x|s} = {}  x,s x  s  s = {x|s}  x,s x  s  [  y,s 2 } (s = {y|s 2 }  (x = y  x  s 2 ))]  s 1 ,s 2 s 1  s 2  (  x x  s 1  x  s 2 )  s 1 ,s 2 (s 1 = s 2 )  (s 1  s 2  s 2  s 1 )  x,s 1 ,s 2 x  (s 1  s 2 )  (x  s 1  x  s 2 )  x,s 1 ,s 2 x  (s 1  s 2 )  (x  s 1  x  s 2 )
  • 19.
    Interacting with FOLKBs 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 ╞ σ
  • 20.
    Knowledge base forthe wumpus world Perception  t,s,b Percept([s,b,Glitter],t)  Glitter(t) Reflex  t Glitter(t)  BestAction(Grab,t)
  • 21.
    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)  \Exi{r} Adjacent(r,s)  Pit(r)$ Causal rule---infer effect from cause  r Pit(r)  [  s Adjacent(r,s)  Breezy(s)$ ]
  • 22.
    Knowledge engineering inFOL 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
  • 23.
    The electronic circuitsdomain One-bit full adder
  • 24.
    The electronic circuitsdomain 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(X 1 ) = XOR Type(X 1 , XOR) XOR(X 1 )
  • 25.
    The electronic circuitsdomain Encode general knowledge of the domain  t Signal(t) = 1  Signal(t) = 0 1 ≠ 0  t 1 ,t 2 Connected(t 1 , t 2 )  Connected(t 2 , t 1 )  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)) t1,t2 Connected(t1, t2)  Signal(t1) = Signal(t2)
  • 26.
    The electronic circuitsdomain Encode the specific problem instance Type(X 1 ) = XOR Type(X 2 ) = XOR Type(A 1 ) = AND Type(A 2 ) = AND Type(O 1 ) = OR Connected(Out(1,X 1 ),In(1,X 2 )) Connected(In(1,C 1 ),In(1,X 1 )) Connected(Out(1,X 1 ),In(2,A 2 )) Connected(In(1,C 1 ),In(1,A 1 )) Connected(Out(1,A 2 ),In(1,O 1 )) Connected(In(2,C 1 ),In(2,X 1 )) Connected(Out(1,A 1 ),In(2,O 1 )) Connected(In(2,C 1 ),In(2,A 1 )) Connected(Out(1,X 2 ),Out(1,C 1 )) Connected(In(3,C 1 ),In(2,X 2 )) Connected(Out(1,O 1 ),Out(2,C 1 )) Connected(In(3,C 1 ),In(1,A 2 ))
  • 27.
    The electronic circuitsdomain Pose queries to the inference procedure What are the possible sets of values of all the terminals for the adder circuit?  i 1 ,i 2 ,i 3 ,o 1 ,o 2 Signal(In(1,C_1)) = i 1  Signal(In(2,C 1 )) = i 2  Signal(In(3,C 1 )) = i 3  Signal(Out(1,C 1 )) = o 1  Signal(Out(2,C 1 )) = o 2 Debug the knowledge base May have omitted assertions like 1 ≠ 0
  • 28.
    Summary First-order logic:objects and relations are semantic primitives syntax: constants, functions, predicates, equality, quantifiers Increased expressive power: sufficient to define wumpus world