snick snack CPSC 121 Models of Computation 20089

  • Slides: 37
Download presentation
snick snack CPSC 121: Models of Computation 2008/9 Winter Term 2 Proof Techniques Steve

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

Lecture “Prerequisites” Reread Ch 2 and be able to solve any of the problems

Lecture “Prerequisites” Reread Ch 2 and be able to solve any of the problems in that chapter. Read Sections 3. 1, Theorem 3. 4. 1 and pages 159163 (“Representations of Integers”), 3. 6, and 3. 7. Be able to solve (or at least outline the proof structure of) problems like: 3. 1 2 -16, 18 -61 (20 -23 are particularly relevant!), 3. 4 #24 -27, 29 -30, and 49 -53, and 3. 6 #1 -27 (19 -20 are particularly relevant!). Complete the open-book, untimed quiz on Vista that’s due after some lecture! Note: these are not exactly “prerequisites” this week. Please complete the readings before next lecture.

Learning Goals: “Pre-Class” After the Ch 3 readings and lecture through slide “A New

Learning Goals: “Pre-Class” After the Ch 3 readings and lecture through slide “A New Proof Strategy ‘Antecedent Assumption’”, you should be able for each proof strategy below to: (1) identify the form of statement the strategy can prove and (2) 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. Note: most names listed are Epp’s, although I list my names for the same or closely related techniques in parentheses.

Learning Goals: In-Class By the end of this unit, you should be able to:

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 premises—for a given theorem. – For theorems requiring only simple insights beyond strategic choices or for which the insight is given/hinted, additionally prove theorem. If you develop your insight so you can prove any theorem you need to prove, great! But, we don’t require brilliant insight (yet).

Generalizing from the Generic Particular Without Loss of Generality (WLOG) Pattern to prove x

Generalizing from the Generic Particular Without Loss of Generality (WLOG) Pattern to prove x D, R(x). 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”!

Worked Problem: Wordy Hello World Theorem: Every valid Java program is at least 30

Worked Problem: Wordy Hello World Theorem: Every valid Java program is at least 30 letters long. Problem: prove theorem.

Worked Problem: Wordy Hello World Theorem: Every valid Java program is at least 30

Worked Problem: Wordy Hello World Theorem: Every valid Java program is at least 30 letters long. Proof: Without loss of generality, consider a valid Java program p. p must contain some public class with a main method that’s public, static, and has void return type (a “feature” of a valid Java program). The keywords required to do this (“public class public static void main”) are longer than 30 letters. QED

Proof of Existence or “witness proofs” Pattern to prove x D, R(x). Prove R(x)

Proof of Existence or “witness proofs” Pattern to prove x D, R(x). 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.

Problem: An Innocuous Change? Theorem: a valid Java program remains valid when we replace

Problem: An Innocuous Change? Theorem: a valid Java program remains valid when we replace some statement <stmt> in the program with { <stmt> ; }. Problem: disprove theorem. Strategy: to disprove a theorem, prove its negation—there is a valid Java program that becomes invalid when we replace <stmt> in the program with { <stmt> ; }. There’s a hint on the next slide.

Problem: An Innocuous Change? Theorem: a valid Java program remains valid when we replace

Problem: An Innocuous Change? Theorem: a valid Java program remains valid when we replace some statement <stmt> in the program with { <stmt> ; }. Problem: disprove theorem. Strategy: to disprove a theorem, prove its negation—there is a valid Java program that becomes invalid when we replace <stmt> in the program with { <stmt> ; }. Hint: think variables or return statements.

Worked Problem: Always a Bigger Number Prove that for any integer, there’s a larger

Worked Problem: 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!!

Worked Problem: Always a Bigger Number Prove that for any integer, there’s a larger

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 This proof uses WLOG first and a witness inside of that.

Using Predicate Logic Premises What can you say if you know (rather than needing

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. (Much like a WLOG value!)

Using Propositional Logic Rules Once you’ve stripped the quantifiers from the outside of predicate

Using Propositional Logic Rules Once you’ve stripped the quantifiers from the outside of predicate logic statements, every propositional logic rule of inference applies. Use modus ponens, modus tollens, elimination, and all the rest!

A New Proof Strategy “Antecedent Assumption” To prove p q: Assume p. Prove q.

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!

Partly Worked Problem: Universality of NAND Gates Theorem: If a circuit can be built

Partly Worked Problem: Universality of NAND 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 NAND gates alone. Problem: prove theorem.

Partly Worked Problem: Universality of NAND Gates Opening steps: (1) Without loss of generality,

Partly Worked Problem: Universality of NAND 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.

Partly Worked Problem: Universality of NAND Gates Insight: We can “rewrite” each of the

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

A New Proof Strategy “Proof by Contradiction” To prove p: Assume ~p. Derive a

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!

Example in Dialogue: Prove that Achilles is not Omnipotent Achilles: I am omnipotent you

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.

Quiz 7 Results Let’s try this question again: If you were using proof by

Quiz 7 Results Let’s try this question again: If you were using proof by contradiction to begin proving the following theorem, which of these would be the appropriate assumption to make? Theorem: c R+, n 0 Z+, n Z+, T(n) > c*2 n. a. c R+, n 0 Z+, n Z+, T(n) > c*2 n. b. ~ c R+, n 0 Z+, n Z+, T(n) ≤ c*2 n. c. c R+, n 0 Z+, n Z+, T(n) < c*2 n. d. ~ c R+, n 0 Z+, n Z+, T(n) > c*2 n.

Quiz 7 Results These are not meaningful statements: c R+, n 0 Z+, n

Quiz 7 Results These are not meaningful statements: c R+, n 0 Z+, n Z+ So, these are not meaningful statements: ~( c R+) ~( c R+, n 0 Z+, n Z+) But, this is: ~( c R+, n 0 Z+, n Z+, T(n) > c*2 n)

Using Logical Equivalences Every logical equivalence that we’ve learned applies to predicate logic statements.

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.

Worked Problem: Even Squares Theorem: If the square of an integer n is even,

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

Worked Problem: Even Squares Theorem: If the square of an integer n is even,

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.

Worked Problem: Even Squares Proof: Without loss of generality, let n be an integer.

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 = 2 k + 1 for some integer k. n 2 = (2 k + 1)2 = 4 k 2 + 4 k + 1 = 2(2 k 2 + 2 k) + 1 We know 2 k 2 + 2 k is an integer (since k is an integer and multiplication and addition are closed over the integers). n 2 is 2 q+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

Partly Worked Problem: 2 is Irrational Note: a rational number can be expressed as

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 theorem. This is a tricky problem to even start with. We know from the definition that 2 cannot be represented as a/b with the constraints given, but where does that get us? Let’s try contradiction, instead.

Partly Worked Problem: 2 is Irrational Theorem: The 2 is an irrational number. Opening

Partly Worked Problem: 2 is Irrational Theorem: The 2 is an irrational number. Opening steps: (1) Assume 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!

Strategies for Predicate Logic Proofs Have lots of strategies on hand, and switch among

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.

Quiz 7 Results How do you know when to stop trying a particular proof

Quiz 7 Results How do you know when to stop trying a particular proof strategy? Much like when you know how to stop trying a particular programming (or writing or any other problem-solving) approach: – You’ve spent “too much time” on it – You cannot reach the conclusion – You’ve figured out some key concept that leads you in a new direction – Your scratch work is getting too ugly or ridiculous – You’re not making any progress/going in circles – You’ve lost sight of what you’re supposed to be doing/where you’re supposed to be headed – You’ve reached a dead end – You feel like switching

Problem: Generally Faster than Itself? Let an algorithm be “generally faster” than another algorithm

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 algorithms is faster than itself for any particular n. Problem: Prove that no algorithm is generally faster than itself.

Problem: Mutually, Generally Faster? Let an algorithm be “generally faster” than another algorithm exactly

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.

Problem: Generally, Transitively Faster? Continue with our previous assumptions about faster/generally faster. Assume that

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.

Problem: Aliens Attack Aliens hold the Earth hostage and demand that we help them

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.

Learning Goals: In-Class By the start of class, you should be able to: –

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

Next Lecture Learning Goals: Pre-Class We are mostly departing from the readings for next

Next Lecture 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 FSA accepts or rejects the input. – Deduce the language accepted by a simple FSA after working through multiple example inputs.

Next Lecture Prerequisites Read Section 12. 2 pages 745 -747 and “Designing a Finite

Next Lecture Prerequisites Read Section 12. 2 pages 745 -747 and “Designing a Finite Automaton” on 752 -754 (skipping part b of the examples). We’ll reread and revisit this later; focus on getting a strong intuitive sense of how DFAs work. Solve problems like Exercise Set 12. 2 #1, #12 a -c, #13 a-c, and #14 -19 a. Complete the open-book, untimed quiz on Vista that’s due before the next class.