Download presentation
Presentation is loading. Please wait.
Published byApril Gibbs Modified over 9 years ago
1
1 Boolean Logic CS/APMA 202, Spring 2005 Rosen, section 1.1 Aaron Bloomfield
2
2 Quick survey How familiar are you with Boolean logic? How familiar are you with Boolean logic? a) A lot b) Some c) A little d) Boolean what?
3
3 A proposition is a statement that can be either true or false “The sky is blue” “The sky is blue” “I is a English major” “I is a English major” “x == y” “x == y” Not propositions: “Are you Bob?” “Are you Bob?” “x = 7” “x = 7” Boolean propositions
4
4 We use Boolean variables to refer to propositions Usually are lower case letters starting with p (i.e. p, q, r, s, etc.) 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 Boolean variable can have one of two values true (T) or false (F) A proposition can be… A single variable: p A single variable: p An operation of multiple variables: p (q r) An operation of multiple variables: p (q r) Boolean variables
5
5 Introduction to Logical Operators About a dozen logical operators Similar to algebraic operators + * - / Similar to algebraic operators + * - / In the following examples, p = “Today is Friday” p = “Today is Friday” q = “Today is my birthday” q = “Today is my birthday”
6
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 pppp TF FT
7
7 Logical operators: And An and operation is true if both operands are true Symbol: It’s like the ‘A’ in And It’s like the ‘A’ in And In C++ and Java, the operand is && p q = “Today is Friday and today is my birthday” pq pqpqpqpq TTT TFF FTF FFF
8
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)” pq pqpqpqpq TTT TFT FTT FFF
9
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” pq pqpqpqpq TTF TFT FTT FFF
10
10 Inclusive Or versus Exclusive Or Do these sentences mean inclusive or exclusive or? Experience with C++ or Java is required Experience with C++ or Java is required Lunch includes soup or salad Lunch includes soup or salad To enter the country, you need a passport or a driver’s license To enter the country, you need a passport or a driver’s license Publish or perish Publish or perish
11
11 Logical operators: Nand and Nor The negation of And and Or, respectively Symbols: | and ↓, respectively Nand: p|q ¬(p q) Nand: p|q ¬(p q) Nor: p↓q ¬(p q) Nor: p↓q ¬(p q) pq pqpqpqpq pqpqpqpq p|qp|qp|qp|q pqpqpqpq TTTTFF TFFTTF FTFTTF FFFFTT
12
12 Logical operators: Conditional 1 A conditional means “if p then q” Symbol: p q = “If today is Friday, then today is my birthday” p→q=¬p q pq pqpqpqpq TTT TFF FTT FFT the antecedent the consequence
13
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 pq pqpqpqpq TTT TFF FTT FFT
14
14 Quick survey Does truth table of the conditional make sense? Does truth table of the conditional make sense? a) Yes, already b) Mostly c) Not really d) Huh? I was sleeping
15
15 Logical operators: Conditional 3 ConditionalInverseConverse Contra- positive pq pppp qqqq pqpqpqpq p q qpqpqpqp q p TTFFTTTT TFFTFTTF FTTFTFFT FFTTTTTT
16
16 Logical operators: Conditional 4 Alternate ways of stating a conditional: p implies q p implies q If p, q If p, q p only if q p only if q p is sufficient for q p is sufficient for q q if p q if p q whenever p q whenever p q is necessary for p q is necessary for p p only if q p only if q See Rosen, p. 6, for a full list I don’t like this one
17
17 End of lecture on 20 Jan 2005
18
18 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)” Note that a bi-conditional has the opposite truth values of the exclusive or pq pqpqpqpq TTT TFF FTF FFT
19
19 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” pq pqpqpqpq TTT TFF FTF FFT
20
20 Boolean operators summary Learn what they mean, don’t just memorize the table! notnotandorxornandnorconditional bi- conditional pq pppp qqqq pqpqpqpq pqpqpqpq pqpqpqpq p|qp|qp|qp|q pqpqpqpq pqpqpqpq pqpqpqpq TTFFTTFFFTT TFFTFTTFTFF FTTFFTTFTTF FFTTFFFTTTT
21
21 Quick survey I understand all the Boolean operators I understand all the Boolean operators a) Absolutely! b) With a little review after class, I’ll have it down c) Can we go over it again? d) 17
22
22 Precedence of operators Just as in algebra, operators have precedence 4+3*2 = 4+(3*2), not (4+3)*2 4+3*2 = 4+(3*2), not (4+3)*2 Precedence order (from highest to lowest): ¬ → ↔ The first three are the most important 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
23
23 Translating English Sentences Question 7 from Rosen, p. 16 p = “It is below freezing” p = “It is below freezing” q = “It is snowing” 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 pqpqpqpq p¬qp¬qp¬qp¬q ¬p¬q¬p¬q¬p¬q¬p¬q pqpqpqpq p→qp→qp→qp→q (pq)(p→¬q)(pq)(p→¬q)(pq)(p→¬q)(pq)(p→¬q) p↔qp↔qp↔qp↔q
24
24 Translation Example 2 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 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: 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
25
25 Translation Example 2 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 If children eat more meals with their family, they will have lower substance abuse p qp qp qp q If they have a higher substance abuse rate, then they did not eat more meals with their family If they have a higher substance abuse rate, then they did not eat more meals with their family q pq pq pq p Note that p q and q p are logically equivalent
26
26 Translation Example 2 Let p = “Child eats more meals with family” Let q = “Child has less substance abuse” pqresultconclusion TTTT TF?F FT?T FFTT
27
27 Translation Example 3 “I have neither given nor received help on this exam” Rephrased: “I have not given nor received …” Rephrased: “I have not given nor received …” Let p = “I have given help on this exam” Let p = “I have given help on this exam” Let q = “I have received help on this exam” Let q = “I have received help on this exam” Translation is: p q pq pppp pqpqpqpq TTFF TFFT FTTF FFTF
28
28 Translation Example 3 What they mean is “I have not given and I have not received help on this exam” Or “I have not (given nor received) help on this exam” Or “I have not (given nor received) help on this exam” The problem: has a higher precedence than in Boolean logic, but not always in English Also, “neither” is vague pq p q (pq)(pq)(pq)(pq) TTFF TFFF FTFF FFTT
29
29 A bit of humor: Yale vs. Harvard Web references: http://www.harvardsucks.org/, http://www.yaledailynews.com/article.asp?AID=27506 Web references: http://www.harvardsucks.org/, http://www.yaledailynews.com/article.asp?AID=27506
30
30 Just like translating English sentences In order for a system specification to be valid, there must be at least ONE truth assignment that allows the propositions to be true Question 43 from Rosen, p. 10 p = “the message is scanned for virii” p = “the message is scanned for virii” q = “the message was sent from and unknown system” q = “the message was sent from and unknown system” The message is scanned for virii whenever the message was sent from an unknown system The message was sent from an unknown system but it was not scanned for virii It is necessary to scan the message for virii whenever it was sent from an unknown system When a message is not sent from an unknown system, it is not scanned for virii System Specifications 1 q→pq→pq→pq→p q¬pq¬pq¬pq¬p q→pq→pq→pq→p ¬q→¬p¬q→¬p¬q→¬p¬q→¬p equal
31
31 System Specifications 2 Is this a valid system? p = “the message is scanned for virii” p = “the message is scanned for virii” q = “the message was sent from and unknown system” q = “the message was sent from and unknown system” Requirements: (q→p) (q ¬p) (¬q→¬p) pq qpqpqpqp q p q p TTTFT TFTFF FTFTT FFTFT
32
32 Quick survey Is this a valid system? Is this a valid system? a) Yes b) No c) Need more information d) I have no idea pq qpqpqpqp q p q p TTTFT TFTFF FTFTT FFTFT
33
33 System Specifications 2 The system as specified is not valid There is no assignment of truth values that makes all the system specs true There is no assignment of truth values that makes all the system specs true pq qpqpqpqp q p q p TTTFT TFTFF FTFTT FFTFT
34
34 System Specifications 2 Let’s remove one of the specifciations: q ¬p = The message was sent from an unknown system but it was not scanned for virii q ¬p = The message was sent from an unknown system but it was not scanned for virii Is this a valid system? Requirements: (q→p) (¬q→¬p) Requirements: (q→p) (¬q→¬p) pq qpqpqpqp q p q p TTTFT TFTFF FTFTT FFTFT
35
35 Boolean Searches (101 OR 202) AND bloomfield AND “computer science” (101 OR 202) AND bloomfield AND “computer science” Note that Google requires you to capitalize Boolean operators Google defaults to AND; many others do not
36
36 Bit Operations 1 Boolean values can be represented as 1 (true) and 0 (false) A bit string is a series of Boolean values 10110100 is eight Boolean values in one string 10110100 is eight Boolean values in one string We can then do operations on these Boolean strings Each column is its own Boolean operation Each column is its own Boolean operation 01011010 10110100 11101110
37
37 Bit Operations 2 Evaluate the following 11000 (01011 11011) 11000 (01011 11011) = 11000 (11011) = 11000 01011 11011 11011 11000 11011 11000
38
38 Quick survey What programming languages do you know? What programming languages do you know? a) Java only b) C / C++ only c) Java and C/C++ d) not (Java or C/C++)
39
39 && vs. & in C/C++ int p = 11; int q = 20; if ( p && q ) { } if ( p & q ) { } In C/C++, any value other than 0 is true Notice the double ampersand – this is a Boolean operation The binary for the integer 11 is 01011 The binary for the integer 20 is 10100 As p and q are both true, this is true Notice the single ampersand – this is a bitwise operation 01011 10100 00000 This evaluates to zero (false)! Consider the following: Bitwise Boolean And operation:
40
40 && vs. & in C/C++ Note that Java does not have this “feature” If p and q are int: If p and q are int: p & q is bitwise p && q will not compile If p and q are boolean: 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++
41
41 Quick survey I felt I understood the material in this slide set… I felt I understood the material in this slide set… a) Very well b) Pretty much c) Not really d) Not at all
42
42 Quick survey The pace of the lecture for this slide set was… The pace of the lecture for this slide set was… a) Too slow b) A little slow c) About right d) Fast
43
43 Today’s demotivators
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.