First-order logic

Download Report

Transcript First-order logic

Moving on to First-Order Logic

Language, Meaning, Logic USEM 40a James Pustejovsky

Outline

• Why FOL?

• Syntax and semantics of FOL • Examples of FOL

Pros and cons of propositional logic

  Propositional logic allows partial/disjunctive/negated information – (unlike most data structures and databases)  Propositional logic is compositional : – meaning of

B

P

is derived from meaning of

B

and of

P

 Propositional logic is declarative 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 “open windows cause breezes in adjacent rooms” • except by writing one sentence for each room

First-order logic

• First-order logic (FOL) models the world in terms of – – –

Objects,

which are things with individual identities

Properties

of objects that distinguish them from other objects

Relations

that hold among sets of objects –

Functions,

which are a subset of relations where there is only one “value” for any given “input” • Examples: – Objects: Students, lectures, companies, cars ... – Relations: Brother-of, bigger-than, outside, part-of, has-color, occurs-after, owns, visits, precedes, ... – Properties: blue, oval, even, large, ... – Functions: father-of, best-friend, second-half, one-more-than ...

Syntax of FOL: Basic elements

• Constants • Predicates Menino, 2, Brandeis,... Brother, >,...

• Functions Sqrt, LeftLegOf,...

• Variables • Connectives x, y, a, b,...

 ,  ,  ,  ,  • Equality • Quantifiers =  , 

Atomic sentences

Atomic sentence or

term 1

=

predicate

(

term 1

,...,

term n

)

= term 2

Term or =

function

(

term 1

,...,

term n

)

constant

or

variable

• • E.g.,

Brother(Jeb,GeorgeW) (Length(LeftLegOf(GeorgeW)) > Length(LeftLegOf(Jeb)))

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(Jeb,GeorgeW)

Sibling(GeorgeW,Jeb)

>(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 function symbols → → relations 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

Constants, Functions, Predicates

• • •

Constant symbols,

– Mary – 3 – Green which represent individuals in the world

Function symbols,

which map individuals to individuals – father-of(Mary) = John – color-of(Sky) = Blue

Predicate symbols,

which map individuals to truth values – greater(5,3) – green(Grass) – color(Grass, Green)

Variables, Connectives, Quantifiers

• •

Variable symbols

– E.g., x, y , foo •

Connectives

– Same as in PL: not (  ), and (  ), or (  ), implies (  ), if and only if (biconditional  )

Quantifiers

– Universal 

x

or

(Ax)

– Existential 

x

or

(Ex)

Quantifiers

• •

Universal quantification

– (  x)P(x) means that P holds for

all

domain associated with that variable – E.g., (  x) dolphin(x)  mammal(x) values of x in the

Existential

– ( 

quantification

x)P(x) means that P holds for

some

domain associated with that variable – E.g., (  x) mammal(x)  lays-eggs(x) value of x in the – Permits one to make a statement about some object without naming it

Sentences are built from terms and atoms

• A

term

(denoting a real-world individual) is a constant symbol, a variable symbol, or an n-place function of n terms. x and f(x 1 , ..., x n ) are terms, where each x i is a term. A term with no variables is a

ground term

• An

atom

(which has value true or false) is either an n-place predicate of n terms, or,  P, P  Q, P  Q, P  Q, P  Q where P and Q are atoms • A

sentence

is an atom, or, if P is a sentence and x is a variable, then (  x)P and (  x)P are sentences • A

well-formed formula

(

wff

) is a sentence containing no “free” variables. That is, all variables are “bound” by universal or existential quantifiers. (  x)P(x,y) has x bound as a universally quantified variable, but y is free.

Translating English to FOL

Every gardener likes the sun.

(  x) gardener(x)  likes(x,Sun)

You can fool some of the people all of the time.

(  x)(  t) (person(x) ^ time(t))  can-fool(x,t)

You can fool all of the people some of the time.

(  x)(  t) (person(x) ^ time(t)  can-fool(x,t)

All purple mushrooms are poisonous

.

(  x) (mushroom(x) ^ purple(x))  poisonous(x)

No purple mushroom is poisonous.

 (  x) purple(x) ^ mushroom(x) ^ poisonous(x) (  x) (mushroom(x) ^ purple(x))   poisonous(x)

There are exactly two purple mushrooms

.

(  x)(  y) mushroom(x) ^ purple(x) ^ mushroom(y) ^ purple(y) ^  (x=y) ^ (  z) (mushroom(z) ^ purple(z))  ((x=z)  (y=z))

Clinton is not tall.

 tall(Clinton)

X is above Y if X is on directly on top of Y or there is a pile of one or more other objects directly on top of one another starting with X and ending with Y.

(  x)(  y) above(x,y) ↔ (on(x,y) v (  z) (on(x,z) ^ above(z,y)))

Quantifiers

• Universal quantifiers are often used with “implies” to form “rules”: (  x) student(x)  smart(x) means “All students are smart” • Universal quantification is

rarely

used to make blanket statements about every individual in the world: (  x)student(x)  smart(x) means “Everyone in the world is a student and is smart” • Existential quantifiers are usually used with “and” to specify a list of properties about an individual: (  x) student(x)  smart(x) means “There is a student who is smart” • A common mistake is to represent this English sentence as the FOL sentence: (  x) student(x)  smart(x) – But what happens when there is a person who is

not

a student?

Quantifier Scope

• Switching the order of universal quantifiers

does not

change the meaning: – (  x)(  y)P(x,y)  (  y)(  x) P(x,y) • Similarly, you can switch the order of existential quantifiers: – (  x)(  y)P(x,y)  (  y)(  x) P(x,y) • Switching the order of universals and existentials

does

– Everyone likes someone: (  x)(  y) likes(x,y) – Someone is liked by everyone: (  y)(  x) likes(x,y) change meaning:

Connections between All and Exists

We can relate sentences involving

using De Morgan’s laws: and

(

x)

P(x)

 

(

x) P(x)

(

x) P

(

x)

P(x) (

x) P(x)

 

(

x)

P(x) (

x) P(x)

 

(

x)

P(x)

Quantified inference rules

• Universal instantiation –  x P(x)  P(A) • Universal generalization – P(A)  P(B) …   x P(x) • Existential instantiation –  x P(x)  P(F) • Existential generalization – P(A)   x P(x) 

skolem constant F

An example from Monty Python

FIRST VILLAGER:

her?

We have found a witch. May we burn • • • • • • •

ALL:

A witch! Burn her!

BEDEVERE:

Why do you think she is a witch?

SECOND VILLAGER: B:

A newt?

ALL:

Burn her anyway.

She turned

me

into a newt.

V2 (after looking at himself for some time) : I got better.

B:

Quiet! Quiet! There are ways of telling whether she is a witch.

Monty Python cont.

• • • • • • • •

B:

Tell me… what do you do with witches?

ALL:

Burn them!

B: V4:

And what do you burn, apart from witches?

…wood?

B:

So

why do witches burn

?

V2 (pianissimo) :

because they’re made of wood?

B:

Good.

ALL:

I see. Yes, of course.

Monty Python cont.

• • • • • • •

B: So how can we tell if she is made of wood?

V1: Make a bridge out of her.

• • B: Ah… but can you not also make bridges out of stone?

ALL:

Yes, of course… um… er…

B: ALL: B:

Does wood sink in water?

ALL:

No, no, it floats. Throw her in the pond.

Wait. Wait… tell me, what also floats on water?

Bread? No, no no. Apples… gravy… very small rocks…

B:

No, no, no,

Monty Python cont.

• • • • • •

KING ARTHUR:

A duck!

(They all turn and look at Arthur. Bedevere looks up, very impressed.)

B:

Exactly. So… logically… V1 (beginning to pick up the thread) :

If she… weighs the same as a duck… she’s made of wood

.

B:

And therefore?

ALL: A witch!

Monty Python Fallacy #1

• •  x witch(x)   x wood(x)  burns(x) burns(x) • • ------------------------------   z witch(x)  wood(x) • p  • r  q q • -------- • p  r Fallacy: Affirming the conclusion

Monty Python Near-Fallacy #2

• wood(x)  bridge(x) • • -----------------------------  bridge(x)  wood(x) • B: Ah… but can you not also make bridges out of stone?

Monty Python Fallacy #3

• •  x wood(x)  floats(x)  x duck-weight (x)  floats(x) • • ------------------------------   x duck-weight(x)  wood(x) • p  • r  q q • • ----------  r  p

Monty Python Fallacy #4

•  z light(z)  • light(W) wood(z) • • -----------------------------  wood(W) ok…………..

• witch(W)  wood(W) applying universal instan.

to fallacious conclusion #1 • wood(W) • • --------------------------------  witch(z)

Extensions to FOL

• • • •

Higher-order logic

– Quantify over relations

Representing functions with the lambda operator (

) Expressing uniqueness

!,

Sorted logic

Higher-order logic

• In FOL, variables can only range over objects • HOL allows us to quantify over relations • More expressive, but undecidable • Example: “two functions are equal iff they produce the same value for all arguments” –  f  g (f = g)  (  x f(x) = g(x)) • Example:  r transitive( r )  (  x  y  z r(x,y) ^ r(y,z)  r(x,z))

Example: A simple genealogy KB by FOL

• • •

Build a small genealogy knowledge base using FOL that

– contains facts of immediate family relations (spouses, parents, etc.) – contains definitions of more complex relations (ancestors, relatives) – is able to answer queries about relationships between people

Predicates:

– parent(x, y), child(x, y), father(x, y), daughter(x, y), etc.

– spouse(x, y), husband(x, y), wife(x,y) – ancestor(x, y), descendant(x, y) – male(x), female(y) – relative(x, y)

Facts:

– husband(Joe, Mary), son(Fred, Joe) – spouse(John, Nancy), male(John), son(Mark, Nancy) – father(Jack, Nancy), daughter(Linda, Jack) – daughter(Liz, Linda) – etc.

• •

Rules for genealogical relations

– (  x,y) parent(x, y) ↔ child (y, x) – ( ( (  x,y) father(x, y) ↔ parent(x, y)    x,y) daughter(x, y) ↔ child(x, y) x,y) husband(x, y) ↔ spouse(x, y) (  x,y) spouse(x, y) ↔ spouse(y, x) (

spouse relation is symmetric

) – (  x,y) parent(x, y)  ancestor(x, y) (  x,y)(  z) parent(x, z)  – (  x,y)(  z) ancestor(z, x)  male(x) (similarly for mother(x, y))   female(x) (similarly for son(x, y)) ancestor(z, y) male(x) (similarly for wife(x, y))  – (  x,y) descendant(x, y) ↔ ancestor(y, x) ancestor(x, y) ancestor(z, y)  relative(x, y) (  (related by common ancestry) x,y) spouse(x, y)  relative(x, y) (related by marriage) (  x,y)(  z) relative(z, x)  relative(z, y)  relative(x, y) ( (  x,y) relative(x, y) ↔ relative(y, x)

(symmetric

)

transitive

)

Queries

– ancestor(Jack, Fred) /* the answer is yes */ – relative(Liz, Joe) /* the answer is yes */ – relative(Nancy, Matthew) /* no answer in general, no if under closed world assumption */ – (  z) ancestor(z, Fred)  ancestor(z, Liz)

Semantics of FOL

• • • •

Domain M :

the set of all objects in the world (of interest)

Interpretation I :

includes – Assign each constant to an object in M – Define each function of n arguments as a mapping M n => M – Define each predicate of n arguments as a mapping M n => {T, F} – Therefore, every ground predicate with any instantiation will have a truth value – In general there is an infinite number of interpretations because |M| is infinite

Define logical connectives Define semantics of (

: ~, ^, v, =>, <=> x) and (

x)

as in PL – (  x) P(x) is true iff P(x) is true under all interpretations – (  x) P(x) is true iff P(x) is true under some interpretation

Model :

an interpretation of a set of sentences such that every sentence is

True

• •

A sentence is

satisfiable

if it is true under some interpretation – –

valid

if it is true under all possible interpretations

inconsistent

if there does not exist any interpretation under which the sentence is true

Logical consequence

models of X

:

S |= X if all models of S are also

Axioms, definitions and theorems

Axioms

are facts and rules that attempt to capture all of the (important) facts and concepts about a domain; axioms can be used to prove

theorems

–Mathematicians don’t want any unnecessary (dependent) axioms –ones that can be derived from other axioms –Dependent axioms can make reasoning faster, however –Choosing a good set of axioms for a domain is a kind of design problem •A

definition

of a predicate is of the form “p(X) ↔ …” and can be decomposed into two parts –

Necessary

Sufficient

description: “p(x)  description “p(x)  …” …” –Some concepts don’t have complete definitions (e.g., person(x))

More on definitions

• Examples: define father(x, y) by parent(x, y) and male(x) – parent(x, y) is a necessary (

but not sufficient

) description of father(x, y) • father(x, y)  parent(x, y) – parent(x, y) ^ male(x) ^ age(x, 35) is a

sufficient

(

but not necessary

) description of father(x, y): father(x, y)  parent(x, y) ^ male(x) ^ age(x, 35) – parent(x, y) ^ male(x) is a

necessary and sufficient

description of father(x, y) parent(x, y) ^ male(x) ↔ father(x, y)

S(x) is a necessary condition of P(x ) S(x) is a sufficient condition of P(x ) S(x) is a necessary and sufficient condition of P(x )

More on definitions

P(x) S(x) (  x) P(x) => S(x ) S(x) P(x) (  x) P(x) <= S(x ) P(x) S(x) (  x) P(x) <=> S(x )

Higher-order logic

• FOL only allows to quantify over variables, and variables can only range over objects. • HOL allows us to quantify over relations • Example: (quantify over functions) “two functions are equal iff they produce the same value for all arguments”  f  g (f = g)  (  x f(x) = g(x)) • Example: (quantify over predicates)  r transitive( r )  (  xyz) r(x,y)  r(y,z)  r(x,z)) • More expressive, but undecidable.

Expressing uniqueness

• Sometimes we want to say that there is a single, unique object that satisfies a certain condition • “There exists a unique x such that king(x) is true” – – –  x king(x)   y (king(y)   x king(x)   y (king(y)  x=y) x  y)  ! x king(x) • “Every country has exactly one ruler” –  c country(c)   ! r ruler(c,r) • Iota operator: “  is true” x P(x)” means “the unique x such that p(x) – “The unique ruler of Freedonia is dead” – dead(  x ruler(freedonia,x))

Notational differences

Different symbols

– for

and, or, not, implies, ...

         – p v (q ^ r) – p + (q * r) – etc •

Prolog

cat(X) :- furry(X), meows (X), has(X, claws) •

Lispy notations

(forall ?x (implies (and (furry ?x) (meows ?x) (has ?x claws)) (cat ?x)))