cse 311: foundations of computing Spring 2015 Lecture 3: Logic and - - PowerPoint PPT Presentation

โ–ถ
cse 311 foundations of computing
SMART_READER_LITE
LIVE PREVIEW

cse 311: foundations of computing Spring 2015 Lecture 3: Logic and - - PowerPoint PPT Presentation

cse 311: foundations of computing Spring 2015 Lecture 3: Logic and Boolean algebra gradescope Homework #1 is up (and has been since Friday). It is due Friday, October 9 th at 11:59pm. You should have received (i) An invitation from Gradescope


slide-1
SLIDE 1

cse 311: foundations of computing Spring 2015 Lecture 3: Logic and Boolean algebra

slide-2
SLIDE 2

gradescope Homework #1 is up (and has been since Friday). It is due Friday, October 9th at 11:59pm. You should have received (i) An invitation from Gradescope

[if not, email cse311-staff ASAP]

(ii) An email from me about (i)

[if not, go to the course web page and sign up for the class email list]

Note: Homework and extra credit are separate assignments.

slide-3
SLIDE 3

more gates

NAND ยฌ(๐‘Œ โˆง ๐‘) NOR ยฌ(๐‘Œ โˆจ ๐‘) XOR ๐‘Œ โŠ• ๐‘ XNOR ๐‘Œ โ†” ๐‘, ๐‘Œ = ๐‘

X Y Z X Y Z 1 1 1 1 1 1 1 X Y Z 1 1 1 1 1 Z X Y X Y Z X Y Z 1 1 1 1 1 1 X Y Z 1 1 1 1 1 1 Z X Y

1

slide-4
SLIDE 4

Slide 3 1 can we omit this slide? we mentioned it on the hw and this feels like info overload?

Adam Blank, 9/27/2014

slide-5
SLIDE 5

review: logical equivalence Terminology: A compound proposition is aโ€ฆ

โ€“ Tautology if it is always true โ€“ Contradiction if it is always false โ€“ Contingency if it can be either true or false p ๏ƒš ๏ƒ˜ p p ๏ƒ… p (p ๏‚ฎ q) ๏ƒ™ p (p ๏ƒ™ q) ๏ƒš (p ๏ƒ™ ๏ƒ˜ q) ๏ƒš (๏ƒ˜ p ๏ƒ™ q) ๏ƒš (๏ƒ˜ p ๏ƒ™ ๏ƒ˜ q) Tautology! Contradiction! Contingency! Tautology!

slide-6
SLIDE 6

logical equivalence

A and B are logically equivalent if and only if A ๏‚ซ B is a tautology

i.e. A and B have the same truth table

The notation A ๏‚บ B denotes A and B are logically equivalent. Example: p ๏‚บ ๏ƒ˜ ๏ƒ˜ p

p

  • p ๏ƒ˜ ๏ƒ˜ p

p ๏‚ซ ๏ƒ˜ ๏ƒ˜ p

T F T T F T F T

slide-7
SLIDE 7

if !(front != null && value > front.data) front = new ListNode(value, front); else { ListNode current = front; while !(current.next == null || current.next.data >= value) current = current.next; current.next = new ListNode(value, current.next); }

review: de Morganโ€™s laws

ยฌ ๐‘ž โˆจ ๐‘Ÿ โ‰ก ยฌ ๐‘ž โˆง ยฌ ๐‘Ÿ ยฌ ๐‘ž โˆง ๐‘Ÿ โ‰ก ยฌ ๐‘ž โˆจ ยฌ ๐‘Ÿ

This code inserts value into a sorted linked list. The first if runs when: front is null or value is smaller than the first item. The while loop stops when: weโ€™ve reached the end of the list or the next value is bigger.

slide-8
SLIDE 8

review: law of implication

p q p ๏‚ฎ q

  • p ๏ƒ˜ p ๏ƒš q

(p ๏‚ฎ q) ๏‚ซ (๏ƒ˜ p ๏ƒš q)

T T T F T T T F F F F T F T T T T T F F T T T T

๐‘ž โ†’ ๐‘Ÿ โ‰ก (ยฌ ๐‘ž โˆจ ๐‘Ÿ)

slide-9
SLIDE 9

computing equivalence Describe an algorithm for computing if two logical expressions/circuits are equivalent. What is the run time of the algorithm?

Compute the entire truth table for both of them! There are 2๐‘œ entries in the column for ๐‘œ variables.

slide-10
SLIDE 10

some familiar properties of arithmetic

  • ๐‘ฆ + ๐‘ง = ๐‘ง + ๐‘ฆ

(commutativity)

โ€“ ๐‘ž โˆจ ๐‘Ÿ โ‰ก ๐‘Ÿ โˆจ ๐‘ž โ€“ ๐‘ž โˆง ๐‘Ÿ โ‰ก ๐‘Ÿ โˆง ๐‘ž

  • ๐‘ฆ โ‹… ๐‘ง + ๐‘จ = ๐‘ฆ โ‹… ๐‘ง + ๐‘ฆ โ‹… ๐‘จ

(distributivity)

โ€“ ๐‘ž โˆง ๐‘Ÿ โˆจ ๐‘  โ‰ก ๐‘ž โˆง ๐‘Ÿ โˆจ (๐‘ž โˆง ๐‘ ) โ€“ ๐‘ž โˆจ ๐‘Ÿ โˆง ๐‘  โ‰ก ๐‘ž โˆจ ๐‘Ÿ โˆง (๐‘ž โˆจ ๐‘ )

  • ๐‘ฆ + ๐‘ง + ๐‘จ = ๐‘ฆ + (๐‘ง + ๐‘จ)

(associativity)

โ€“ ๐‘ž โˆจ ๐‘Ÿ โˆจ ๐‘  โ‰ก ๐‘ž โˆจ ๐‘Ÿ โˆจ ๐‘  โ€“ ๐‘ž โˆง ๐‘Ÿ โˆง ๐‘  โ‰ก ๐‘ž โˆง (๐‘Ÿ โˆง ๐‘ )

slide-11
SLIDE 11

properties of logical connectives

  • Identity

โ€“ ๐‘ž โˆง T โ‰ก ๐‘ž โ€“ ๐‘ž โˆจ F โ‰ก ๐‘ž

  • Domination

โ€“ ๐‘ž โˆจ T โ‰ก T โ€“ ๐‘ž โˆง F โ‰ก F

  • Idempotent

โ€“ ๐‘ž โˆจ ๐‘ž โ‰ก ๐‘ž โ€“ ๐‘ž โˆง ๐‘ž โ‰ก ๐‘ž

  • Commutative

โ€“ ๐‘ž โˆจ ๐‘Ÿ โ‰ก ๐‘Ÿ โˆจ ๐‘ž โ€“ ๐‘ž โˆง ๐‘Ÿ โ‰ก ๐‘Ÿ โˆง ๐‘ž You will always get this list.

  • Associative

๐‘ž โˆจ ๐‘Ÿ โˆจ ๐‘  โ‰ก ๐‘ž โˆจ ๐‘Ÿ โˆจ ๐‘  ๐‘ž โˆง ๐‘Ÿ โˆง ๐‘  โ‰ก ๐‘ž โˆง ๐‘Ÿ โˆง ๐‘ 

  • Distributive

๐‘ž โˆง ๐‘Ÿ โˆจ ๐‘  โ‰ก ๐‘ž โˆง ๐‘Ÿ โˆจ (๐‘ž โˆง ๐‘ ) ๐‘ž โˆจ ๐‘Ÿ โˆง ๐‘  โ‰ก ๐‘ž โˆจ ๐‘Ÿ โˆง (๐‘ž โˆจ ๐‘ )

  • Absorption

๐‘ž โˆจ ๐‘ž โˆง ๐‘Ÿ โ‰ก ๐‘ž ๐‘ž โˆง ๐‘ž โˆจ ๐‘Ÿ โ‰ก ๐‘ž

  • Negation

๐‘ž โˆจ ยฌ๐‘ž โ‰ก T ๐‘ž โˆง ยฌ๐‘ž โ‰ก F

slide-12
SLIDE 12

understanding connectives

  • Reflect basic rules of reasoning and logic
  • Allow manipulation of logical formulas

โ€“ Simplification โ€“ Testing for equivalence

  • Applications

โ€“ Query optimization โ€“ Search optimization and caching โ€“ Artificial intelligence / machine learning โ€“ Program verification

slide-13
SLIDE 13

equivalences related to implication

๐‘ž โ†’ ๐‘Ÿ โ‰ก ยฌ ๐‘ž โˆจ ๐‘Ÿ ๐‘ž โ†’ ๐‘Ÿ โ‰ก ยฌ๐‘Ÿ ๏‚ฎ ยฌ๐‘ž ๐‘ž โ†” ๐‘Ÿ โ‰ก ๐‘ž ๏‚ฎ ๐‘Ÿ โˆง (๐‘Ÿ โ†’ ๐‘ž) ๐‘ž โ†” ๐‘Ÿ โ‰ก ยฌ ๐‘ž โ†” ยฌ ๐‘Ÿ

slide-14
SLIDE 14

logical proofs

To show P is equivalent to Q

โ€“ Apply a series of logical equivalences to sub-expressions to convert P to Q

To show P is a tautology

โ€“ Apply a series of logical equivalences to sub-expressions to convert P to T

slide-15
SLIDE 15

prove this is a tautology

๐‘ž โˆง ๐‘Ÿ โ†’ (๐‘ž โˆจ ๐‘Ÿ)

slide-16
SLIDE 16

prove this is a tautology

(๐‘ž โˆง (๐‘ž โ†’ ๐‘Ÿ)) โ†’ ๐‘Ÿ

slide-17
SLIDE 17

prove these are equivalent

(๐‘ž โ†’ ๐‘Ÿ) โ†’ ๐‘  ๐‘ž โ†’ (๐‘Ÿ โ†’ ๐‘ )

slide-18
SLIDE 18

prove these are not equivalent

(๐‘ž โ†’ ๐‘Ÿ) โ†’ ๐‘  ๐‘ž โ†’ (๐‘Ÿ โ†’ ๐‘ )

slide-19
SLIDE 19

Boolean logic

Combinational Logic

โ€“ output = F(input)

Sequential Logic

โ€“ outputt = F(outputt-1, inputt)

  • output dependent on history
  • concept of a time step (clock, t)

Boolean Algebra consisting ofโ€ฆ

โ€“ a set of elements B = {0, 1} โ€“ binary operations { + , โ€ข } (OR, AND) โ€“ and a unary operation { โ€™ } (NOT)

George โ€œhomeopathyโ€ Boole

slide-20
SLIDE 20

a combinatorial logic example Sessions of class: We would like to compute the number of lectures or quiz sections remaining at the start of a given day of the week.

โ€“ Inputs: Day of the Week, Lecture/Section flag โ€“ Output: Number of sessions left Examples: Input: (Wednesday, Lecture) Output: 2 Input: (Monday, Section) Output: 1

slide-21
SLIDE 21

implementation in software

public int classesLeft (weekday, lecture_flag) { switch (day) { case SUNDAY: case MONDAY: return lecture_flag ? 3 : 1; case TUESDAY: case WEDNESDAY: return lecture_flag ? 2 : 1; case THURSDAY: return lecture_flag ? 1 : 1; case FRIDAY: return lecture_flag ? 1 : 0; case SATURDAY: return lecture_flag ? 0 : 0; } }

slide-22
SLIDE 22

implementation with combinational logic

Encoding: โ€“ How many bits for each input/output? โ€“ Binary number for weekday โ€“ One bit for each possible output

Lecture? Weekday 1 2 3

slide-23
SLIDE 23

defining our inputs

public int classesLeft (weekday, lecture_flag) { switch (day) { case SUNDAY: case MONDAY: return lecture_flag ? 3 : 1; case TUESDAY: case WEDNESDAY: return lecture_flag ? 2 : 1; case THURSDAY: return lecture_flag ? 1 : 1; case FRIDAY: return lecture_flag ? 1 : 0; case SATURDAY: return lecture_flag ? 0 : 0; } }

Weekday Number Binary Sunday (000)2 Monday 1 (001)2 Tuesday 2 (010)2 Wednesday 3 (011)2 Thursday 4 (100)2 Friday 5 (101)2 Saturday 6 (110)2

slide-24
SLIDE 24

converting to a truth table

Weekday Number Binary Sunday (000)2 Monday 1 (001)2 Tuesday 2 (010)2 Wednesday 3 (011)2 Thursday 4 (100)2 Friday 5 (101)2 Saturday 6 (110)2 Weekday Lecture? c0 c1 c2 c3 000 0 1 0 0 000 1 0 0 0 1 001 0 1 0 0 001 1 0 0 0 1 010 0 1 0 0 010 1 0 0 1 0 011 0 1 0 0 011 1 0 0 1 0 100

  • 0 1 0 0

101 1 0 0 0 101 1 0 1 0 0 110

  • 1 0 0 0

111

  • - - -
slide-25
SLIDE 25

truth table โ‡’ logic (part one)

c3 = (DAY == SUN and LEC) or (DAY == MON and LEC) c3 = (d2 == 0 && d1 == 0 && d0 == 0 && L == 1) || (d2 == 0 && d1 == 0 && d0 == 1 && L == 1)

c3 = d2โ€™โ€ขd1โ€™โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1โ€™โ€ขd0โ€ขL

DAY d2d1d0 L c0 c1 c2 c3 SunS 000 0 0 1 SunL 000 1 0 1 MonS 001 0 0 1 MonL 001 1 0 1 TueS 010 0 0 1 TueL 010 1 0 1 WedS 011 0 0 1 WedL 011 1 0 1 Thu 100

1 FriS 101 0 1 FriL 101 1 0 1 Sat 110

  • 1
  • 111
  • -
slide-26
SLIDE 26

truth table โ‡’ logic (part two)

c3 = d2โ€™โ€ขd1โ€™โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1โ€™โ€ขd0โ€ขL

c2 = (DAY == TUE and LEC) or (DAY == WED and LEC)

c2 = d2โ€™โ€ขd1โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1โ€ขd0โ€ขL

DAY d2d1d0 L c0 c1 c2 c3 SunS 000 0 0 1 SunL 000 1 0 1 MonS 001 0 0 1 MonL 001 1 0 1 TueS 010 0 0 1 TueL 010 1 0 1 WedS 011 0 0 1 WedL 011 1 0 1 Thu 100

1 FriS 101 0 1 FriL 101 1 0 1 Sat 110

  • 1
  • 111
  • -
slide-27
SLIDE 27

truth table โ‡’ logic (part three)

c3 = d2โ€™โ€ขd1โ€™โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1โ€™โ€ขd0โ€ขL c2 = d2โ€™โ€ขd1 โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1 โ€ขd0โ€ขL c1 = c0 = d2โ€ขd1โ€™โ€ข d0 โ€ขLโ€™ + d2โ€ขd1 โ€ขd0โ€™

DAY d2d1d0 L c0 c1 c2 c3 SunS 000 0 0 1 SunL 000 1 0 1 MonS 001 0 0 1 MonL 001 1 0 1 TueS 010 0 0 1 TueL 010 1 0 1 WedS 011 0 0 1 WedL 011 1 0 1 Thu 100

1 FriS 101 0 1 FriL 101 1 0 1 Sat 110

  • 1
  • 111
  • -
  • [you do this one]
slide-28
SLIDE 28

logic โ‡’ gates

c3 = d2โ€™โ€ขd1โ€™โ€ขd0โ€™โ€ขL + d2โ€™โ€ขd1โ€™โ€ขd0โ€ขL

d2 d1 d0 L

NOT NOT NOT OR AND AND

(multiple input AND gates)

[LEVEL UP]

DAY d2d1d0 L c0 c1 c2 c3 SunS 000 0 0 1 SunL 000 1 0 1 MonS 001 0 0 1 MonL 001 1 0 1 TueS 010 0 0 1 TueL 010 1 0 1 WedS 011 0 0 1 WedL 011 1 0 1 Thu 100

1 FriS 101 0 1 FriL 101 1 0 1 Sat 110

  • 1
  • 111
  • -