boolean logic l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Boolean Logic PowerPoint Presentation
Download Presentation
Boolean Logic

Loading in 2 Seconds...

play fullscreen
1 / 42

Boolean Logic - PowerPoint PPT Presentation


  • 278 Views
  • Uploaded on

Boolean Logic. CS/APMA 202, Spring 2005 Rosen, section 1.1 Aaron Bloomfield. Quick survey. How familiar are you with Boolean logic? A lot Some A little Boolean what?. Boolean propositions. A proposition is a statement that can be either true or false “The sky is blue”

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Boolean Logic' - Sophia


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
boolean logic

Boolean Logic

CS/APMA 202, Spring 2005

Rosen, section 1.1

Aaron Bloomfield

quick survey
Quick survey
  • How familiar are you with Boolean logic?
    • A lot
    • Some
    • A little
    • Boolean what?
boolean propositions
Boolean propositions
  • A proposition is a statement that can be either true or false
    • “The sky is blue”
    • “I is a English major”
    • “x == y”
  • Not propositions:
    • “Are you Bob?”
    • “x = 7”
boolean variables
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)
introduction to logical operators
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”
logical operators not
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”
logical operators and
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”
logical operators or
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)”
logical operators exclusive or
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 todayis my birthday, but not both”
inclusive or versus exclusive or
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
logical operators nand and nor
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)
logical operators conditional 1
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

the

antecedent

the

consequence

logical operators conditional 2
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
quick survey14
Quick survey
  • Does truth table of the conditional make sense?
    • Yes, already
    • Mostly
    • Not really
    • Huh? I was sleeping
logical operators conditional 4
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
    • p only if q
  • See Rosen, p. 6, for a full list

I don’t like this one

logical operators bi conditional 1
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
logical operators bi conditional 2
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”
boolean operators summary
Boolean operators summary
  • Learn what they mean, don’t just memorize the table!
quick survey20
Quick survey
  • I understand all the Boolean operators
    • Absolutely!
    • With a little review after class, I’ll have it down
    • Can we go over it again?
    • 17
precedence of operators
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↔tyields: (p  (q  (¬r))) ↔ (s→t)
  • Not is always performed before any other operation
translating english sentences
Translating English Sentences
  • Question 7 from Rosen, p. 16
    • 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

translation example 2
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
    • 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 224
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
      • 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
translation example 225
Translation Example 2
  • Let p = “Child eats more meals with family”
  • Let q = “Child has less substance abuse”
translation example 3
Translation Example 3
  • “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
translation example 327
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”
  • The problem:  has a higher precedence than  in Boolean logic, but not always in English
  • Also, “neither” is vague
a bit of humor yale vs harvard
A bit of humor:Yale vs. Harvard
  • Web references: http://www.harvardsucks.org/, http://www.yaledailynews.com/article.asp?AID=27506
system specifications 1

equal

System Specifications 1
  • 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”
    • q = “the message was sent from and unknown system”
  • The message is scanned for virii whenever themessage was sent from an unknown system
  • The message was sent from an unknownsystem but it was not scanned for virii
  • It is necessary to scan the message for viriiwhenever it was sent from an unknown system
  • When a message is not sent from an unknownsystem, it is not scanned for virii

q→p

q¬p

q→p

¬q→¬p

system specifications 2
System Specifications 2
  • Is this a valid system?
    • p = “the message is scanned for virii”
    • q = “the message was sent from and unknown system”
  • Requirements: (q→p)  (q¬p)  (¬q→¬p)
quick survey31
Quick survey
  • Is this a valid system?
    • Yes
    • No
    • Need more information
    • I have no idea
system specifications 232
System Specifications 2
  • The system as specified is not valid
    • There is no assignment of truth values that makes all the system specs true
system specifications 233
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
  • Is this a valid system?
    • Requirements: (q→p)  (¬q→¬p)
boolean searches
Boolean Searches

(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
bit operations 1
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
  • We can then do operations on these Boolean strings
    • Each column is its ownBoolean operation

01011010

10110100

11101110

bit operations 2
Bit Operations 2
  • Evaluate the following

11000  (01011  11011)

= 11000  (11011)

= 11000

01011

11011

11011

11000

11011

11000

quick survey37
Quick survey
  • What programming languages do you know?
    • Java only
    • C / C++ only
    • Java and C/C++
    • not (Java or C/C++)
vs in c c
&& vs. & in C/C++

Consider the following:

In C/C++, any value other than 0 is true

int p = 11;

int q = 20;

if ( p && q ) {

}

if ( p & q ) {

}

The binary for the integer 11 is 01011

The binary for the integer 20 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

01011

10100

00000

This evaluates to zero (false)!

Bitwise Boolean And operation:

vs in c c39
&& 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++
quick survey40
Quick survey
  • I felt I understood the material in this slide set…
    • Very well
    • Pretty much
    • Not really
    • Not at all
quick survey41
Quick survey
  • The pace of the lecture for this slide set was…
    • Too slow
    • A little slow
    • About right
    • Fast