# Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1.

## Presentation on theme: "Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1."— Presentation transcript:

snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 2

Learning Goals: “Pre-Class” Be able for each proof strategy below to: –Identify the form of statement the strategy can prove. –Sketch the structure of a proof that uses the strategy. Strategies: constructive/non-constructive proofs of existence ("witness"), disproof by counterexample, exhaustive proof, generalizing from the generic particular ("WLOG"), direct proof ("antecedent assumption"), proof by contradiction, and proof by cases. Alternate names are listed for some techniques. 3

Learning Goals: In-Class By the end of this unit, you should be able to: –Devise and attempt multiple different, appropriate proof strategies—including all those listed in the “pre-class” learning goals plus use of logical equivalences, rules of inference, universal modus ponens/tollens, and predicate logic premises—for a given theorem. –For theorems requiring only simple insights beyond strategic choices or for which the insight is given/hinted, additionally prove the theorem. 4

Quiz 7 Results 5

Where We Are in The Big Stories Theory How do we model computational systems? Now: With our powerful modelling language (pred logic), we can begin to express interesting questions (like whether one algorithm is faster than another “in general”). Hardware How do we build devices to compute? Now: We’ve been mostly on the theoretical side for a while, and we’ll stay there for another few days. Never fear, though, we’ll return! 6

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 7

Generalizing from the Generic Particular / Without Loss of Generality (WLOG) Pattern to prove  x  D, R(x). (Of course, R(x) can be anything, including something complex that we’ll prove as a substep!) Pick some arbitrary x, but assume nothing about which x it is except that it’s drawn from D, and then prove R(x). In other words, pick an x “without loss of generality”! 8

WLOG Example: My Machine Speaks X Theorem: Any valid program can be represented in my computer’s machine language. Problem: prove the theorem. 9 You pick: Java or Racket.

WLOG Example: My Machine Speaks X Theorem: Any valid Haskell program can be represented in my computer’s machine language. Proof: Without loss of generality, consider a valid Haskell program p. Since it is valid, my Haskell interpreter must be able to interpret it (i.e., parse and execute it) on my computer. However, all commands that my computer runs are expressed in its machine language. Therefore, the program can be expressed (as the combination of the compiled interpreter and the input program) in my computer’s machine language. QED 10 I used Haskell to avoid picking sides!

Proof of Existence or “witness proofs” Pattern to prove  x  D, R(x). (What’s R(x) ? Could it have quantifiers “inside” of it?) Prove R(x) for any particular x in D that’s convenient for you. Pick the one that makes your job easiest! The x you use for your proof is the “witness” to the existential… it “testifies” that your existential is true. 11

Witness Proof Example: A Touch of Brevity Theorem: There’s a valid Racket program shorter than this (45-character) Java program: class A{public static void main(String[]a){}} Problem: prove the theorem. 12 Where “valid” means “runnable using the java / racket commands with no flags.

More Practice: Always a Bigger Number Prove that for any integer, there’s a larger integer. Note: our proofs will frequently be purely in words now. Use predicate logic as you need it to clarify your thinking! In pred logic, this is  x  Z,  y  Z, y > x. The order of the quantifiers is important!! 13

More Practice: Always a Bigger Number Prove that for any integer, there’s a larger integer. Which strategy or strategies should we use? a.Witness proof alone b.WLOG with a witness proof inside c.Without loss of generality, twice. d.Witness proof, twice. e.None of these 14

Worked Problem: Always a Bigger Number Prove that for any integer, there’s a larger integer. Proof: Without loss of generality, let the first number x be an integer. Let the second number y be x + 1. Then, y = x + 1 > x. QED The proof uses WLOG then witness. 15 And… the predicate logic version makes that order obvious! WLOG outside for  x  Z, witness inside for  y  Z.

More More Practice: A Representation for Every Number Prove that any non-negative integer can be represented using a finite number of bits as an unsigned binary number. (Don’t) Prove that with a finite number of bits, we can represent any non-negative integer as an unsigned binary number. (What’s different between these two? Why can’t we prove the second? How would we disprove it?) 16

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 17

Using Predicate Logic Premises What can you say if you know (rather than needing to prove)  x  D, P(x) or  y  E, Q(y)? If you know  x  D, P(x), you can say for any d in D that P(d) is true. You can say P(d) is true for any particular d in D or for an arbitrary one. If you know  y  E, Q(y), you can say that for some e in E, Q(e) is true, but you don’t know which one. So, assume nothing more about e than that it’s from E. 18 This is basically the opposite of how we go about proving the statements.

Using Propositional Logic Rules Once you’ve stripped the quantifiers from the outside of predicate logic statements, every propositional logic rule of inference applies. (But as always, you must apply a prop logic rule to the whole statement.) Use modus ponens, modus tollens, elimination, and all the rest! 19

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 20

A New Proof Strategy “Antecedent Assumption” To prove p  q: Assume p. Prove q. You have then shown that q follows from p, that is, that p  q, and you’re done. Can you use this in predicate logic proofs? Of course you can, just like every other prop logic technique! 21

Partly Worked Problem: Universality of NOR Gates Theorem: If a circuit can be built from NOT gates and two-input AND, OR and XOR gates, then it can be built from NOR gates alone. Problem: prove the theorem. 22

Partly Worked Problem: Universality of NOR Gates Opening steps: (1) Without loss of generality, consider an arbitrary circuit. (2) [Assume the antecedent.] Assume the circuit can be built from NOT gates and two-input AND, OR and XOR gates. 23

Partly Worked Problem: Universality of NOR Gates Insight: We can “rewrite” each of the gates in this circuit as a NOR gate. How? AND OR XOR NOT Once you’ve shown this rewriting, you’ve proven the theorem. 24

Partly Worked Problem: Universality of NOR Gates Which of these NOR gate configurations is equivalent to ~p? e. None of these 25 p p T p F p q a. b. c. d.

Partly Worked Problem: Universality of NOR Gates Insight: Now that we can build NOT, can we rewrite the rest in terms of NOR and NOT? AND OR XOR 26

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 27

Using Logical Equivalences Every logical equivalence that we’ve learned applies to predicate logic statements. For example, to prove ~  x  D, P(x), you can prove  x  D, ~P(x) and then convert it back with generalized De Morgan’s. To prove  x  D, P(x)  Q(x), you can prove  x  D, ~Q(x)  ~P(x) and convert it back using the contrapositive rule. 28 In other words, “proof by contrapositive” is direct proof after applying a logical equivance rule.

Worked Problem: Even Squares Theorem: If the square of an integer n is even, then n is even. Problem: prove the theorem. This is a tricky problem, unless you try some different approaches. An approach that may work with conditional statements is to try the contrapositive (which is logically equivalent to the original conditional). 29

Worked Problem: Even Squares Theorem: If the square of an integer n is even, then n is even. Approach: (1) Prove the contrapostive: If an integer n is odd, then its square is also odd. (2) Transform the result back into our theorem. We can now focus on proving the contrapositive. 30

Worked Problem: Even Squares Proof: Without loss of generality, let n be an integer. Assume n is odd. We know (from Epp’s definition of “odd”) that n = 2k + 1 for some integer k. n 2 = (2k + 1) 2 = 4k 2 + 4k + 1 = 2(2k 2 + 2k) + 1 We know 2k 2 + 2k is an integer (since k is an integer and multiplication and addition are closed over the integers). n 2 is 2q+1 for some integer q; so, n 2 is odd. Thus, if an integer n is odd, its square is odd. The contrapositive of this statement is also true: if the square of an integer n is even, then n is even. QED 31

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 32

A New Proof Strategy “Proof by Contradiction” To prove p: Assume ~p. Derive a contradiction. You have then shown that there was something wrong (impossible) about assuming ~p; so, p must be true. Can you use this in predicate logic proofs? Of course you can, just like every other prop logic technique! 33

Example in Dialogue: Prove that Achilles is not Omnipotent Achilles: I am omnipotent you know. Tortoise: Can you lift a mountain with your mind, no matter how big? Achilles: Of course! Tortoise: Can you make a mountain out of nothing, no matter how big? Achilles: Certainly! Tortoise: Can you make a mountain so big that even you cannot lift it? Achilles: See if I invite you over for dinner again. I stole the characters from Gödel, Escher, Bach. I stole the story from some sci-fi novel. 34

Side Note: Really a New Proof Strategy? “Assume ~p and derive a contradiction” is the same “assume ~p and prove F”. That’s antecedent assumption! What have we proven? ~p  F What’s that logically equivalent to? 35

Partly Worked Problem:  2 is Irrational Note: a rational number can be expressed as a/b for some a  Z, b  Z + with no common factor except 1. Theorem: The  2 is an irrational number. Problem: prove the theorem. This is a tricky problem to even start with. We know from the definition that we want to show  2 cannot be represented as a/b with the constraints given, but where does that get us? Let’s try contradiction, instead. 36

Partly Worked Problem:  2 is Irrational Theorem: The  2 is an irrational number. Opening steps: (1) Assume for contradiction that  2 is rational. (2) Using our knowledge of rationals, we know  2 = a/b, where a  Z, b  Z+, and a and b have no common factor except 1. [But, we know nothing more about a and b!] Next, play around with the formula  2 = a/b and see where it takes you! 37

Promising Strategies? We know that  2 = a/b. Which of these feels like the most promising strategy? a.Solve for a. b.Solve for b. c.Square both sides to ditch the radical. d.Assume  2 is rational. e.None of these is promising. 38

Proof Scratchwork a = b  2 b = a/  2 2 = a 2 /b 2 a 2 = 2b 2 b 2 = a 2 /2 b is a positive integer a and b have no common factors 39 Plus, blast from the past: If the square of an integer is even, the integer is even.

Finishing the Proof Assume for contradiction that  2 is rational. Then,  2 = a / b for a  Z, b  Z+, where a and b have no common factor except 1. So, a 2 = 2 b 2, and a 2 is even. Since a 2 is even, a is even (prev. proof). a = 2 k for some integer k. b 2 = a 2 /2 = (2 k ) 2 /2 = 2 k 2. b 2 is even and so is b. Then, b and a share the factor 2. CONTRADICTION! QED (  2 is irrational.) 40

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 41

Strategies for Predicate Logic Proofs Have lots of strategies on hand, and switch among them if you’re not making progress (as with prop logic!): Try using WLOG/witness approaches to strip the quantifiers Try antecedent assumption on conditionals Try contradiction on the whole statement or as part of other strategies Work forward, playing around with what you can prove from the premises Work backward, considering what you’d need to reach the conclusion Play with the form of both premises and conclusions using logical equivalences Finally, disproving something is just proving its negation. 42

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 43

Problem: Aliens Attack Aliens hold the Earth hostage and demand that we help them get started proving:  x  D,  y  E,  z  F, P(x)  Q(y)  R(x,z). Problem: Propose four different, promising solution strategies that are each as complete as possible (given the available information) and could be used to address this theorem. 44 This is why a Computer Scientist is always kept on hand at Area 51. That and the “use a computer virus to take out their shields” thing.

Problem: Generally Faster than Itself? Let an algorithm be “generally faster” than another algorithm exactly when it’s faster for all n greater than some minimum n 0. Assume that no algorithm is faster than itself for any particular n. Problem: Prove that no algorithm is generally faster than itself. 45

Worked Problem: Generally Faster than Itself? Problem: Prove that no algorithm is generally faster than itself. Let’s roughly translate to predicate logic: “~  a that is generally faster than itself”. We don’t have a technique for a ~ on the outside, but we could: (1) disprove  a that is generally faster than itself, (2) use proof by contradiction (and assume  a that is generally faster than itself), or (3) use De Morgan’s to move the negation inward. 46

Worked Problem: Generally Faster than Itself? Let’s try: use De Morgan’s to move the negation inward. Using De Morgan’s, “~  a that is generally faster than itself” becomes “  a ~(a is generally faster than itself)” Now, “consider an arbitrary algorithm a”. We’re down to proving “~(a is generally faster than itself)”. 47

Worked Problem: Generally Faster than Itself? We’re down to proving “~(a is generally faster than itself)”. From the problem statement: Let an algorithm be “generally faster” than another algorithm exactly when it’s faster for all n greater than some minimum n 0. We’ll negate the definition of generally faster and substitute a for both algorithms: “for any minimum n 0, there is a larger number n such that a is not faster than itself for problem size n.” 48

Worked Problem: Generally Faster than Itself? We now need to prove: “for any minimum n 0, there is a larger number n such that a is not faster than itself for problem size n.” Consider an arbitrary (positive integer) n 0. Let n = n 0 + 1. (We get to pick n, and n 0 + 1 seems like a handy n to pick.) So, we need to prove: “a is not faster than itself for problem size n 0 + 1 (where n 0 is an arbitrary positive integer)” 49

Worked Problem: Generally Faster than Itself? From the problem statement: “Assume that no algorithm is faster than itself for any particular n.” That’s equivalent to: “for every algorithm and n, the algorithm is not faster than itself for problem size n”. By universal instantiation on this premise, a is not faster than itself for problem size n 0 + 1 (where n 0 is an arbitrary positive integer). QED! 50

Worked Problem, Short Version: Generally Faster than Itself? The definition of “generally faster” requires us to pick a “minimum n 0 ” after which the first algorithm is always faster than the second for each problem size. Consider an algorithm a. We know from the premise that a is not faster than itself for any value of n. No matter what “minimum n 0 ” we use, we can pick a larger n (such as n 0 + 1) for which a is not faster than itself. So, a is not generally faster than itself. QED 51

Worked Problem, Short Version, Different Approach: Generally Faster than Itself? Assume for contradiction that some algorithm a is generally faster than itself. Then, by the definition of “generally faster”, for all n larger than some minimum n 0, a is faster than itself. Thus, for any number n 1 larger than n 0 (like, n 1 = n 0 + 1). a is faster than itself for n 1. But, we also assumed that no algorithm (including a) is faster than itself for any particular problem size (including n 1 ). This is a contradiction! QED 52

Outline Learning Goals, Quiz Notes, and Big Picture Proof Strategies –Generalizing from the Generic Particular (WLOG) & Proofs of Existence (Witness Proofs) –Using Predicate Logic Premises & Propositional Logic Rules –Antecedent Assumption (generalization of “direct proof”) –Using Logical Equivalences –Proof by contradiction Strategies Summary Problems and Discussion Next Lecture Notes 53

Learning Goals: In-Class By the start of class, you should be able to: –Devise and attempt multiple different, appropriate proof strategies—including all those listed in the “pre-class” learning goals plus use of logical equivalences, rules of inference, universal modus ponens/tollens, and predicate premises—for a given theorem. –For theorems requiring only simple insights beyond strategic choices or for which the insight is given/hinted, additionally prove the theorem. 54

Next Learning Goals: Pre-Class We are mostly departing from the readings for next class to talk about a new kind of circuit on our way to a full computer: sequential circuits. The pre-class goals are to be able to: –Trace the operation of a deterministic finite-state automaton (represented as a diagram) on an input, including indicating whether the DFA accepts or rejects the input. –Deduce the language accepted by a simple DFA after working through multiple example inputs.

Next Lecture Prerequisites See the “Sequential Circuits” readings at the bottom of the “Textbook and References” area of the website.Textbook and References Complete the open-book, untimed quiz on Vista that was due before class.

snick  snack More problems to solve... (on your own or if we have time) 57

Problem: Mutually, Generally Faster? Let an algorithm be “generally faster” than another algorithm exactly when it’s faster for all n greater than some minimum n 0. Assume that no two algorithms are faster than each other for any particular n. Problem: Prove that if one algorithm is generally faster than a second, the second is not generally faster than the first. 58

Problem: Generally, Transitively Faster? Continue with our previous assumptions about faster/generally faster. Assume that our faster predicate is transitive (Faster(a 1, a 2, n) and Faster(a 2, a 3, n) implies Faster(a 1, a 3, n)). Problem: Prove that if one algorithm is generally faster than a second, and if the second algorithm is generally faster than a third, then the first algorithm is also generally faster than the third. 59

Download ppt "Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1."

Similar presentations