Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 202, Spring 2008 Epp, sections 1.1 and 1.2

Similar presentations


Presentation on theme: "CS 202, Spring 2008 Epp, sections 1.1 and 1.2"— Presentation transcript:

1 CS 202, Spring 2008 Epp, sections 1.1 and 1.2
Boolean Logic CS 202, Spring 2008 Epp, sections 1.1 and 1.2

2 Applications of Boolean logic
Computer programs And computer addition Logic problems Digital design Sudoku

3 Boolean propositions A proposition is a statement that can be either true or false “The sky is blue” “I is a Engineering major” “x == y” Not propositions: “Are you Bob?” “x := 7” Propositions A proposition is a statement that can be either true or false Today is my birthday The sky is blue My major is computer science Some examples of statements that are not propositions: What day is today? Come here! x = x – 5 Some statements that are questionable… This is blue Depends on whether “this” is understood from the context We use Boolean variables to refer to propositions Named after George Boole, hence why it is always capitalized Boolean variables usually are lower case letters starting with p (i.e. p, q, r, s, etc.) A Boolean variable can have one of two values true (T) or false (F) Sometimes true is represented by 1, and false by 0 A proposition can be… A single variable: p An operation of multiple variables: p٨(q٧~r)

4 Boolean variables We use Boolean variables to refer to propositions
Usually are lower case letters starting with p (i.e. p, q, r, s, etc.) A Boolean variable can have one of two values true (T) or false (F) A proposition can be… A single variable: p An operation of multiple variables: p(qr)

5 Introduction to Logical Operators
About a dozen logical operators Similar to algebraic operators + * - / In the following examples, p = “Today is Friday” q = “Today is my birthday” Introduction to Logical Operators About a dozen logical operators Similar to algebraic operators + * - / In the following examples, p = “Today is Friday” q = “Today is my birthday”

6 Logical operators: Not
A not operation switches (negates) the truth value Symbol:  or ~ In C++ and Java, the operand is ! p = “Today is not Friday” p p T F Logical operators: Not Like the minus sign for making an integer negative A not operation switches (negates) the truth value A not operand is the only unary operand It operates on a single variable, rather than on two Symbol: Ø or ~ In C++ and Java, the operand is ! If p = “Today is Friday”, then ~p = “Today is not Friday”

7 Logical operators: And
An and operation is true if both operands are true Symbol:  It’s like the ‘A’ in And In C++ and Java, the operand is && pq = “Today is Friday and today is my birthday” p q pq T F Logical operators: And An and operation is true if both operands are true Symbol: ٨ It’s like the ‘A’ in And Also called a conjunction by the textbook In C++ and Java, the operand is && Let p = “Today is Friday” and q = “Today is my birthday” p٨q = “Today is Friday and today is my birthday”

8 Logical operators: Or An or operation is true if either operands are true Symbol:  In C++ and Java, the operand is || pq = “Today is Friday or today is my birthday (or possibly both)” p q pq T F Logical operators: Or An or operation is true if either operands are true Symbol: ٧ In English, or usually means one or the other. In logic, it means one or the other or both. Also called a disjunction by the textbook In C++ and Java, the operand is || Let p = “Today is Friday” and q = “Today is my birthday” p٧q = “Today is Friday or today is my birthday (or possibly both)”

9 Logical operators: Exclusive Or
An exclusive or operation is true if one of the operands are true, but false if both are true Symbol:  Often called XOR pq  (p  q)  ¬(p  q) In Java, the operand is ^ (but not in C++) pq = “Today is Friday or today is my birthday, but not both” p q pq T F Logical operators: Exclusive Or An exclusive or operation is true if one of the operands are true, but not if both are true Symbol: Å Often called XOR In English, this is what people often mean when they say “or” In Java, the operand is ^ (but not in C++) Let p = “Today is Friday” and q = “Today is my birthday” pÅq = “Today is Friday or today is my birthday, but not both” Thus, regular or is called “inclusive” or, as it includes the case where both are true

10 Inclusive Or versus Exclusive Or
Do these sentences mean inclusive or exclusive or? Experience with C++ or Java is required Lunch includes soup or salad To enter the country, you need a passport or a driver’s license Publish or perish Inclusive Or versus Exclusive Or Do these sentences mean inclusive or exclusive or? Experience with C++ or Java is required (OR) Lunch includes soup or salad (XOR) To enter the country, you need a passport or a driver’s license (OR) Publish or perish (XOR)

11 Logical operators: Nand and Nor
The negation of And and Or, respectively Symbols: | and ↓, respectively Nand: p|q  ¬(pq) Nor: p↓q  ¬(pq) p q pq pq p|q pq T F Logical operators: Nand and Nor The negation of And and Or, respectively Symbols: | and ↓, respectively Nand: p|q = ¬(p ٨ q) Nor: p↓q = ¬(p٧q)

12 Logical operators: Conditional 1
A conditional means “if p then q” Symbol:  pq = “If this class is easy, then I’ll get an A” p→q  ¬pq p q pq ¬pq T F Logical operators: Conditional 1 An conditional means “if p then q” Symbol: ® Let p = “Today is Friday” and q = “Today is my birthday” p®q = “If today is Friday, then today is my birthday” the antecedent the consequence

13 Logical operators: Conditional 2
Let p = “I am elected” and q = “I will lower taxes” I state: p  q = “If I am elected, then I will lower taxes” Consider all possibilities Note that if p is false, then the conditional is true regardless of whether q is true or false p q pq T F Logical operators: Conditional 2 Let p = “I am elected” and q = “I will lower taxes” Let’s assume I am running for office, and I state: p ® q = “If I am elected, then I will lower taxes” Consider all possibilities: If both I am elected and I lower taxes, then my statement p ® q is true If I am elected but I do not lower taxes, then my statement p ® q is false If I am not elected, whether I lower taxes or not does not matter (for keeping my oath) – I said I would lower taxes if I was elected, and since I wasn’t elected, I didn’t have to keep my promise Thus, if p is false, then the conditional is true regardless of whether q is true or false

14 Logical operators: Conditional 3
Inverse Converse Contra-positive p q p q pq pq qp qp T F Logical operators: Conditional 3 We can change the order of the antecedent (p) and the consequence (q), and negate them Original is the conditional if this is then today is my birthday Inverse negates the truth values if this class is not easy then I did not get an A Converse switches the order if I got an A then this class is easy Contra-positive does both if I did not get an A then this class is not easy Note that the truth values of the conditional and the contra-positive are the same Note that the truth values of the inverse and the converse are the same

15 Logical operators: Conditional 4
Alternate ways of stating a conditional: p implies q If p, q p is sufficient for q q if p q whenever p q is necessary for p Logical operators: Conditional 4 Alternate ways of stating a conditional: p implies q If p, q p only if q p is sufficient for q q if p q whenever p q is necessary for p

16 Logical operators: Bi-conditional 1
A bi-conditional means “p if and only if q” Symbol:  Alternatively, it means “(if p then q) and (if q then p)” pq  pq  qp Note that a bi-conditional has the opposite truth values of the exclusive or p q pq T F Logical operators: Bi-conditional 1 A bi-conditional means “p if and only if q” Alternatively, it means “(if p then q) and (if q then p)” Symbol: « Note that a bi-conditional has the opposite truth values of the exclusive or

17 Logical operators: Bi-conditional 2
Let p = “You take this class” and q = “You get a grade” Then pq means “You take this class if and only if you get a grade” Alternatively, it means “If you take this class, then you get a grade and if you get a grade then you take (took) this class” p q pq T F Logical operators: Bi-conditional 2 Let p = “You take this class” and q = “You get a grade” Then p«q means “You take this class if and only if you get a grade” Alternatively, it means “If you take this class, then you get a grade and if you get a grade then you take (took) this class”

18 Boolean operators summary
Learn what they mean, don’t just memorize the table! not and or xor nand nor conditional bi-conditional p q p q pq pq pq p|q pq pq pq T F Boolean operators summary No need to copy this down – the list will be given as a handout next class Why all these operators? We can make up a total of 2^4=16 different operators Some are used by computers, some by humans, some by proofs

19 Precedence of operators
Just as in algebra, operators have precedence 4+3*2 = 4+(3*2), not (4+3)*2 Precedence order (from highest to lowest): ¬   → ↔ The first three are the most important This means that p  q  ¬r → s ↔ t yields: (p  (q  (¬r))) ↔ (s → t) Not is always performed before any other operation Precedence of operators Just as in algebra, operators have precedence 4+3*2 = 4+(3*2), not (4+3)*2 Precedence order (from highest to lowest): ¬ ٨ ٧ → ↔ The first three are the most important This means that p ٧ q ٨ ¬ r → s ↔ t yields: (p ٧ (q ٨ (¬r))) ↔ (s → t)

20 Translating English Sentences
Problem: p = “It is below freezing” q = “It is snowing” It is below freezing and it is snowing It is below freezing but not snowing It is not below freezing and it is not snowing It is either snowing or below freezing (or both) If it is below freezing, it is also snowing It is either below freezing or it is snowing, but it is not snowing if it is below freezing That it is below freezing is necessary and sufficient for it to be snowing pq p¬q ¬p¬q pq p→q (pq)(p→¬q) p↔q Translating English Sentences In real life, you would choose p and q For this class, it is easier to grade it if we supply what p and q are Problem: p = “It is below freezing” q = “It is snowing” Examples: It is below freezing and it is snowing p ٨ q It is below freezing but not snowing p٨ ¬q “but” means “and” It is not below freezing and it is not snowing ¬p٨ ¬q It is either snowing or below freezing (or both) p٧q The “or both” means inclusive or If it is below freezing, it is also snowing p→q It is either below freezing or it is snowing, but it is not snowing if it is below freezing (p٧q)٨(p→¬q) This one's a doozy! That it is below freezing is necessary and sufficient for it to be snowing p↔q Note that “necessary and sufficient” means the bi-conditional

21 Translation Example 1 Heard on the radio:
A study showed that there was a correlation between the more children ate dinners with their families and lower rate of substance abuse by those children Announcer conclusions: If children eat more meals with their family, they will have lower substance abuse If they have a higher substance abuse rate, then they did not eat more meals with their family Translation Example 1 Heard on the radio: A study showed that there was a correlation between the more children ate dinners with their families and lower substance abuses of those children Here “more” was defined as 7 dinners a week, or so Announcer concludes: If children eat more meals with their family, they will have lower substance abuse If they have a higher substance abuse rate, then they did not eat more meals with their family Many ways to debunk this (in particular, correlation means causation) We're going to use logic

22 Translation Example 1 Let p = “Child eats more meals with family”
Let q = “Child has less substance abuse Announcer conclusions: If children eat more meals with their family, they will have lower substance abuse p  q If they have a higher substance abuse rate, then they did not eat more meals with their family q  p Note that p  q and q  p are logically equivalent

23 Translation Example 1 Let p = “Child eats more meals with family”
Let q = “Child has less substance abuse” Remember that the study showed a correlation, not a causation p q result conclusion T F ? Translation Example 2 Let p = “Child eats more meals with family” Let q = “Child has less substance abuse” Only the two highlighted values were shown Announcer concluded that it was a bi-conditional We need to know if the other two are true “It is not the case where a child eats more meals a day and has more substance abuse” “It is not the case that when the child does not eat more means with their family, that there is less substance abuse”

24 Translation Example 2 “I have neither given nor received help on this exam” Rephrased: “I have not given nor received …” Let p = “I have given help on this exam” Let q = “I have received help on this exam” Translation is: pq p q p pq T F

25 Translation Example 2 What they mean is “I have not given and I have not received help on this exam” Or “I have not (given or received) help on this exam” The problem:  has a higher precedence than  in Boolean logic, but not always in English Also, “neither” is vague p q pq (p  q) T F

26 Bit Operations 1 Boolean values can be represented as 1 (true) and 0 (false) A bit string is a series of Boolean values is eight Boolean values in one string We can then do operations on these Boolean strings Each column is its own Boolean operation Bit Operations Boolean values can be represented as 1 (true) and 0 (false) A bit string is a series of Boolean values is eight Boolean values in one string We can then do operations on these Boolean strings Each column is its own Boolean operation 

27 Bit Operations 2 Evaluate the following 01011 11011 11011 11000
11000  (01011  11011) =  (11011) = 11000 01011 11011 11011 11000 11011 Bit Operations 2 Evaluate the following 11000 ٨ (01011 ٧ 11011) = ٨ (11011) = 11000

28 && vs. & in C/C++ This evaluates to zero (false)!
Consider the following: In C/C++, any value other than 0 is true The binary for the integer 11 is 01011 The binary for the integer 20 is 10100 int p = 11; int q = 20; if ( p && q ) { } if ( p & q ) { Notice the double ampersand – this is a Boolean operation As p and q are both true, this is true Notice the single ampersand – this is a bitwise operation && vs. & in C/C++ Consider the following: int p = 23; int q = 40; if ( p && q ) { } if ( p & q ) { In C/C++, any value other than 0 is true The binary for the integer 23 is 01011 The binary for the integer 40 is 10100 Notice the double ampersand – this is a Boolean operation As p and q are both true, this is true Notice the single ampersand – this is a bitwise operation Bitwise Boolean And operation: 01011 ٨10100 00000 This evaluates to zero (false)! 01011 10100 00000 This evaluates to zero (false)! Bitwise Boolean And operation:

29 && vs. & in C/C++ Note that Java does not have this “feature”
If p and q are int: p & q is bitwise p && q will not compile If p and q are boolean: Both p & q and p && q will be a Boolean operation The same holds true for the or operators (| and ||) in both Java and C/C++ && vs. & in C/C++ Note that Java does not have this “feature” If the types of p and q are int: p & q will be a bitwise operation p && q will not compile If the types of p and q are Boolean: Both p & q and p && q will be a Boolean operation The same holds true for the or operators (| and ||) in both Java and C/C++

30 Tautology and Contradiction
A tautology is a statement that is always true p  ¬p will always be true (Negation Law) A contradiction is a statement that is always false p  ¬p will always be false (Negation Law) Tautology and Contradiction A tautology is a statement that is always true p Ú ¬p will always be true (Negation Law) “The sky is blue or the sky is not blue” A contradiction is a statement that is always false p Ù ¬p will always be false (Negation Law) “The sky is blue and the sky is not blue” p p  ¬p p  ¬p T F

31 Logical Equivalence A logical equivalence means that the two sides always have the same truth values Symbol is ≡or  We’ll use ≡, so as not to confuse it with the bi-conditional Logical Equivalence A logical equivalence means that the two sides always have the same truth values Symbol is ≡ or Û (we’ll use ≡)

32 Logical Equivalences of And
p  T ≡ p Identity law p  F ≡ F Domination law p T pT F Logical Equivalences of And Identity law Domination law p F pF T

33 Logical Equivalences of And
p  p ≡ p Idempotent law p  q ≡ q  p Commutative law p pp T F p q pq qp T F Logical Equivalences of And Idempotent law Commutative law

34 Logical Equivalences of And
(p  q)  r ≡ p  (q  r) Associative law p q r pq (pq)r qr p(qr) T F Logical Equivalences of And Associative law

35 Logical Equivalences of Or
p  T ≡ T Identity law p  F ≡ p Domination law p  p ≡ p Idempotent law p  q ≡ q  p Commutative law (p  q)  r ≡ p  (q  r) Associative law Logical Equivalences of Or Identity law Domination law Idempotent law Commutative law Associative law

36 Corollary of the Associative Law
(p  q)  r ≡ p  q  r (p  q)  r ≡ p  q  r Similar to (3+4)+5 = 3+4+5 Only works if ALL the operators are the same! Corollary of the Associative Law (p Ù q) Ù r ≡ p Ù q Ù r (p Ú q) Ú r ≡ p Ú q Ú r Similar to (3+4)+5 = 3+4+5

37 Logical Equivalences of Not
¬(¬p) ≡ p Double negation law p  ¬p ≡ T Negation law p  ¬p ≡ F Negation law Logical Equivalences of Not Double negation law Negation law

38 DeMorgan’s Law Probably the most important logical equivalence
To negate pq (or pq), you “flip” the sign, and negate BOTH p and q Thus, ¬(p  q) ≡ ¬p  ¬q Thus, ¬(p  q) ≡ ¬p  ¬q p q p q pq (pq) pq pq (pq) pq T F DeMorgan’s Law Probably the most important logical equivalence To negate p Ù q (or p Ú q), you “flip” the sign, and negate BOTH p and q Thus, ¬(p Ù q) ≡ ¬p Ú ¬q Thus, ¬(p Ú q) ≡ ¬p Ù ¬q

39 Yet more equivalences Distributive: Absorption
p  (q  r) ≡ (p  q)  (p  r) p  (q  r) ≡ (p  q)  (p  r) Absorption p  (p  q) ≡ p p  (p  q) ≡ p Yet more equivalences Distributive: p Ú (q Ù r) ≡ (p Ú q) Ù (p Ú r) p Ù (q Ú r) ≡ (p Ù q) Ú (p Ù r) Absorption p Ú (p Ù q) ≡ p p Ù (p Ú q) ≡ p

40 How to prove two propositions are equivalent?
Two methods: Using truth tables Not good for long formulae In this course, only allowed if specifically stated! Using the logical equivalences The preferred method Example: show that: How to prove two propositions are equivalent? Two methods: Using truth tables Not good for long formula Using the logical equivalences Example: show that: ..

41 Using Truth Tables (pq) →r pq (p→r)(q →r) q →r p→r r q p p q r p→r
F

42 Using Logical Equivalences
Original statement Definition of implication DeMorgan’s Law Associativity of Or Re-arranging Using Logical Equivalences Original statement Definition of implication DeMorgan’s Law Associativity of Or Re-arranging Idempotent Law Idempotent Law

43 Logical Thinking At a trial:
Bill says: “Sue is guilty and Fred is innocent.” Sue says: “If Bill is guilty, then so is Fred.” Fred says: “I am innocent, but at least one of the others is guilty.” Let b = Bill is innocent, f = Fred is innocent, and s = Sue is innocent Statements are: ¬s  f ¬b → ¬f f  (¬b  ¬s) Logical Thinking At a trial: Bill says: “Sue is guilty and Fred is innocent.” Sue says: “If Bill is guilty, then so is Fred.” Fred says: “I am innocent, but at least one of the others is guilty.” Let b = Bill is innocent, f = Fred is innocent, and s = Sue is innocent Statements are: ¬s Ù f ¬b → ~f f Ù (¬b Ú ¬s)

44 Can all of their statements be true?
Show: (¬s  f)  (¬b → ¬f)  (f  (¬b  ¬s)) ¬b ¬f ¬s ¬b→¬f f(¬b¬s) ¬b¬s ¬sf s f b b f s ¬b ¬f ¬s ¬sf ¬b→¬f ¬b¬s f(¬b¬s) T F Are all of their statements true? Show: (¬s Ù f) Ù (¬b → ¬f) Ù (f Ù (¬b Ú ¬s)) Via truth table

45 Are all of their statements true
Are all of their statements true? Show values for s, b, and f such that the equation is true Original statement Definition of implication Associativity of AND Re-arranging Idempotent law Absorption law Distributive law Negation law Domination law Are all of their statements true? Show values for s, b, and f such that the equation is true

46 Functional completeness
All the “extended” operators have equivalences using only the 3 basic operators (and, or, not) The extended operators: nand, nor, xor, conditional, bi-conditional Given a limited set of operators, can you write an equivalence of the 3 basic operators? If so, then that group of operators is functionally complete

47 Functional completeness of NAND
Show that | (NAND) is functionally complete Equivalence of NOT: p | p ≡ p (p  p) ≡ p Equivalence of NAND (p) ≡ p Idempotent law

48 Functional completeness of NAND
Equivalence of AND: p  q ≡ (p | q) Definition of nand p | p How to do a not using nands (p | q) | (p | q) Negation of (p | q) Equivalence of OR: p  q ≡ (p  q) DeMorgan’s equivalence of OR As we can do AND and OR with NANDs, we can thus do ORs with NANDs Thus, NAND is functionally complete


Download ppt "CS 202, Spring 2008 Epp, sections 1.1 and 1.2"

Similar presentations


Ads by Google