Discussion #8 Introduction to Logic and Logical Arguments Discussion #8 1 Topics Introduction to logic and logical arguments Propositions Connectives Propositional expressions Logic is used for: Databases Software specification Program validation Computer hardware design Semantic web … And yes … Projects for CS236 Discussion #8 2 Logical Arguments Consider the following statements. 1. 2. 3. if you study then you succeed you study you succeed These three statements create a logical argument. Lines 1 and 2 are premises and line 3 is the conclusion. This logical argument is sound. Premises can be true or false. If the premises are true, the conclusion must be true. If one (or more than one) of the premises is false, the argument is still sound, but we don’t know whether the conclusion is true or false. Discussion #8 3 Modus Ponens (a rule of inference – one of the most important rules) if you study then you succeed you study you succeed Premises Conclusion Aristotle called this modus ponens: if P then Q P Q Discussion #8 4 Important! We are dealing with the validity of an argument, NOT with the validity of the result! In logic, it doesn’t matter if a logical statement makes sense or not. What does matter is that if the premises are correct, then so is the result. Discussion #8 5 Modus Ponens Examples if P then Q P Q P: I study hard Q: I get an A P: cows give milk Q: doors open P: I follow the gospel plan Q: I will be exalted P: you sail past the end of the world Q: you will fall off Discussion #8 Makes sense Doesn’t make sense Makes sense Doesn’t make sense 6 Predicates and Arguments if ‘Jill’ thinks then ‘Jill’ exists ‘Jill’ thinks if P(‘Jill’) then Q(‘Jill’) ‘Jill’ exists P(‘Jill’) Q(‘Jill’) if thinks(‘Jill’) then exists(‘Jill’) thinks(‘Jill’) exists(‘Jill’) if thinks(X) then exists(X) thinks(X) exists(X) Discussion #8 7 Predicates in arguments (continued…) if thinks(X) then exists(X) thinks(X) exists(X) Discussion #8 thinks(X) exists(X) thinks(X) exists(X) thinks(X) -: exists(X) thinks(X) exists(X) exists(X) :- thinks(X) thinks(X) exists(X) 8 Datalog – Class Project Schemes: thinks(A) exists(B) What does all of this mean? Facts: thinks(‘Pat’). thinks(‘Tracy’). exists(‘Lynn’). Rules: exists(A) :- thinks(A). Queries: exists(‘Tracy’)? Yes Yes exists(‘Lynn’)? Prove True if possible, Yes thinks(‘Pat’)? (otherwise, False) No thinks(‘Lynn’)? No exists(‘Kelly’)? Discussion #8 9 What do we need to know to understand and implement this? Grammars (to parse Datalog) Propositions & Introduction to Logic Predicate Calculus (to add variables) Recursion (to handle recursive rules) Derivations & Normal Forms (to ease to programming) Sets and Relations (to build relational data bases) Relational Databases (to optimize) Graphs and Trees (to further optimize) Discussion #8 10 Propositions Any statement that is either True or False is a proposition. Propositional variables: a variable that can assume a value of T or F. Propositional constants: T or F. Atomic proposition: A proposition consisting of only a single propositional variable or constant. Logical connectives: logical operators. Discussion #8 11 Truth Tables Give the values of a proposition under all possible assignments of T and F Are used to define connectives Discussion #8 P P T F F T 12 Connectives (= Operators) Conjunction “and” Disjunction “or” Conditional “implies” Biconditional “equivalent” P Q PQ PQ PQ PQ T T T T T T T F F T F F F T F T T F F F F F T T Discussion #8 13 Vocabulary for Conditionals P is the antecedent and Q the consequent. Many ways to express conditionals: Discussion #8 if P then Q whenever P then Q P is sufficient for Q P only if Q Q if P (for Datalog: Q :- P) Q is necessary for P P implies Q P Q PQ T T T T F F F T T F F T 14 Vocabulary for Biconditional P and Q are equivalent. Many ways to express biconditionals: P if and only if Q P is necessary and sufficient for Q P iff Q Discussion #8 P Q PQ T T T T F F F T F F F T 15 Compound Propositions Also called logical expressions, formulas, and well-formed formulas (wffs). Well-formed formulas are defined inductively: Basis: T and F are wffs (these are the constants) P, Q, … are wffs (these are the variables) Induction: if A and B are wffs, then so are: (A) (A B), (A B), (A B), (A B) Discussion #8 16 Parentheses Well-formed formulas are fully parenthesized: ((((P Q)) ((P) Q)) R) We can remove some parentheses: Outside parentheses can be removed Use precedence: Use associativity always left associative Discussion #8 17 Parentheses (continued …) ((((P Q)) ((P) Q)) R) ((((P Q)) ((P) Q)) R) (((P Q)) ((P) Q)) R ((P Q) (P Q)) R (P Q) (P Q) R (P Q) P Q R Discussion #8 18 Evaluating Logical Expressions P Q By truth tables (columns) ((P) Q) P Q T T F T T F F T F T T T F F T F Discussion #8 By expression trees (rows) Q P 19 Logical Expressions with 3 Variables (P Q) P Q R By expression trees By truth table 3 1 5 2 4 P Q R ( PQ ) P Q R T T T F T F F F T T T F F T F F F F T F T T F T F F T T F F T F T F F T F T T T F T T T T F T F T F T T T T F F T T F T T F T F F F T F T T F T Discussion #8 6 R P Q Q P 20 (P Q) P Q R (A) P Q R B P Q R BCQR BDR ER G A B C D E G PQ A P CQ BD ER P Q R T T T T F F F F T T T F T F F F F F T F T F T F F T T T F F F T F F T T F T T F T T T T T F T F F T T T T T F F T F T T F T T F F F F T T F T T Discussion #8 21 Number of Binary Operators P Q T P Q + Q P T T T T T T T T T T F F F F T F T T T T F F F F T T T F T T T F F T T F F T T F F T F T F T F T F T F QP Discussion #8 PQ F F F F F T F F F F F F T T F F T F T F T F (PQ) = P Q 22 Number of Operators P Q T T T F F T F F P Q R T T T T T F T F T T F F F T T #expresions = #columns = 2#rows = 24 = 16 #rows = 2#variables = 22 = 4 F T F F F T F F F Discussion #8 #expressions = 22 3 = 256 2 In general, #expressions = 2 when there are k variables. k 23 Truth Table Solutions In general… To evaluate expressions using truth tables with k variables and n operations, it takes time proportional to 2kn = O(2kn). If we have one operator (n = 1) and if we can substitute in T or F and evaluate in 1 sec, then k 30 40 50 60 time 20 minutes 14 days 40 years 40,000 years! Thus, it is not practical to use truth tables for “large” k. P1 P2 … Pk T T … T T T … F T … … T T … … F … … … … Discussion #8 24