1 / 56

CPSC 121: Models of Computation 2012 Summer Term 2

CPSC 121: Models of Computation 2012 Summer Term 2. Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice Belleville and others. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Outline.

sally
Download Presentation

CPSC 121: Models of Computation 2012 Summer Term 2

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPSC 121: Models of Computation2012 Summer Term 2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice Belleville and others This work is licensed under aCreative Commons Attribution 3.0 Unported License.

  2. Outline • Prereqs, Learning Goals, and Quiz Notes • Problems and Discussion • Logical equivalence practice • How to write a logical equivalence proof • A flaw in our model • Next Lecture Notes

  3. Learning Goals: Pre-Class By the start of class, you should be able to: • Translate back and forth between simple natural language statements and propositional logic, now with conditionals and biconditionals. • Evaluate the truth of propositional logical statements that include conditionals and biconditionals using truth tables. • Given a propositional logic statement and an equivalence rule, apply the rule to create an equivalent statement. Example: given (u  s)  s, apply p q  ~p  q.Note: p maps to (u  s) and q maps to s. Result: ~(u  s)  s Discuss point of learning goals.

  4. Learning Goals: In-Class By the end of this unit, you should be able to: • Explore alternate forms of propositional logic statements by application of equivalence rules, especially in order to simplify complex statements or massage statements into a desired form. • Evaluate propositional logic as a “model of computation” for combinational circuits, including at least one explicit shortfall (e.g., referencing gate delays, fan-out, transistor count, wire length, instabilities, shared sub-circuits, etc.). Discuss point of learning goals.

  5. Where We Are inThe Big Stories Theory Hardware How do we build devices to compute? Now: learning to modify circuit designs using our logical model, gaining more practice designing circuits, and identifying a flaw in our model for circuits. How do we model computational systems? Now: practicing our second technique for formally establishing the truth of a statement (logical equivalence proofs). (The first technique was truth tables.)

  6. Motivating Problem Simplify this code, proving your simplification correct: Image version: ;; Image -> Boolean ;; Produces true if image is too large to ;; fit on the HEIGHT-by-WIDTH screen. (define (too-large? image) (if (> (image-width image) WIDTH) true (if (> (image-height image) HEIGHT) true false))) List version: ;; ListOfNatural -> Boolean ;; Produces true if all numbers in lon ;; are positive and false otherwise. (define (all-positive? lon) (cond [(empty? lon) true] [else (if (<= (first lon) 0) false (all-positive? (rest lon)))]))

  7. Outline • Prereqs, Learning Goals, and Quiz Notes • Problems and Discussion • Logical equivalence practice • How to write a logical equivalence proof • A flaw in our model • Next Lecture Notes

  8. Problem: 4-Segment LED Display Problem: Build a circuit that displays the numbers 1 through 9 represented by four Boolean values a, b, c, and d on a 4-segment Boolean display. 1 2 3 4 5 6 7 8 9

  9. Problem: 4-Segment LED Display Problem: Build a circuit that displays the numbers 1 through 9 represented by four Boolean values a, b, c, and d on a 4-segment Boolean display. 1 2 3 4 5 1 2 3 4 5 6 7 8 9 6 7 8 9

  10. RECALL: Representing Positive Integers This is the convention we (and computers) use for the positive integers 0-9, which requires 4 variables:

  11. Problem: Equivalent Circuits Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table): • (~a  b)  (a  ~b  ~c) • (~a  b)  a • a  b • a  b 1 2 3 4 5 6 7 8 9

  12. Problem: Equivalent Circuits Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table). • (~a  b)  (a  ~b  ~c) • (~a  b)  a • a  b • a  b • Which of 2, 3, and 4 are equivalent? • None of them. • 2 and 3 but not 4. • 2 and 4 but not 3. • 3 and 4 but not 2. • 2, 3, and 4. 1 2 3 4 5 6 7 8 9

  13. Problem: Equivalent Circuits Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table). • (~a  b)  (a  ~b  ~c) • (~a  b)  a • a  b • a  b • How many of these are correct? • None of them. • One of them. • Two of them. • Three of them. • All four of them. 1 2 3 4 5 6 7 8 9

  14. Problem: Equivalent Circuits Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table). • (~a  b)  (a  ~b  ~c) • (~a  b)  a • a  b • a  b • Which of these proves that circuit 1 is not equivalent to circuit 3: • 2 and 4 are equivalent • 1 mentions c but 3 does not. • 1 is false with a=T b=F c=T. • None of these. 1 2 3 4 5 6 7 8 9

  15. Outline • Prereqs, Learning Goals, and Quiz Notes • Problems and Discussion • Logical equivalence practice • How to write a logical equivalence proof • A flaw in our model • Next Lecture Notes

  16. Writing an Equiv Proof: Prove (~a  b)  a  a  b Theorem: (~a  b)  a  a  b Proof: (~a  b)  a  a  (~a  b) by commutativity  (a  ~a)  (a  b) by distribution ...to be filled in...  a  b by identity QED

  17. Writing an Equiv Proof: Prove (~a  b)  a  a  b Theorem: (~a  b)  a  a  b Proof: (~a  b)  a  a  (~a  b) by commutativity  (a  ~a)  (a  b) by distribution ...to be filled in...  a  b by identity QED State your theorem. Explicitly start the proof. Start with one side...

  18. Writing an Equiv Proof: Prove (~a  b)  a  a  b Theorem: (~a  b)  a  a  b Proof: (~a  b)  a  a  (~a  b) by commutativity  (a  ~a)  (a  b) by distribution ...to be filled in...  a  b by identity QED Start with one side... ...and work to the other. Each line starts with  to indicate it’s equivalent to the previous line. End with QED!

  19. Writing an Equiv Proof: Prove (~a  b)  a  a  b Theorem: (~a  b)  a  a  b Proof: (~a  b)  a  a  (~a  b) by commutativity  (a  ~a)  (a  b) by distribution ...  a  b by identity QED Give the next statement. And justify how you got it.

  20. Problem: Prove (~a  b)  a  a  b Theorem: (~a  b)  a  a  b Proof: (~a  b)  a  a  (~a  b) by commutativity  (a  ~a)  (a  b) by distribution  ?????? by negation  a  b by identity QED • What’s missing? • (a  b) • F  (a  b) • a  (a  b) • None of these, but I know what it is. • None of these, and there’s not enough information to tell.

  21. PRACTICE Problem: Arbitrary Logic Expression Problem: Aliens hold the Earth hostage, and only you can save it by proving (a b)~(ba)~ab. Reminder (“IMP” on “Dave’s Formula Sheet”): p  q  ~p  q

  22. Collected Wisdom So far: • Try getting rid of : p  q  ~p  q • Try moving negations inward: ~(p  q)  ~p  ~q • Work from the simpler side first, BUT • Switch to different strategies/sides when you get stuck • In the end, write the proof in clean “one-side-to-the-other” form and double-check steps Also: • Try distribution to pull out common terms OR • Try distribution to rearrange terms • Try working with a simpler part of the statement first • Try getting rid of : p  q  p  q  q  p • Try getting rid of : p  q  ~(p  q)

  23. Outline • Prereqs, Learning Goals, and Quiz Notes • Problems and Discussion • Logical equivalence practice • How to write a logical equivalence proof • A flaw in our model • Next Lecture Notes

  24. “Multiplexer” A circuit that, given three inputs a, b, and c (the “control” signal), outputs a’s value when c is F and b’s when c is T. a 0 out (~a  b  c)  ( a  ~b  ~c)  ( a  b  ~c)  ( a  b  c) b 1 c This circuit is called a multiplexer.

  25. MUX Design Here’s one implementation of the multiplexer (MUX) circuit. (Is this equivalentto the previousslide’s formula?Good question...prove that it is forpractice at home!) a 0 out b 1 c

  26. Truthy MUX What is the intended output if both a and b are T? • T • F • Unknown... but could be answered given a value for c. • Unknown... and might still be unknown even given a value for c. a 0 out b 1 c

  27. Glitch in MUX Design Imagine the circuit is in steady-state with a, b, and c all T. Trace how changes flow when we change c to F, if each gate takes 10ns to operate. a 0 out b 1 c PRACTICE: Prove that this circuit’s model is logically equivalent to the previous slide’s statement.

  28. Trace: -1 ns T F F a 0 T out T T b 1 T c

  29. Trace: 0 ns T F F a 0 T * out T T * b 1 F OFF c

  30. Trace: 10 ns T * F T a 0 T * out T F b 1 F OFF c

  31. Tracing a MUX Assume the output starts at 1. We want it to end up at 1. How long does it take before it’s stable? (Choose the best answer.) • 0 ns (it never varies from 1) • 10 ns (it varies before 10ns, but not after) • 20 ns • 30 ns • 40 ns a 0 out b 1 c

  32. Trace: -1 ns T F F a 0 T out T T b 1 T c

  33. Trace: 0 ns T F F a 0 T * out T T * b 1 F OFF c

  34. Trace: 10 ns T * F T a 0 T * out T F b 1 F OFF c

  35. Trace: 20 ns T T T a 0 F * out T F b 1 F OFF c

  36. Trace: 30 ns T T T a 0 T out T F b 1 F OFF c

  37. Trace: 40 ns T T T a 0 T out T F b 1 F OFF c

  38. Other MUX Glitches? The mux glitches because information from c travels two paths with different delays. While the longer path “catches up” the circuit can be incorrect. PRACTICE: Trace the circuit to show why none of these can cause a glitch: • Changing a (keeping b and c constant) • Changing b (keeping a and c constant) • Changing c (keeping a and b constant if at least one of them is F) a 0 out b 1 c

  39. A Glitchless MUX This circuit uses what we know when a = b = T. PRACTICE: Prove that it’s logically equivalent to the original MUX. Hint: break a  b up into two cases, one where c is true and one where c is false: a  b  c and a  b  ~c. a 0 out b 1 c

  40. Outline • Prereqs, Learning Goals, and Quiz Notes • Problems and Discussion • Logical equivalence practice • How to write a logical equivalence proof • A flaw in our model • Next Lecture Notes

  41. Learning Goals: In-Class By the end of this unit, you should be able to: • Explore alternate forms of propositional logic statements by application of equivalence rules, especially in order to simplify complex statements or massage statements into a desired form. • Evaluate propositional logic as a “model of computation” for combinational circuits, including at least one explicit shortfall (e.g., referencing gate delays, fan-out, transistor count, wire length, instabilities, shared sub-circuits, etc.). Discuss point of learning goals.

  42. Motivating Problem Doing in class if we have time. Simplify this code, proving your simplification correct: Image version: ;; Image -> Boolean ;; Produces true if image is too large to ;; fit on the HEIGHT-by-WIDTH screen. (define (too-large? image) (if (> (image-width image) WIDTH) true (if (> (image-height image) HEIGHT) true false))) List version: ;; ListOfNatural -> Boolean ;; Produces true if all numbers in lon ;; are positive and false otherwise. (define (all-positive? lon) (cond [(empty? lon) true] [else (if (<= (first lon) 0) false (all-positive? (rest lon)))])) We’ll focus only on this one. Left as an exercise. But…Note: if you simplify away the cond, you losethe structure that reflects theListOfNatural data representation.

  43. Motivating Problem Simplify the code, proving your simplification correct. Let w = (> (image-width image) WIDTH). Let h = (> (image-height image) HEIGHT). Then, what does the code mean? (if w then true, else (if h then true, else false)) How do we express (if x then y, else z) in propositional logic? (x  y)  (~x  z) Which gives us: (w  T)  (~w  ((h  T)  (~h  F)))

  44. Motivating Problem Simplify the code, proving your simplification correct. Simplify: (w  T)  (~w  ((h  T)  (~h  F))) How should we proceed? What’s a promising starting point?

  45. Motivating Problem Simplify the code, proving your simplification correct. • Simplify: (w  T)  (~w  ((h  T)  (~h  F))) • How should we proceed? What’s a promising starting point? • Which of these is relevant? • Try getting rid of : p  q  ~p  q • Try moving negations inward: ~(p  q)  ~p  ~q • Work from the simpler side first, BUT • Switch to different strategies/sides when you get stuck • In the end, write the proof in clean “one-side-to-the-other” form and double-check steps • Try distribution to pull out common terms OR • Try distribution to rearrange terms • Try working with a simpler part of the statement first • Try getting rid of : p  q  p  q  q  p • Try getting rid of : p  q  ~(p  q)

  46. Motivating Problem Simplify the code, proving your simplification correct. Simplify: (w  T)  (~w  ((h  T)  (~h  F))) How should we proceed? What’s a promising starting point? “Lemma 1”: (h  T)  (~h  F)  h (h  T)  (~h  F) (~h  T)  (~h  F) (by IMP)  (~h  T)  (~~h  F) (by IMP)  (~h  T)  (h  F) (by DNEG) skippable  T  (h  F) (by UB)  T  h (by I)  h (by I)

  47. Motivating Problem Simplify the code, proving your simplification correct. Simplify: (w  T)  (~w  ((h  T)  (~h  F))) How should we proceed? What’s a promising starting point? (w  T)  (~w  ((h  T)  (~h  F)))  (w  T)  (~w  h) (by Lemma 1)  (~w  T)  (~w  h) (by IMP)  (~w  T)  (w  h) (by IMP)  T  (w  h) (by UB)  w  h (by I)

  48. Motivating Problem Simplify the code, proving your simplification correct. What can we conclude from: (w  T)  (~w  ((h  T)  (~h  F)))  w  h This code: (if (> (image-width image) WIDTH) true (if (> (image-height image) HEIGHT) true false))) Is equivalent to this code: (or (> (image-width image) WIDTH) (> (image-height image) HEIGHT)) WARNING: Be careful as you use proofs like this if evaluating part of the code matters for more than its result (e.g., for printing something to the screen).

  49. Motivating Problem We’ve proven that this: (if (> (image-width image) WIDTH) true (if (> (image-height image) HEIGHT) true false))) Is equivalent to: (or (> (image-width image) WIDTH) (> (image-height image) HEIGHT)) Should you “even bother” running your tests, since we proved it? Of course! Your tests give you confidence that your proof was correct, and that your model was accurate. By the way, notice something interesting: our proof prvoved the code transformation correct. Do passing tests prove the code they test is correct? Tests and proofs serve different purposes.

  50. Next Lecture Learning Goals: Pre-Class By the start of class, you should be able to: • Convert positive numbers from decimal to binary and back. • Convert positive numbers from hexadecimal to binary and back. • Take the two’s complement of a binary number. • Convert signed (either positive or negative) numbers to binary and back. • Add binary numbers. Discuss point of learning goals.

More Related