490 likes | 982 Views
Limitations of Propositional Logic. Let’s get back to Socrates. “All human beings are mortal.” “Socrates is human.” “Socrates is mortal.” Can we formalize this in propositional logic? Our previous attempt was: “If Socrates is human then Socrates is mortal.” “Socrates is human.”
E N D
Limitations of Propositional Logic Let’s get back to Socrates. “All human beings are mortal.” “Socrates is human.” “Socrates is mortal.” Can we formalize this in propositional logic? Our previous attempt was: “If Socrates is human then Socrates is mortal.” “Socrates is human.” “Socrates is mortal.” Clearly NOT the same!
Where is the problem? The problem is: We operate with constant objects only. We have no domain context and no domain variables. We cannot say “all”, “there exist”, etc. Solution? Predicate Logic
Predicate Logic A predicate is a sentence that contains a finite number of variables and becomes a statement when specific values are substituted for the variables. The domain of a predicate variable is the set of all values that may be substituted in place of the variable.
Translation Examples (1) “Every man is mortal” x [man(X) → mortal(x)] “Socrates is a man” man(Socrates) “Socrates is mortal” mortal(Socrates) The last statement logically follows from the premises (by universal elimination)
Translation Examples (2) “Nothing is better than God” ~[x better-than(x,God)] “A sandwich is better than nothing” x [sandwich(x) → better-than(x,Nothing)] “A sandwich is better than God” x [sandwich(x) → better-than(x,God)]
Translation Examples (3) “Ducks fly” x [duck(x) → flies(x)] “F-16s fly” x [F-16(x) → flies(x)] “F-16s are airplanes” x [F-16(x) → airplane(x)]
Translation Examples (4) “No man lives forever” ~[x [man(x) ^ lives-forever(x)]] x [man(x) → ~lives-forever(x)] “Every person is a Knave or a Knight” x [person(x) → [Knave(x) v Knight(x)]] “Every person is a Knave or a Knight but not both” x [person(x) → [Knave(x) v Knight(x)] ^ ~[Knave(x) ^ Knight(x)]]
Domain Objects We can now have variables and constants in a statement: Socrates is a constant (a specific member) in the set of all people X is a variable over the set of people i.e., X can be any person We can instantiate X=Socrates Domain of a variable is the set of values it can take on.
Predicates – to sum up … In other words: Predicates take domain objects and map them to true/false depending on the properties of the objects Thus, a predicate with all its variables instantiated is a statement (i.e., true/false) Example: GreaterThan(v1,v2) GreaterThan(5,3)=true
Truth Set Suppose P(x) is “x is a factor of 8” So how about the following: P(1) True P(2) True P(0) False The set of all x such that P(x) holds is called the truth set of P(x) Here it would be {1,2,4,8}
Truth Set - Examples Suppose P(x,y,r) is “x2+y2=r2” What is the truth set of P(x,y,5)? Circle with the radius of 5 centered in the origin Suppose P(n) is “n is an even three-digit prime number” What is the truth set of P(n)? An empty set
Predicate Interpretation In predicate logic, to specify an interpretation we need to Define domain sets. Assign all domain constants. Assign semantics to all predicates. Example: D=(x [likes(x, CSE2500)]) A possible interpretation assigns: Domain set for x: Students enrolled in CSE2500 in Fall09 Domain value for 2nd argument of likes(a,b): CSE2500 (constant) Semantics for predicate likes(a,b): holds iff student a likes CSE2500 Is D true or false under the given interpretation
Evaluating Statements Propositions: P Interpretation directly Predicate with variables: P(x) Use the assignment of x and the semantics of P() Universally quantified formula : x P(x) Evaluates to true iff P(x) holds on all possible values of x Existentially quantified formulae : x P(x) Evaluates to true iff P(x) holds on at least one possible value of x
Interpretation Example Consider the following predicate: x y Likes(x,y) Does it hold? Depends on the interpretation! Interpretation: Domain set forx,yis{Angela,Belinda,Jean} Define predicate Likes(liker,liked) as: Likes(Angela,Belinda) Likes(Belinda,Angela) Likes(Jean,Belinda) Likes(Jean,Angela) Does it hold in this interpretation? Yes 14
Classifications … Predicate D holds under any interpretation tautology. Predicate D does NOT hold under any interpretation contradiction. What if D holds under some interpretations but not others? Then D is a contingency. 15
Bindings & Scope A variable can be free: Sharp(X) …or bound to a quantifier x D, P(x) If variable X is bound to a quantifier then there is a binding between them. Then X is said to be in the quantifier’s scope. How about: x D, (P(x) Q(x)) vs (x D, P(x)) (x D, Q(x)) x D, (P(x) Q(x)) vs (x D, P(x)) (x D, Q(x)) x D, (P(x) Q(x)) vs (x D, P(x)) (x D, Q(x)) x D, (P(x) Q(x)) vs (x D, P(x)) (x D, Q(x)) 16
Substitutions A predicate that can be evaluated to T/F given an interpretation is called a statement Predicates with free variables may not be statements That is so because an interpretation doesn’t touch free domain variables A substitution “complements” an interpretation by assigning (substituting) all free domain variables 17
Example Revisit the predicate: y Likes(x,y) Suppose you are given the interpretation I: Domain set forx,yis{Angela,Belinda,Jean} Define predicate Likes(liker,liked) as: Likes(Angela,Belinda) Likes(Jean,Belinda) Likes(Jean,Angela) Additionally you have a substitution S: Free domain variablex is set to Angela Is y Likes(x,y) satisfied by IandS? Yes … 18
Note … Many predicates with free variables cannot be tautologies or contradictions Their value depends on the substitution However, some can: Likes(x,y) v ~Likes(x,y) … is a tautology despite two free variables 19
Implicit Quantifiers If x > 2 then x2 > 4 Textbook: x R, x>2 → x2 > 4 More formally: xR, [x>2 →yR, square(x,y) ^ greater_than(y,4)] where predicates square(a,b) (b=a2) and greater_than (c,d) (c>d) are defined over the set of real numbers R. 20
Domain Functions Consider the last statement again: real numbers x, if x>2 then x2 > 4 Is it a predicate? No! Why? Well x2is not a predicate and is not a variable It is a domain function (square)! We have not formally introduce domain functions But we will use them anyway for the sake of: Simplicity Consistency with the text book 21
Conversion to Predicates The use of domain functions is justified: Because they can be expressed through domain predicates Example: let function f map numbers to numbers: f(n)=m Then whenever we see f(x) in our predicate We will change it (with some care) to: y P(x,y) Where P(n,m) holds iff f(n)=m 22
Summary Given a particular interpretation To show that a -quantified formula holds: Exhaust all possibilities – show that all examples satisfy the formula To show that a -quantified formula does NOT hold: Find a falsifying example To show that a -quantified formula holds: Find a satisfying example To show that a -quantified formula does NOT hold: Exhaust all possibilities and show that all examples falsify the formula 23
Restricted -Quantifiers Informal: Any number greater than 2 is positive. Formal: x [x>2 x>0] Formal shorthand: x>2 [x>0] Common mistake: Use of ^ instead of→ x [x>2 ^ x>0] “Any number is greater than 2 and greater than 0” How about 1? 24
Restricted -Quantifiers Informal: There is a positive solution to x2=1. Formal: x [x>0 ^ x2=1] Formal shorthand: x>0 [x2=1] Common mistake: Use of→instead of ^ x [x>0 → x2=1] “There exists a number such that if it is positive then it is a solution to x2=1” This predicate is satisfied by any interpretation that contains 0 among the numbers. 25
Restricted -Quantifiers Another example of … Common mistake: use of→instead of ^ “There exists an immortal man.” Correct: x [man(x) ^ ~mortal(x)] Incorrect: x [man(x) → ~mortal(x)] “There exists something such that if it is a man then it is immortal” The latter formula is satisfied by any interpretation that allows x to run over non-man objects. E.g., x can be a duck satisfying the formula. 26
Limitations It is Ok to use the shorthand with: Algebraic predicates: e.g., x>0 Set membership: e.g., xD Why? Because it is clear that the quantifier is applied to the variable which follows it immediately: x>0 [x2=1] It is not Ok to use such shorthands with other predicates: E.g., P(x) [x2=1] 27
Special Cases: finite domains Suppose you have a predicate over a single variable x. If the domain of variable x is finite: {x1,…,xN} Then x P(x) is equivalent to: P(x1) ^ … ^ P(xN) And x P(x) is equivalent to: P(x1) v … v P(xN) 28
Satisfying / statements To show that x P(x) we need to: Prove that everyx satisfies P(x). To show that x P(x) we need to: Prove that there exists at least onex that satisfies P(x). 29
DeMorgan again… To show that ~(x P(x)) we need to: Prove that not everyx satisfies P(x) In other words, we need to find at least one x that does not satisfy P(X) But that is the same as proving that x ~P(x) Therefore: ~(x P(x)) x (~P(x)) are logically equivalent De Morgan’s law for quantifiers 30
And again… To show that ~(x P(x)) we need to: Prove that there does not exist a singlex satisfying P(x). But that is the same as proving that x ~P(x) Therefore: ~(x P(x)) x (~P(x)) are logically equivalent De Morgan’s law for quantifiers 31
Examples Statement: “Everyone snoozes in CSE 2500.” Negation: “Not every one snoozes in CSE 2500.” “There is someone who doesn’t snooze in CSE 2500.” A common mistake of negation: “No one snoozes in CSE 2500.” 32
Examples Statement: There is a secret agent who appeals to all women. Negation: For every secret agent there is a woman that the agent doesn’t appeal to. A common mistake: There is a secret agent who doesn’t appeal to all women. 33
In the nutshell… When negating a quantified statement: Quantifier1 x1… QuantifierN xN P(x1,..,xN) Do this: Change all to Change all to Negate the innermost predicate P(…) Be careful with scoping and connectives! 34
Vacuous Truth of UQS Suppose I say: “Presently, all men on the moon are happy.” Is it true or false? Think of it this way: x [OnTheMoon(x) Happy(x)] So, is it true or false? The internal implication is always vacuously true for there is presently no man on the Moon. Thus, the entire statement holds for any x The entire statement holds. 35
Logical Implication In propositional logic statement A logically implies statement B iff: Every interpretation that satisfies A also satisfies B. The same in predicate logic! 36
Validity of Arguments Validity of arguments is defined in the same way. The difference is: In predicate logic, it is not always possible to go through all interpretations to prove that A logically implies B, since the number of interpretations can be infinite. We will need inference rules pertaining to predicate logic. 37
Universal Instantiation Consider a universally quantified statement: xD [P(x)] x0D Therefore P(x0) Why? Because predicate P(…) holds for all members of set D Example: “mortal Socrates” argument. 38
Universal Modus Ponens Propositional modus ponens P→Q P Therefore, Q Universal modus ponens x [P(x)→Q(x)] P(a), for a particular a Therefore, Q(a) 39
Universal Modus Tollens Propositional modus tollens P→Q ~Q Therefore, ~P Universal modus tollens x [P(x)→Q(x)] ~Q(a), for a particular a Therefore, ~P(a) 40
Universal Transitivity Propositional transitivity P→Q Q→R Therefore, P→R Universal transitivity x [P(x)→Q(x)] x [Q(x)→R(x)] Therefore, x [P(x)→R(x)] 41
Diagrams for Validity Diagrams can sometimes be used to: support a validity of an argument or, show that an argument is invalid Diagrams are not a formal proof! Use them to illustrate your reasoning ONLY Examples on pp115-119. 42
mortal human pneumonia Socrates fever patient 43