Transcript
Page 1: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

snick

snack

CPSC 121: Models of Computation2013W2

Propositional Logic: Conditionals and Logical Equivalence

Steve Wolfman, based on notes by Patrice Belleville and others

1                           

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

Page 2: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

2

Page 3: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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 10

Page 4: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.).

11

Page 5: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Where We Are inThe Big Stories

Theory

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.)

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.

12

Page 6: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify this code, proving your simplification correct:

13

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)))]))

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)))

Page 7: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

14

Page 8: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

15

Page 9: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

16

321

654

987

Page 10: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

RECALL: Representing Positive Integers

17

This is the convention we (and computers) use for the positive integers 0-9, which requires 4 variables:

# a b c d

0 F F F F

1 F F F T

2 F F T F

3 F F T T

4 F T F F

5 F T F T

6 F T T F

7 F T T T

8 T F F F

9 T F F T

...

Page 11: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Equivalent Circuits

Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table):

1.(~a b) (a ~b ~c)

2.(~a b) a3.a b

4.a b

18

321

654

987

Page 12: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Equivalent Circuits

Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table).

1.(~a b) (a ~b ~c)

2.(~a b) a3.a b

4.a b

Which of 2, 3, and 4 are equivalent?a.None of them.b.2 and 3 but not 4.c.2 and 4 but not 3.d.3 and 4 but not 2.e.2, 3, and 4.

19

321

654

987

Page 13: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Equivalent Circuits

Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table).

1.(~a b) (a ~b ~c)

2.(~a b) a3.a b

4.a b

How many of these are correct?a.None of them.b.One of them.c.Two of them.d.Three of them.e.All four of them.

20

321

654

987

Page 14: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Equivalent Circuits

Problem: Consider these circuits for the top LED in the 4-segment display (assuming inputs abcd from the previous table).

1.(~a b) (a ~b ~c)

2.(~a b) a3.a b

4.a b

Which of these proves that circuit 1 is not equivalent to circuit 3:a.2 and 4 are equivalentb.1 mentions c but 3 does not.c.Their values differ on a=T b=F c=T.d.None of these.

21

321

654

987

Page 15: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

22

Page 16: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Writing an Equiv Proof: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

...to be filled in...

a b by identity

QED23

Page 17: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Writing an Equiv Proof: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

...to be filled in...

a b by identity

QED24

State your theorem.

Explicitly start the proof.

Start with one side...

Page 18: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Writing an Equiv Proof: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

...to be filled in...

a b by identity

QED25

Start with one side...

Each line starts with to indicate it’s equivalent to the previous line.

...and work to the other.

End with QED!

Page 19: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Writing an Equiv Proof: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

...

a b by identity

QED26

Give the next statement. And justify how you got it.

Page 20: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

?????? by negation

a b by identity

QED

27

What’s missing?

a.(a b)b.F (a b)c.a (a b)d.None of these, but I know what it is.e.None of these, and there’s not enough information to tell.

Page 21: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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 q28

Page 22: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Collected WisdomSo far:•Try getting rid of : p q ~p q•Try moving negations inward: ~(p q) ~p ~q•Work from the more complex 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)

29

Page 23: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

30

Page 24: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

“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.

This circuit is called a multiplexer.

a

bout

c

0

1

31

(~a b c) ( a ~b ~c) ( a b ~c) ( a b c)

a b c out

F F F F

F F T F

F T F F

F T T T

T F F T

T F T F

T T F T

T T T T

Page 25: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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!)

32

a

bout

c

0

1

Page 26: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Truthy MUX

What is the intended output if both a and b are T?

a. T

b. F

c. Unknown... but could be answered given a value for c.

d. Unknown... and might still be unknown even given a value for c.

33

a

bout

c

0

1

Page 27: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.

34

a

bout

c

0

1

Page 28: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: -1 ns

35

T

F

T

TT

T

F

a

bout

c

0

1

Page 29: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 0 ns

36

T

F

T

TT

F

F

OFF

*

*

a

bout

c

0

1

Page 30: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 10 ns

37

T

F

T

FT

F

T

OFF

*

*

a

bout

c

0

1

Page 31: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.)

a.0 ns (it never varies from 1)

b.10 ns (it varies before 10ns, but not after)

c.20 ns

d.30 ns

e.40 ns38

a

bout

c

0

1

Page 32: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: -1 ns

39

T

F

T

TT

T

F

a

bout

c

0

1

Page 33: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 0 ns

40

T

F

T

TT

F

F

OFF

*

*

a

bout

c

0

1

Page 34: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 10 ns

41

T

F

T

FT

F

T

OFF

*

*

a

bout

c

0

1

Page 35: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 20 ns

42

T

T

F

FT

F

T

OFF

*

a

bout

c

0

1

Page 36: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 30 ns

43

T

T

T

FT

F

T

OFF

a

bout

c

0

1

Page 37: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Trace: 40 ns

44

T

T

T

FT

F

T

OFF

a

bout

c

0

1

Page 38: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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)

45

a

bout

c

0

1

Page 39: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.

46

a

bout

c

0

1

Page 40: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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

47

Page 41: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.).

48

Page 42: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify this code, proving your simplification correct:

49

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)))]))

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)))

We’ll focus only on this one. Left as an exercise. But…Note: if you simplify

away the cond, you losethe structure that reflects the

ListOfNatural data representation.

Doing in class if we have time.

Page 43: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

51

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)))

Page 44: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

52

Simplify: (w T) (~w ((h T) (~h F)))

How should we proceed? What’s a promising starting point?

Page 45: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

53

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)

Page 46: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

54

Simplify: (w T) (~w ((h T) (~h F)))

How should we proceed? What’s a promising starting point?

“Lemma 1”, proven below: (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)

Page 47: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

55

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)

Page 48: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating Problem

Simplify the code, proving your simplification correct.

56

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).

Page 49: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Motivating ProblemWe’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?

57

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.

Page 50: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

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.

58

Page 51: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Next Lecture Prerequisites

Read Section 2.5 and the supplemental handout: http://www.ugrad.cs.ubc.ca/~cs121/current/

handouts/signed-binary-decimal-conversions.html

Complete the open-book, untimed quiz on Connect that’s due before the next class.

59

Page 52: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

snick

snack

Some Things to Try...

(on your own if you have time, not required)

60

Page 53: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: String equals

Consider the following from the Java 6 API documentation for the String class’s equals method:...The [method returns] true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

Let n1 mean “this string is null”, n2 mean “the argument is null”, r mean “the method returns true”, and s mean “the two strings are objects that represent the same sequence of characters”.

Presumably any two null strings are equal to each other. Then, equality would become something like “the method returns true if and only if the two strings both null or are objects that represent the same sequence of characters”.

Problem: Is that logically equivalent to the statement from the API? Why or why not?

61

Page 54: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Decisions in Code

Consider the following code, part of a “binary bounds search”:if target equals value then

if lean-left-mode is true

call the go-left routine

otherwise

call the go-right routine

otherwise if target is less than value then

call the go-left routine

otherwise

call the go-right routine

62

Page 55: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Decisions in Code

Let gl mean “the go-left routine is called”

Problem: complete the logical expression

gl _____________________

Problem: Use your logic to simplify the pseudocode so it requires just one “if/otherwise”.

63

Page 56: Snick  snack CPSC 121: Models of Computation 2013W2 Propositional Logic: Conditionals and Logical Equivalence Steve Wolfman, based on notes by Patrice

Problem: Prove (~a b) a a b

Theorem: (~a b) a a bProof:

(~a b) a

a (~a b) by commutativity

(a ~a) (a b) by distribution

...

a b by identity

QED64

State your theorem.

Explicitly start the proof.

Start with one side...

Each line starts with to indicate it’s equivalent to the previous line.

Give the next statement. And justify how you got it.

End with QED!

...and work to the other.


Recommended