92
snick snack CPSC 121: Models of Computation 2013W2 Proof (First Visit) Steve Wolfman, based on notes by Patrice Belleville, Meghan Allen and others 1 This work is licensed under a Creative Commons Attribution 3.0 Unported License .

CPSC 121: Models of Computation 2013W2

Embed Size (px)

DESCRIPTION

CPSC 121: Models of Computation 2013W2. Proof (First Visit) Steve Wolfman, based on notes by Patrice Belleville, Meghan Allen and others. This work is licensed under a Creative Commons Attribution 3.0 Unported License. Outline. Prereqs, Learning Goals, and Quiz Notes Prelude: What Is Proof? - PowerPoint PPT Presentation

Citation preview

Page 1: CPSC 121: Models of Computation 2013W2

snick

snack

CPSC 121: Models of Computation2013W2

Proof (First Visit)

Steve Wolfman, based on notes by Patrice Belleville, Meghan Allen and others

1                           

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

Page 2: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata, Explore and Critique

• Next Lecture Notes

2

Page 3: CPSC 121: Models of Computation 2013W2

Learning Goals: Pre-Class

By the start of class, you should be able to:– Use truth tables to establish or refute the

validity of a rule of inference.– Given a rule of inference and propositional

logic statements that correspond to the rule’s premises, apply the rule to infer a new statement implied by the original statements.

3

Page 4: CPSC 121: Models of Computation 2013W2

Learning Goals: In-Class

By the end of this unit, you should be able to:– Explore the consequences of a set of

propositional logic statements by application of equivalence and inference rules, especially in order to massage statements into a desired form.

– Critique a propositional logic proof; that is, determine whether or not is valid (and explain why) and judge the applicability of its result to a specific context.

– Devise and attempt multiple different, appropriate strategies for proving a propositional logic statement follows from a list of premises.

4

Page 5: CPSC 121: Models of Computation 2013W2

Where We Are inThe Big Stories

Theory

How do we model computational systems?

Now: Continuing to build the foundation for our proofs. (We’ll get to the level of proof we really need starting with the next unit.)

Hardware

How do we build devices to compute?

Now: Taking a bit of a vacation in lecture!

5

Page 6: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Assuming that a and c cannot both be true and that this function produces true:;; Boolean Boolean Boolean Boolean -> Boolean

(define (rearrange-cond? a b c d)

(cond [a b]

[c d]

[else e]))

Prove that the following function also produces true:;; Boolean Boolean Boolean Boolean -> Boolean

(define (rearrange-cond? a b c d)

(cond [c d]

[a b]

[else e]))

6

But first, prove these handy “lemmas”:1.p (q r) (p q) (p r)2.p (q r) q (p r)

(Reality check: you must be able to do formal proofs. But, as with using equivalence laws to reorganize code, in practice you’ll often reason using proof techniques but without a formal proof.)

Page 7: CPSC 121: Models of Computation 2013W2

NOT a Quiz Note

~p~(p v q)

a.This is valid by generalization (p p v q).b.This is valid because anytime ~p is true, ~(p v q) is also true.c.This is invalid by generalization (p p v q).d.This is invalid because when p = F and q = T, ~p is true but ~(p v q) is false.e.None of these.

10

Page 8: CPSC 121: Models of Computation 2013W2

What does this mean?

We can always substitute something equivalent for a subexpression of a logical expression.

We cannot always apply a rule of inference to just a part of a logical statement.

Therefore, we will only apply rules of inference to complete statements, no matter what!

11

Page 9: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata, Explore and Critique

• Next Lecture Notes

12

Page 10: CPSC 121: Models of Computation 2013W2

What is Proof?

A rigorous formal argument that unequivocally demonstrates the

truth of a proposition, given the truth of the proof’s premises.

Adapted from MathWorld: http://mathworld.wolfram.com/Proof.html13

Page 11: CPSC 121: Models of Computation 2013W2

What is Proof?

A rigorous formal argument that unequivocally demonstrates the

truth of a proposition (conclusion), given the truth of the proof’s

premises.

Adapted from MathWorld: http://mathworld.wolfram.com/Proof.html14

Page 12: CPSC 121: Models of Computation 2013W2

Problem: Meaning of Proof

Let’s say you prove the following:

Premise 1Premise 2 ⁞Premise nConclusion

Can one of the premises be false?

a.No, proofs may not use false premisesb.No, the proof shows that the premises are truec.Yes, but then the conclusion is falsed.Yes, but then we know nothing about the conclusione.Yes, but we still know the conclusion is true

15

Page 13: CPSC 121: Models of Computation 2013W2

Tasting Powerful Proof: Some Things We Might Prove

• We can build a “light that changes state when a switch is flipped” system with any number of switches.

• We can build a combinational circuit matching any truth table.

• We can build any digital logic circuit using nothing but NAND gates.

• We can sort a list by breaking it in half, and then sorting and merging the halves.

• We can find the GCD of two numbers by finding the GCD of the 2nd and the remainder when dividing the 1st by the 2nd.

• Is there any fair way to run elections?• Are there problems that no program can solve?

Meanwhile...16

Page 14: CPSC 121: Models of Computation 2013W2

What Is a Propositional Logic Proof?

An argument in which:(1) each line is a propositional logic statement,(2) each statement is a premise or follows unequivocally by a previously established rule of inference from the truth of previous statements, and (3) the last statement is the conclusion.

A very constrained form of proof, but a good starting point.Interesting proofs will usually come in less structured

packages than propositional logic proofs.17

Page 15: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata, Explore and Critique

• Next Lecture Notes

18

Page 16: CPSC 121: Models of Computation 2013W2

Prop Logic Proof Problem

To prove:

~(q r)(u q) s

~s ~p___

~p

19

Page 17: CPSC 121: Models of Computation 2013W2

“Prove Your Own Adventure”

To prove:

~(q r)(u q) s

~s ~p___

~p

Which step is the easiest to fill in?

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise[STEP A: near the start] [STEP B: in the middle]

[STEP C: near the end][STEP D: last step]

20

Page 18: CPSC 121: Models of Computation 2013W2

D: Last Step

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise

...~q ~r De Morgan’s (1)~q Specialization (?)

...((u q) s) Bicond (2) (s (u q))

...~s~p Modus ponens (3,?)

Why do we want to put ~p at the end?

a.~p is the proof’s conclusionb.~p is the end of the last premisec.every proof ends with ~pd.None of these but some other reasone.None of these because we don’t want it there

21

Page 19: CPSC 121: Models of Computation 2013W2

C: Near the End

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise

...~q ~r De Morgan’s (1)~q Specialization (?)

...((u q) s) Bicond (2) (s (u q))

...~s~p Modus ponens (3,?)

Why do we want to put the blue line/justification at the end?

a.~s ~p is the last premiseb.~s ~p is the only premise that mentions ~sc.~s ~p is the only premise that mentions pd.None of these but some other reasone.None of these b/c we don’t want it there

22

Page 20: CPSC 121: Models of Computation 2013W2

A: Near the Start

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise

...~q ~r De Morgan’s (1)~q Specialization (?)

...((u q) s) Bicond (2) (s (u q))

...~s~p Modus ponens (3,?)

Why do we want the blue lines/justifications?

a.~(q r) is the first premiseb.~(q r) is a useless premisec.We can’t work directly with a premise with a negation “on the outside”d.Neither the conclusion nor another premise mentions re.None of these

23

Page 21: CPSC 121: Models of Computation 2013W2

B: In the Middle

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise

...~q ~r De Morgan’s (1)~q Specialization (?)

...((u q) s) Bicond (2) (s (u q))

...~s~p Modus ponens (3,?)

Why do we want the blue line/justification?

a.(u q) s is the only premise leftb.(u q) s is the only premise that mentions uc.(u q) s is the only premise that mentions s without a negationd.We have no rule to get directly from one side of a biconditional to the othere.None of these

24

Page 22: CPSC 121: Models of Computation 2013W2

Prop Logic Proof Strategies

• Work backwards from the end• Play with alternate forms of premises• Identify and eliminate irrelevant information• Identify and focus on critical information• Alter statements’ forms so they’re easier to

work with• “Step back” from the problem frequently to

think about assumptions you might have wrong or other approaches you could take

And, if you don’t know that what you’re trying to prove follows...switch from proving to disproving and back now and then.

33

Page 23: CPSC 121: Models of Computation 2013W2

Continuing From There

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise4. ~q ~r De Morgan’s (1)5. ~q Specialization (4)6. ((u q) s) Bicond (2) (s (u q))7. ?????? Specialization (6)

...~s~p Modus ponens (3,?)

Which direction of goes in step 7?

a.(u q) s because the simple part is on the rightb.(u q) s because the other direction can’t establish ~sc.s (u q) because the simple part is on the leftd.s (u q) because the other direction can’t establish ~se.None of these

34

Page 24: CPSC 121: Models of Computation 2013W2

Aside: What does it mean to “work backward”?Take the conclusion of the proof.

Use a rule in reverse to generate something closer to a statement you already have (like a premise).

37

Page 25: CPSC 121: Models of Computation 2013W2

Finishing Up (1 of 3)

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise4. ~q ~r De Morgan’s (1)5. ~q Specialization (4)6. ((u q) s) Bicond (2) (s (u q))7. s (u q) Specialization (6) 8. ???? ????9. ~(u q) ????10. ~s Modus tollens (7, 9)11. ~p Modus ponens (3,10)

We know we needed ~(u q) on line 9 because that’s what we created line 7 for!

Side Note: Can we work directly with a statement with a negation “on the outside”?

38

Page 26: CPSC 121: Models of Computation 2013W2

Finishing Up (1 of 3)

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise4. ~q ~r De Morgan’s (1)5. ~q Specialization (4)6. ((u q) s) Bicond (2) (s (u q))7. s (u q) Specialization (6) 8. ???? ????9. ~(u q) ????10. ~s Modus tollens (7, 9)11. ~p Modus ponens (3,10)

We know we needed ~(u q) on line 9 because that’s what we created line 7 for!

Now, how do we get ~(u q)?

Working forward is tricky. Let’s work backward. What is ~(u q) equivalent to? 39

Page 27: CPSC 121: Models of Computation 2013W2

Finishing Up (2 of 3)

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise4. ~q ~r De Morgan’s (1)5. ~q Specialization (4)6. ((u q) s) Bicond (2) (s (u q))7. s (u q) Specialization (6) 8. ~u ~q ????9. ~(u q) De Morgan’s (8)10. ~s Modus tollens (7, 9)11. ~p Modus ponens (3,10)

All that’s left is to get to ~u ~q. How do we do it?

40

Page 28: CPSC 121: Models of Computation 2013W2

Finishing Up (3 of 3)

To prove:

~(q r)(u q) s

~s ~p___

~p

1. ~(q r) Premise2. (u q) s Premise3. ~s ~p Premise4. ~q ~r De Morgan’s (1)5. ~q Specialization (4)6. ((u q) s) Bicond (2) (s (u q))7. s (u q) Specialization (6) 8. ~u ~q Generalization (5)9. ~(u q) De Morgan’s (8)10. ~s Modus tollens (7, 9)11. ~p Modus ponens (3,10)

As usual in our slides, we made no mistakes and reached no dead ends. That’s not the way things really go on difficult proofs!

Mistakes and dead ends are part of the discovery process! So, step back now and then and reconsider your assumptions and approach! 41

Page 29: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata, Explore and Critique

• Next Lecture Notes

42

Page 30: CPSC 121: Models of Computation 2013W2

Limitations of Truth Tables

Why not just use truth tables to prove propositional logic theorems?

a.No reason; truth tables are enough.b.Truth tables scale poorly to large problems.c.Rules of inference and equivalence rules can

prove theorems that cannot be proven with truth tables.

d.Truth tables require insight to use, while rules of inference can be applied mechanically.

43

Page 31: CPSC 121: Models of Computation 2013W2

Limitations of Logical Equivalences

Why not use logical equivalences to prove that the conclusions follow from the premises?

a.No reason; logical equivalences are enough.b.Logical equivalences scale poorly to large

problems.c.Rules of inference and truth tables can prove

theorems that cannot be proven with logical equivalences.

d.Logical equivalences require insight to use, while rules of inference can be applied mechanically.

44

Page 32: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata: Explore and Critique

• Next Lecture Notes

45

Page 33: CPSC 121: Models of Computation 2013W2

Preparatory Comments

When we apply logic to a domain, we give interpretations for the logical symbols. That interpretation is where we can argue things like “meaning”, “values”, and “moral right”. Within the logical context, we argue purely on the basis of structure and irrefutable manipulations of that structure.

And… statements contradict each other when, taken together, they are logically equivalent to F, such as(a ~a). There is no way for them to be simultaneously true.

46

Page 34: CPSC 121: Models of Computation 2013W2

Problem: Onnagata

Problem: Critique the following argument.

Premise 1: If women are too close to femininity to portray women then men must be too close to masculinity to play men, and vice versa.

Premise 2: And yet, if the onnagata are correct, women are too close to femininity to portray women and yet men are not too close to masculinity to play men.

Conclusion: Therefore, the onnagata are incorrect, and women are not too close to femininity to portray women.

47

Page 35: CPSC 121: Models of Computation 2013W2

Contradictory Premises?

Do premises #1 and #2 contradict each other (i.e., is (premise1 premise2) logically equivalent to F)?

a. Yes

b. No

c. Not enough information to tell.

49

Page 36: CPSC 121: Models of Computation 2013W2

Defining the Problem

Does it make sense to use the definition “w = women” for a propositional logic variable w?

a. Yes, in this problem.

b. Yes, but not in this problem.

c. No, not in this problem.

d. No, not in any problem.

50

Page 37: CPSC 121: Models of Computation 2013W2

Translating the Statements

Which of these is an accurate translation of one of the statements?

a.w m

b.(w m) (m w)

c.o (w ~m)

d.~o ~w

51

Page 38: CPSC 121: Models of Computation 2013W2

Contradictory Premises?

So premises #1 and #2 are w m and o (w ~m).

Do premises #1 and #2 contradict each other (i.e., is (premise1 premise2) logically equivalent to F)?

a. Yes

b. No

c. Not enough information to tell.

52

Page 39: CPSC 121: Models of Computation 2013W2

Problem: Now, Explore!

Critique the argument by either:

(1) Proving it correct (and commenting on how good the propositional logic model’s fit to the context is).

How do we prove prop logic statements?

(2) Showing that it is an invalid argument.

How do we show an argument is invalid? (Remember the quiz!)

53

Page 40: CPSC 121: Models of Computation 2013W2

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Prelude: What Is Proof?

• Problems and Discussion– “Prove Your Own Adventure”– Why rules of inference? (advantages + tradeoffs)

– Onnagata, Explore and Critique

• Next Lecture Notes

54

Page 41: CPSC 121: Models of Computation 2013W2

Next Lecture Learning Goals: Pre-Class

By the start of class, you should be able to:– Evaluate the truth of statements that include

predicates applied to particular values.– Show predicate logic statements are true by

enumerating examples (i.e., all examples in the domain for a universal or one for an existential).

– Show predicate logic statements are false by enumerating counterexamples (i.e., one counterexample for universals or all in the domain for existentials).

– Translate between statements in formal predicate logic notation and equivalent statements in closely matching informal language (i.e., informal statements with clear and explicitly stated quantifiers).

55

Page 42: CPSC 121: Models of Computation 2013W2

Next Lecture Prerequisites

Review (Epp 4th ed) Chapter 2 and be able to solve any Chapter 2 exercise.

Read Sections 3.1 and 3.3 (skipping the “Negation” sections in 3.3)

Complete the open-book, untimed online quiz.

56

Page 43: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Assuming that a and c cannot both be true and that this function produces true:;; Boolean Boolean Boolean Boolean -> Boolean

(define (rearrange-cond? a b c d)

(cond [a b]

[c d]

[else e]))

Prove that the following function also produces true:;; Boolean Boolean Boolean Boolean -> Boolean

(define (rearrange-cond? a b c d)

(cond [c d]

[a b]

[else e]))

57

First, prove these handy “lemmas”:1.p (q r) (p q) (p r)2.p (q r) q (p r)

Page 44: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Assuming that a and c cannot both be true, and that this function produces true:;; Boolean Boolean Boolean Boolean -> Boolean

(define (rearrange-cond? a b c d)

(cond [a b]

[c d]

[else e]))

We leave the lemmas as an exercise:

1.p (q r) (p q) (p r)

2.p (q r) q (p r)

In prop logic:•~(a b) premise•(a b) (~a ((c d) (~c e))) premise•…•(c d) (~c ((a b) (~a e))) target conclusion

58

We’ll use our “heuristics” to work forward and backward until we solve the problem.

Page 45: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.…

4.(c d) “subgoal”

5.(~c ((a b) (~a e))) “subgoal”

6.(c d) (~c ((a b) (~a e))) by CONJ on 4, 5

59

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

We start by working backward; how de we prove x y? Well, one way is to prove x and also prove y. We’ll break those into two separate subproblems!

Side note: we’ll use the two statements you proved as exercises as “lemmas”: rules we proved for use in this proof. (Want to use them on an assignment / exam? Prove them there!)

Page 46: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.…

4.(c d) “subgoal”

5.(~c (a b)) (~c (~a e))) “subgoal”

6.(~c ((a b) (~a e))) Lemma 1 on 5

7.(c d) (~c ((a b) (~a e))) by CONJ on 4, 6

60

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

The second of these subgoals is still huge. We decided to break it into two pieces (and that’s why we went off and proved Lemma 1).

Page 47: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.…

4.(c d) “subgoal”

5.~c (a b) “subgoal”

6.~c (~a e) “subgoal”

7.(~c (a b)) (~c (~a e))) by CONJ on 5, 6

8.(~c ((a b) (~a e))) Lemma 1 on 7

9.(c d) (~c ((a b) (~a e))) by CONJ on 4, 8

61

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

Now, we can attack those two pieces separately (which feels like it might be the wrong approach to me… but worth a try!)

Page 48: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.…

5.(c d) “subgoal”

6.~c (a b) “subgoal”

7.~c (~a e) “subgoal”

8.(~c (a b)) (~c (~a e))) by CONJ on 6, 7

9.(~c ((a b) (~a e))) Lemma 1 on 8

10.(c d) (~c ((a b) (~a e))) by CONJ on 5, 9

62

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

I’m out of ideas at the end. I switch to the beginning and play around with premises. (Foreshadowing: I didn’t figure out what to do with this premise until near the end.)

Page 49: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.…

6.(c d) “subgoal”

7.~c (a b) “subgoal”

8.~c (~a e) “subgoal”

9.(~c (a b)) (~c (~a e))) by CONJ on 7, 8

10.(~c ((a b) (~a e))) Lemma 1 on 9

11.(c d) (~c ((a b) (~a e))) by CONJ on 6, 10

63

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

Let’s try the other premise.

Page 50: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.…

7.(c d) “subgoal”

8.~c (a b) “subgoal”

9.~c (~a e) “subgoal”

10.(~c (a b)) (~c (~a e))) by CONJ on 8, 9

11.(~c ((a b) (~a e))) Lemma 1 on 10

12.(c d) (~c ((a b) (~a e))) by CONJ on 7, 11

64

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

Continuing with that premise…Hey! We can use our Lemma again!

Page 51: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.…

8.(c d) “subgoal”

9.~c (a b) “subgoal”

10.~c (~a e) “subgoal”

11.(~c (a b)) (~c (~a e))) by CONJ on 9, 10

12.(~c ((a b) (~a e))) Lemma 1 on 11

13.(c d) (~c ((a b) (~a e))) by CONJ on 8, 12

65

Lemmas:1.p (q r) (p q) (p r)2.p (q r) q (p r)

Continuing with that premise…

Page 52: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.…

9.(c d) “subgoal”

10.~c (a b) “subgoal”

11.~c (~a e) “subgoal”

12.(~c (a b)) (~c (~a e))) by CONJ on 10, 11

13.(~c ((a b) (~a e))) Lemma 1 on 12

14.(c d) (~c ((a b) (~a e))) by CONJ on 9, 13

66

Lemma 2: p (q r) q (p r)

Continuing with that premise…

Page 53: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.~c (a b) “subgoal”

12.~c (~a e) “subgoal”

13.(~c (a b)) (~c (~a e))) by CONJ on 11, 12

14.(~c ((a b) (~a e))) Lemma 1 on 13

15.(c d) (~c ((a b) (~a e))) by CONJ on 10, 14

67

AHA!!

Lemma 2: p (q r) q (p r)

Continuing with that premise…

We treated connecting these as its own problem and came up with Lemma 2!

Page 54: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.~c (a b) “subgoal”

12.~c (~a e) by Lemma 2 on 8

13.(~c (a b)) (~c (~a e))) by CONJ on 11, 12

14.(~c ((a b) (~a e))) Lemma 1 on 13

15.(c d) (~c ((a b) (~a e))) by CONJ on 10, 14

68

Lemma 2: p (q r) q (p r)

Lemma 2 lets us connect these directly!

Now what. Let’s pause, remind ourselves what our (sub)goals are, and look at what we have.

Page 55: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.~c (a b) “subgoal”

12.~c (~a e) by Lemma 2 on 8

13.(~c (a b)) (~c (~a e))) by CONJ on 11, 12

14.(~c ((a b) (~a e))) Lemma 1 on 13

15.(c d) (~c ((a b) (~a e))) by CONJ on 10, 14

69

Hmm..

Lemma 2: p (q r) q (p r)

How do we do something with this? Again, we treated this as a separate problem:

Page 56: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Subproblem:

1. a b premise

2.…

3.~c (a b) “subgoal”

70

Now we do our usual. Get rid of , work backward, work forward…

This time, we’ll show you what we did. We broke out the goal and starting point and turned them into a whole other proof problem!

Page 57: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Subproblem:

1. a b premise

2.~a b by IMP on 1

3.…

4.c ~a b “subgoal”

5.c (a b) by IMP on 4

6.~c (a b) by IMP on 5

71

That’s about as far as dumping can take us.

But, look at step 2 and step 4. What’s the difference?

Page 58: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

Subproblem:• a b premise•~a b by IMP on 1•c ~a b by GEN on 2•c (a b) by IMP on 3•~c (a b) by IMP on 4

72

Great! We can always OR on something else.

We did it!

Let’s patch it back into the original proof.

But… could we have done it more easily? Question your solutions!

(Hint: check out line 4. How can you get there?)

Page 59: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.c (a b) “subgoal”

12.~c (a b) by IMP on 11

13.~c (~a e) by Lemma 2 on 8

14.(~c (a b)) (~c (~a e))) by CONJ on 12, 13

15.(~c ((a b) (~a e))) Lemma 1 on 14

16.(c d) (~c ((a b) (~a e))) by CONJ on 10, 15

73

Patching in “step 4” of the previous proof. Can it get us back to step 4 of this proof?

Page 60: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.c (a b) by GEN on 4

12.~c (a b) by IMP on 11

13.~c (~a e) by Lemma 2 on 8

14.(~c (a b)) (~c (~a e))) by CONJ on 12, 13

15.(~c ((a b) (~a e))) Lemma 1 on 14

16.(c d) (~c ((a b) (~a e))) by CONJ on 10, 15

74

Sure! In one step!

Now what? Only one subgoal left. How does it connect to the top of the proof?

Page 61: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.c (a b) by GEN on 4

12.~c (a b) by IMP on 11

13.~c (~a e) by Lemma 2 on 8

14.(~c (a b)) (~c (~a e))) by CONJ on 12, 13

15.(~c ((a b) (~a e))) Lemma 1 on 14

16.(c d) (~c ((a b) (~a e))) by CONJ on 10, 15

75

Hmm…

That works if a is false.

Can we make a false?

What if a is true?

Page 62: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.a b by SPEC on 2

5.~a ((c d) (~c e)) by SPEC on 2

6.(~a (c d)) (~a (~c e)) by Lemma 1 on 5

7.~a (c d) by SPEC on 6

8.~a (~c e) by SPEC on 6

9.…

10.(c d) “subgoal”

11.c (a b) by GEN on 4

12.~c (a b) by IMP on 11

13.~c (~a e) by Lemma 2 on 8

14.(~c (a b)) (~c (~a e))) by CONJ on 12, 13

15.(~c ((a b) (~a e))) Lemma 1 on 14

16.(c d) (~c ((a b) (~a e))) by CONJ on 10, 15

76

If a is true, then c isn’t. If c’s not true,then c d is true.

Let’s put that in logic!

I looked around for a way to establish ~a but couldn’t. So, I checked what happens if a is true.

Page 63: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.~a ~c d by GEN on 3

5.a b by SPEC on 2

6.~a ((c d) (~c e)) by SPEC on 2

7.(~a (c d)) (~a (~c e)) by Lemma 1 on 6

8.~a (c d) by SPEC on 7

9.~a (~c e) by SPEC on 7

10.…

11.(c d) “subgoal”

12.c (a b) by GEN on 5

13.~c (a b) by IMP on 12

14.~c (~a e) by Lemma 2 on 9

15.(~c (a b)) (~c (~a e))) by CONJ on 13, 14

16.(~c ((a b) (~a e))) Lemma 1 on 15

17.(c d) (~c ((a b) (~a e))) by CONJ on 11, 16

77

We need to“fabricate” a d.The rest will bejust IMP applications.

Page 64: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.~a ~c d by GEN on 3

5.~a (c d) by IMP on 4

6.a (c d) by IMP on 5

7.a b by SPEC on 2

8.~a ((c d) (~c e)) by SPEC on 2

9.(~a (c d)) (~a (~c e)) by Lemma 1 on 8

10.~a (c d) by SPEC on 9

11.~a (~c e) by SPEC on 9

12.…

13.(c d) “subgoal”

14.c (a b) by GEN on 7

15.~c (a b) by IMP on 14

16.~c (~a e) by Lemma 2 on 11

17.(~c (a b)) (~c (~a e))) by CONJ on 15, 16

18.(~c ((a b) (~a e))) Lemma 1 on 17

19.(c d) (~c ((a b) (~a e))) by CONJ on 13, 18

78

Now, we put these together,and we’re done!

Page 65: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

3.~a ~c by DM on 1

4.~a ~c d by GEN on 3

5.~a (c d) by IMP on 4

6.a (c d) by IMP on 5

7.a b by SPEC on 2

8.~a ((c d) (~c e)) by SPEC on 2

9.(~a (c d)) (~a (~c e)) by Lemma 1 on 8

10.~a (c d) by SPEC on 9

11.(~a a) (c d) by CASE on 10, 6

12.T (c d) by NEG on 11

13.(c d) by M.PON on 12, T

14.~a (~c e) by SPEC on 9

15.c (a b) by GEN on 7

16.~c (a b) by IMP on 15

17.~c (~a e) by Lemma 2 on 14

18.(~c (a b)) (~c (~a e))) by CONJ on 16, 17

19.(~c ((a b) (~a e))) Lemma 1 on 18

20.(c d) (~c ((a b) (~a e))) by CONJ on 13, 19

79

(At step 13, no need to separately establish T. T is a “tautology”; it’s always true!)

QED!! Whew!

Page 66: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

… …

20. (c d) (~c ((a b) (~a e))) by CONJ on 13, 19

80

So, what did that prove?

Technically: that if the conditions on the cond branches are mutually exclusive (cannot both be true at the same time) and if the result of the original version was true, then the version with switched cond branches will also be true.

In fact, if you go back and think carefully about the proof, we can conclude something much bigger without too much more work: “If two conditions on neighboring cond branches are mutually exclusive (and have no ‘side effects’), we can switch those branches without changing the meaning of the program.”

Page 67: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

… …

20. (c d) (~c ((a b) (~a e))) by CONJ on 13, 19

81

For reference: fruitless directions I tried include changing a b to ~a b, attempting to form the negation of c d, and a bunch of other false starts… all of which helped me build pieces I needed for my final strategy!

You should have lots of scratchwork if you do a problem this large.

Page 68: CPSC 121: Models of Computation 2013W2

Motivating Problem:Changing cond Branches

In prop logic:

1.~(a c) premise

2.(a b) (~a ((c d) (~c e))) premise

… …

20. (c d) (~c ((a b) (~a e))) by CONJ on 13, 19

82

Exercise: For expressions a, b, and c that evaluate to Booleans (with no side effects), we can translate code like: (if a b c)

To logic like this instead of our usual: (a b) (~a c)

Prove that they’re equivalent.

Then, figure out how a cond would similarly translate.

Finally, go back and redo some of our proofs (like the one we just did) with the new representation.

Page 69: CPSC 121: Models of Computation 2013W2

snick

snack

More problems to solve...

(on your own or if we have time)

83

Page 70: CPSC 121: Models of Computation 2013W2

Problem: Who put the cat in the piano?

Hercule Poirot has been asked by Lord Martin to find out who closed the lid of his piano after dumping the cat inside. Poirot interrogates two of the servants, Akilna and Eiluj. One and only one of them put the cat in the piano. Plus, one always lies and one never lies.

Akilna says:– Eiluj did it.– Urquhart paid her $50 to help him study.

Eiluj says:– I did not put the cat in the piano.– Urquhart gave me less than $60 to help him study.

Problem: Whodunit?

84

Page 71: CPSC 121: Models of Computation 2013W2

Problem: Automating Proof

Given:p q

p ~q r(r ~p) s ~p

~r

Problem: What’s everything you can prove?

85

Page 72: CPSC 121: Models of Computation 2013W2

Problem: Canonical Form

A common form for propositional logic expressions, called “disjunctive normal form” or “sum of products form”, looks like this:

(a ~b d) (~c) (~a ~d) (b c d e) ...In other words, each clause is built up of simple

propositions or their negations, ANDed together, and all the clauses are ORed together.

86

Page 73: CPSC 121: Models of Computation 2013W2

Problem: Canonical Form

Problem: Prove that any propositional logic statement can be expressed in disjunctive normal form.

87

Page 74: CPSC 121: Models of Computation 2013W2

Mystery #1

Theorem:

p qq (r s)~r (~t u)p t u

Is this argument valid or invalid?Is whatever u means true?

88

Page 75: CPSC 121: Models of Computation 2013W2

Mystery #2

Theorem:

p

p rp (q ~r)~q ~s s

Is this argument valid or invalid?Is whatever s means true?

89

Page 76: CPSC 121: Models of Computation 2013W2

Mystery #3

Theorem:

q

p mq (r m)m q p

Is this argument valid or invalid?Is whatever p means true?

90

Page 77: CPSC 121: Models of Computation 2013W2

Practice Problem (for you!)

Prove (with truth tables) that hypothetical syllogism is a valid rule of inference:

p qq r p r

91

Page 78: CPSC 121: Models of Computation 2013W2

Practice Problem (for you!)

Prove (with truth tables) whether this is a valid rule of inference:

q

p q p

92

Page 79: CPSC 121: Models of Computation 2013W2

Practice Problem (for you!)

Are the following arguments valid?

This apple is green.If an apple is green, it is sour. This apple is sour.

Sam is not barking.If Sam is barking, then Sam is a dog. Sam is not a dog.

93

Page 80: CPSC 121: Models of Computation 2013W2

Practice Problem (for you!)

Are the following arguments valid?

This shirt is comfortable.If a shirt is comfortable, it’s chartreuse. This shirt is chartreuse.

It’s not cold.If it’s January, it’s cold. It’s not January.

Is valid (as a term) the same as true or correct (as English ideas)?94

Page 81: CPSC 121: Models of Computation 2013W2

More Practice

Meghan is rich.

If Meghan is rich, she will pay your tuition.

Meghan will pay your tuition.

Is this argument valid?Should you bother sending in a check for your

tuition, or is Meghan going to do it?95

Page 82: CPSC 121: Models of Computation 2013W2

Problem: Equivalent Java Programs

Problem: How many valid Java programs are there that do exactly the same thing?

96

Page 83: CPSC 121: Models of Computation 2013W2

Resources: Statements

From the Java language specification, a standard statement is one that can be:

http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.597

Page 84: CPSC 121: Models of Computation 2013W2

Resources: Statements

From the Java language specification, a standard statement is one that can be:

http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.598

Page 85: CPSC 121: Models of Computation 2013W2

What’s a “Block”?

Back to the Java Language Specification:

http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.299

Page 86: CPSC 121: Models of Computation 2013W2

What’s a “Block”?

A block is a sequence of statements, local class declarations and local variable declaration statements within braces.

A block is executed by executing each of the local variable declaration statements and other statements in order from first to last (left to right).

100

Page 87: CPSC 121: Models of Computation 2013W2

What’s an “EmptyStatement”

Back to the Java Language Specification:

http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.6101

Page 88: CPSC 121: Models of Computation 2013W2

Problem: Validity of Arguments

Problem: If an argument is valid, does that mean its conclusion is true? If an argument is invalid, does that mean its conclusion is false?

102

Page 89: CPSC 121: Models of Computation 2013W2

Problem: Proofs and Contradiction

Problem: Imagine I assume premises x, y, and z and prove F. What can I conclude (besides “false is true if x, y, and z are true”)?

103

Page 90: CPSC 121: Models of Computation 2013W2

Proof CritiqueTheorem: √2 is irrational

Proof: Assume √2 is rational, then...

There’s some integers p and q such that √2 = p/q, and p and q share no factors.

2 = (p/q)2 = p2/q2 and p2 = 2q2

p2 is divisible by 2; so p is divisible by 2.

There’s some integer k such that p = 2k.

q2 = p2/2 = (2k)2/2 = 2k2; so q2 and q are divisible by 2.

p and q do share the factor 2, a contradiction!

√2 is irrational. QED

104

Page 91: CPSC 121: Models of Computation 2013W2

Problem: Comparing Deduction and Equivalence Rules

Problem: How are logical equivalence rules and deduction rules similar and different, in form, function, and the means by which we establish their truth?

105

Page 92: CPSC 121: Models of Computation 2013W2

Problem: Evens and Integers

Problem: Which are there more of, (a) positive even integers, (b) positive integers, or (c) neither?

106