View
229
Download
3
Category
Preview:
Citation preview
Slides adapted fromMichael P. Frank's course based on the textDiscrete Mathematics & Its Applications
(5th Edition)by Kenneth H. Rosen
University of Aberdeen, Computing Science
CS2013Mathematics for Computing
ScienceAdam Wyner
Predicate Logic III
Fall 2013 Frank / van Deemter / Wyner 3
Agenda
• Formal Evaluation• Nested Quantifiers• Quantifier equivalences• Defining (or not) other quantifiers
Fall 2013 Frank / van Deemter / Wyner 4
Formal Evaluation - B(bill')
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• B(bill') is T in M1 iff I(bill') I(B) is T in M1 iff bill {bill, jill} is T in M1.
• Work from bottom to top.
Fall 2013 Frank / van Deemter / Wyner 5
Formal Evaluation - x B(x)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• x B(x) is T in M1 iff there is an a where I(a) D such that B(x)(x := a) is T in M1– where (x := bill'), B(x) is B(bill'). B(bill') is T in M1 iff....– where (x := jill'), B(x) is B(jill'). B(jill') is T in M1 iff....– where (x := mary'), B(x) is B(mary'). B(mary') is T in M1 iff....
• Look in the 'where' clauses. Is there some a that makes B(x)(x := a) is T in M1?
• Work from bottom to top.
Fall 2013 Frank / van Deemter / Wyner 6
Formal Evaluation - x B(x)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• x B(x) is T in M1 iff for every a where I(a) D, B(x)(x := a) is T in M1– where (x := bill'), B(x) is B(bill'). B(bill') is T in M1 iff....– where (x := jill'), B(x) is B(jill'). B(jill') is T in M1 iff....– where (x := mary'), B(x) is B(mary'). B(mary') is T in M1 iff....
• Look in the 'where' clauses. Is it so that for every a, B(x)(x := a) is T in M1?
• Work from bottom to top.
Fall 2013 Frank / van Deemter / Wyner 7
Formal Evaluation - x (G(x) B(x))
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• x (G(x) B(x)) is T in M1 iff for every a where I(a) D, (G(x) B(x))(x := a) is T in M1– where (x:=bill'), (G(x) B(x)) is (G(bill') B(bill')); (G(bill')
B(bill')) is T in M1 iff G(bill') is F in M1 or B(bill') is T in M1.– where (x:=jill'), (G(x) B(x)) is (G(jill') B(jill')); (G(jill')
B(jill')) is T in M1 iff G(jill') is F in M1 or B(jill') is T in M1.– where (x:=mary'), (G(x) B(x)) is (G(jill') B(jill')); (G(jill')
B(jill')) is T in M1 iff G(jill') is F in M1 or B(jill') is T in M1.• Are all true?
Fall 2013 Frank / van Deemter / Wyner 8
Nested Quantifiers
Example: Let D for x and y be people.
Let L(x,y) = x likes y (a predicate with 2 free variables)
y L(x,y) = "There is someone whom x likes" = "x likes someone". (A predicate with 1 free variable, x)
x (y L(x,y)) = "Everyone has someone whom they like" = "everyone likes someone". (A real proposition; no free variables left)
Fall 2013 Frank / van Deemter / Wyner 9
Nested Quantifiers
Assume S(x,y) means “x sees y”
D = {bill, phil, jill, mell}
What does xS(x,bill') mean?
"For every x, x sees bill'"
In other words, "Everyone sees Bill."
Fall 2013 Frank / van Deemter / Wyner 10
Formal Evaluation - x y A(x,y)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• x y A(x,y) is T in M1 iff for every a where I(a) D, y A(x,y)) (x:=a) is T in M1;
• y A(x,y)) (x:=a) is T in M1 iff there is some b where I(b) D such that A(x,y)) (x:=a) (x:=b) is T in M1.
Fall 2013 Frank / van Deemter / Wyner 11
Formal Evaluation - x y A(x,y)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• A(x,y) is true where (x:=bill') and y is some constant?– where (x:=bill') (y:=bill'), A(x,y) is A(bill',bill'); A(bill',bill') is T in
M1 iff (bill, bill) I(A).– where (x:=bill') (y:=jill'), A(x,y) is A(bill',jill'); A(bill',jill') is T in
M1 iff (bill, jill) I(A).– where (x:=bill') (y:=mary'), A(x,y) is A(bill',mary'); A(bill',mary')
is T in M1 iff (bill, mary) I(A).
• Is one of these true?
Fall 2013 Frank / van Deemter / Wyner 12
Formal Evaluation - x y A(x,y)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• A(x,y) is true where (x:=jill') and y is some constant?– where (x:=jill') (y:=bill'), A(x,y) is A(jill',bill'); A(jill',bill') is T in
M1 iff (jill, bill) I(A).– where (x:=jill') (y:=jill'), A(x,y) is A(jill',jill'); A(jill',jill') is T in
M1 iff (jill, jill) I(A).– where (x:=jill') (y:=mary'), A(x,y) is A(jill',mary'); A(jill',mary') is
T in M1 iff (jill, mary) I(A).
• Is one of these true?
Fall 2013 Frank / van Deemter / Wyner 13
Formal Evaluation - x y A(x,y)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• A(x,y) is true where (x:=mary') and y is some constant?– where (x:=mary') (y:=bill'), A(x,y) is A(mary',bill'); A(mary',bill')
is T in M1 iff (mary, bill) I(A).– where (x:=mary') (y:=jill'), A(x,y) is A(mary',jill'); A(mary',jill') is
T in M1 iff (mary, jill) I(A).– where (x:=mary') (y:=mary'), A(x,y) is A(mary',mary');
A(mary',mary') is T in M1 iff (mary, mary) I(A).
• Is one of these true?
Fall 2013 Frank / van Deemter / Wyner 14
Formal Evaluation - x y A(x,y)
• Suppose M1 = (D,I) where D={bill, jill, mary}
I(jill') = jill, I(mary') = mary, I(bill') = bill, I(B)={bill, jill}I(G)={jill}, I(A)={(bill, jill), (mary,bill), (jill, jill)}
• x y A(x,y) is true in M1 so long as we can answer T to each of the preceding questions "Is one of these true?"
Fall 2013 Frank / van Deemter / Wyner 15
Quantifier Exercise
If R(x,y)="x relies on y" express the following:
x(y R(x,y)) = Everyone has someone to rely on.
y(x R(x,y)) = There is someone whom everyone relies on.
x(y R(x,y)) = There is someone who relies on everyone.
y(x R(x,y)) = Everyone has someone who relies on them.
x(y R(x,y)) = Everyone relies on everyone.
Fall 2013 Frank / van Deemter / Wyner 16
Quantifier Exercise
R(x,y) = "x relies on y" where D is not empty.
1. x(y R(x,y))2. y(x R(x,y))3. x(y R(x,y))
Which of them is most informative?Which of them is least informative?
Fall 2013 Frank / van Deemter / Wyner 17
Quantifier Exercise
1. x(y R(x,y)) Least informative2. y(x R(x,y))3. x(y R(x,y)) Most informativeIf 3 is true then 2 must also be true.If 2 is true then 1 must also be true.
We say: 3 is logically stronger than 2 than 1
Fall 2013 Frank / van Deemter / Wyner 18
Natural language is ambiguous
• "Everybody likes somebody."• Can mean:
– For everybody, there is somebody they like,• x y Likes(x,y)• Each to a different person
– There is somebody whom everyone likes?• y x Likes(x,y)• Each to the same person
Fall 2013 Frank / van Deemter / Wyner 19
Quantifier Equivalences
• Expanding quantifiers: If D = {a,b,c,…}x P(x) P(a) P(b) P(c) … x P(x) P(a) P(b) P(c) …
• From those, we can “prove” the laws:x P(x) x P(x)x P(x) x P(x)
• Which propositional equivalence laws can be used to prove this?
Fall 2013 Frank / van Deemter / Wyner 20
More Equivalences
• x y P(x,y) y x P(x,y)x y P(x,y) y x P(x,y)
• x (P(x) Q(x)) (x P(x)) (x Q(x))x (P(x) Q(x)) (x P(x)) (x Q(x))
• Let’s prove the last of these equivalences using the definition of the truth of a formula of the form xφ
Fall 2013 Frank / van Deemter / Wyner 21
Proving a Quantifier Equivalence
• x (P(x) Q(x)) (x P(x)) (x Q(x))Proof: Suppose x (P(x) Q(x)) is true. So, there is a constant a such that (P(x) Q(x)) (x:=a) is true. So, for that a, the formula P(a) Q(a) is true. One possibility is that P(a) is true. In this case, P(x)(x:=a) is true. So, x P(x) is true, so (x P(x)) (x Q(x)) is true. The other possibility is that Q(a) is true. In this case, Q(x)(x:=a) is true. So, x Q(x) is true, so (x P(x)) (x Q(x))is true.
Fall 2013 Frank / van Deemter / Wyner 22
Proving a Quantifier Equivalence
• x (P(x) Q(x)) (x P(x)) (x Q(x))Proof: Suppose (x P(x)) (x Q(x)) is true. One possibility is that x P(x) is true. This would mean that there is an a such that P(x) (x:=a) is true. So, for that constant a, P(a) is true.Therefore, P(a) Q(a) would also be true. Hence, (P(x) Q(x))(x:=a) would be true. Hence, x (P(x) Q(x)) would be true. The other possibility is that x Q(x). From this, x (P(x) Q(x)) is proven in the same way QED
Fall 2013 Frank / van Deemter / Wyner 23
Another Equivalence Law?
• How about this one?
x (P(x) Q(x)) (x P(x)) (x Q(x))?
Fall 2013 Frank / van Deemter / Wyner 24
Not an Equivalence Law
• x (P(x) Q(x)) (x P(x)) (x Q(x)) ?• This equivalence statement is false.
Counterexample (i.e. model making this false):• P(x): x’s birthday is on 30 April
Q(x): x’s birthday is on 20 December• We can pick different people for x on the right
since x in P(x) and x in Q(x) are not both bound to the same quantifier.
Fall 2013 Frank / van Deemter / Wyner 25
Some consequences of these definitions
• Sometimes, predicate logic is taught very informally
• This makes it easy to understand simple formulas• But each more complex case has to be explained
separately, as if it was an exception• By defining things properly once, complex
formulas fall out as special cases• One example: quantifier nesting
Fall 2013 Frank / van Deemter / Wyner 26
Theorems about logic
• We are studying logical languages/calculi to allow you to use them (better).
• Logicians study logical languages/calculi to understand their limitations.
• Meta-theorems can say things about what can and cannot be expressed in predicate logic.
Fall 2013 Frank / van Deemter / Wyner 27
Theorems about logic
• About propositional logic, we asked “What types of things can we express?” How many connectives do we need?
• About predicate logic, logicians ask similar questions. For example, are these two quantifiers enough to be able to ‘say everything’?
• This is a question about the expressive power of predicate logic.
Fall 2013 Frank / van Deemter / Wyner 28
Defining Other Quantifiers
• one• at most one• at least two• exactly two• infinitely many• finitely many
Fall 2013 Frank / van Deemter / Wyner 29
Example: one
• As per their name, quantifiers can be used to express that a predicate is true of a given quantity (number) of objects.
• Example: Can predicate logic say “there exists at most one object with property P”?
Fall 2013 Frank / van Deemter / Wyner 30
Example: at most one
• Example: Can predicate logic say “there exists at most one object with property P”?
Yes (provided we have equality):
xy ((P(x) P(y)) x = y)
Fall 2013 Frank / van Deemter / Wyner 31
Example: one
• Can predicate logic say “there exists exactly one object with property P”?
Fall 2013 Frank / van Deemter / Wyner 32
Example: one
• Can predicate logic say “there exists exactly one object with property P”?
xP(x) xy((P(x) P(y)) x= y)• “There exist x such that P(x)” and
“There exists at most one x such that P(x)”• Abbreviation: !x P(x)
(“there exists exactly one x such that P(x)”)
Fall 2013 Frank / van Deemter / Wyner 33
Example: one
• Another way to write this:
• x (P(x) y (P(y) y x))“There is an x such that P(x), such that there is no y such that P(y) and y x.”
• x binds x throughout the conjunction:
x (P(x) y (P(y) y x))
Fall 2013 Frank / van Deemter / Wyner 34
At least two
• Can predicate logic say “there exist at least two objects with property P”?
Fall 2013 Frank / van Deemter / Wyner 35
At least two
• Can predicate logic say “there exist at least two objects with property P”?
• Yes:
x y ((P(x) P(y)) x y)• Incorrect would be
xP(x) y(P(y) x y),(where x occurs free, and whichtherefore does not express a proposition)
Fall 2013 Frank / van Deemter / Wyner 36
Exactly two
• Can predicate logic say “there exist exactly two objects with property P”?
Fall 2013 Frank / van Deemter / Wyner 37
Exactly two
• Can predicate logic say “there exist exactly two objects with property P”?
• Yes:
• x y (P(x) P(y) x y
z (P(z) (z = x z = y) ))
Fall 2013 Frank / van Deemter / Wyner 38
What’s wrong with
• x y (P(x) P(y) x y) z (P(z) (z= x z= y ))as a formalisation of ‘exactly two’?
Fall 2013 Frank / van Deemter / Wyner 39
What’s wrong with
• x y (P(x) P(y) x y) z (P(z) (z= x z= y ))as a formalisation of ‘exactly two’?
• This is a conjunction of two separate propositions. As a result, x and y are not bound, so this is not even a proposition
Fall 2013 Frank / van Deemter / Wyner 40
What Cannot be Expressed in Predicate Logic: Infinitely Many
• Can predicate logic say “there exist infinitely many objects with property P”?
• No! [This follows from the so-called Compactness Theorem: “An infinite set S of formulas has a model iff every finite subset of S has a model”]
• How about finitely many?
Fall 2013 Frank / van Deemter / Wyner 41
What Cannot be Expressed in Predicate Logic: Finitely Many
• How about finitely many?• Suppose there existed a formula =
“there exist only finitely many x such that so and so”
• Then = “there exist infinitely many x such that so and so”
• We know that such a formula does not exist• So, also does not exist
Fall 2013 Frank / van Deemter / Wyner 42
Another Way to Infinity
If we allow infinitely long disjunctions then all this can be expressed:
!x P(x) 2!x P(x) 3!x P(x) …
Fall 2013 Frank / van Deemter / Wyner 43
Remember
• In propositional logic, we can strictly speaking only build formulas of finite size.
• E.g., we can write P(a) P(b) P(a) P(b) P(c) P(a) P(b) P(c) P(d) , etc up to some finite length.
• But this way, we could never say that all natural numbers have P
Fall 2013 Frank / van Deemter / Wyner 44
What Cannot be Expressed in Predicate Logic: Most, Many
• Can predicate logic say “most objects have property P”?
• No! [This follows from the Compactness Theorem as well. Again, this is unless we allow infinitely long disjunctions.]
• Can predicate logic say “many objects have property P”?
• No, only precisely defined quantities
Fall 2013 Frank / van Deemter / Wyner 45
Formulas of Infinite Length?
• In predicate logic, you can say this easily: xP(x)
• It’s sometimes useful to pretend that propositional logic allows infinitely long formulas, but in the “official” version this is not possible.
Fall 2013 Frank / van Deemter / Wyner 46
Decidability
• We’ve shown you two ways of checking propositional logic equivalencies:
1. Checking truth tables2. Using equivalence laws
• You’ve seen how (1) can be done algorithmically (consider the T-tables and semantic evaluation).
• This shows that checking propositional logic equivalence is decidable
• But, predicate logic has variables over (potentially) infinite domains and combinations of quantifiers, so checking predicate logic equivalence is not decidable
Fall 2013 Frank / van Deemter / Wyner 47
Decidability
• Checking proplog equivalence is decidable• Checking predlog equivalence is not decidable.
Therefore, theorem proving will always remain an art (for both computers and humans)
• Some “fragments” of predlog are decidable. One application: PROLOG
Fall 2013 Frank / van Deemter / Wyner 48
Bonus Topic: Logic Programming
• Some programming languages are based entirely on (a part of) predicate logic
• The most famous one is called Prolog.• A Prolog program is a set of propositions (“facts”)
and (“rules”) in predicate logic.• The input to the program is a “query” proposition.
– Want to know if it is true or false.• The Prolog interpreter does some automated
deduction to determine whether the query follows from the facts.
Fall 2013 Frank / van Deemter / Wyner 49
Facts in Prolog
• A fact in Prolog represents a simple, non-compound proposition in predicate logic.– E.g., likes(john,mary)– Lowercase symbols are used for constants and
predicates, uppercase is used for variables.
Fall 2013 Frank / van Deemter / Wyner 50
Rules in Prolog
• A rule in Prolog represents a universally quantified proposition of the general form
xy (P(x,y) → Q(x)),where x and y are variables, P a possibly compound predicate, and Q an atomic proposition.
• In Prolog: q(X) :- p(X,Y).i.e., the , quantifiers are implicit.
• Example: likable(X) :- likes(Y,X).
Fall 2013 Frank / van Deemter / Wyner 51
Rules in Prolog
• Note that xy (P(x,y)→Q(x)) is equivalent to x((y P(x,y)→Q(x))
• In other words, Q(x) holds if you can find a y such that P(x,y)
Fall 2013 Frank / van Deemter / Wyner 52
Conjunction and Disjunction
• Logical conjunction is encoded using multiple comma-separated terms in a rule.
• Logical disjunction is encoded using multiple rules.
• E.g., x ((P(x)Q(x))R(x))→S(x) can be rendered in Prolog as:s(X) :- p(X),q(X)s(X) :- r(X)
Fall 2013 Frank / van Deemter / Wyner 53
Deduction in Prolog
• When a query is input to the Prolog interpreter, – it searches its database to determine if the query can be
proven true from the available facts.– if so, it returns “yes”, if not, “no” (! Called Negation-
as-failure)– If the query contains any variables, all values that make
the query true are printed.
Fall 2013 Frank / van Deemter / Wyner 54
Simple Prolog Example
• An example input program:likes(john,mary).likes(mary,fred).likes(fred,mary).likable(X) :- likes(Y,X).
• An example query: ? likable(Z)returns: ...
Fall 2013 Frank / van Deemter / Wyner 55
Simple Prolog Example
An example input program:
likes(john,mary).
likes(mary,fred).likes(fred,mary).likable(X) :- likes(Y,X).
An example query:? likable(Z)
returns:maryfred
Fall 2013 Frank / van Deemter / Wyner 56
Relation between PROLOG and Predicate Logic
• PROLOG cannot use all predicate logic formulas. (It covers a decidable “fragment” of predicate logic.)
• It uses ‘negation as failure’• Based on these limitations, PROLOG-based
deduction is decidable.• PROLOG is more than just logic (I/O, cut!), but
logic is its hard core.
Fall 2013 Frank / van Deemter / Wyner 57
Relation between PROLOG and Predicate Logic
• PROLOG cannot use all predicate logic formulas. (It covers a decidable “fragment” of predicate logic.)
• It uses ‘negation as failure’• Based on these limitations, PROLOG-based
deduction is decidable.• PROLOG is more than just logic (I/O, cut!), but
logic is its hard core.
Recommended