CPSC 121: Models of Computation 2016W2

Slides:



Advertisements
Similar presentations
CPSC 121: Models of Computation Unit 6 Rewriting Predicate Logic Statements Based on slides by Patrice Belleville and Steve Wolfman.
Advertisements

Inference and Reasoning. Basic Idea Given a set of statements, does a new statement logically follow from this. For example If an animal has wings and.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 1: (Part 2): The Foundations: Logic and Proofs.
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Proof Techniques (Part A) Steve Wolfman, based on notes by Patrice Belleville and others.
22C:19 Discrete Structures Logic and Proof Spring 2014 Sukumar Ghosh.
CPSC 121: Models of Computation
Snick  snack CPSC 121: Models of Computation 2009 Winter Term 1 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others 1.
Snick  snack CPSC 121: Models of Computation 2008/9 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1.
Snick  snack CPSC 121: Models of Computation 2009 Winter Term 1 Rewriting Predicate Logic Statements Steve Wolfman, based on notes by Patrice Belleville.
1 Introduction to Computability Theory Lecture15: Reductions Prof. Amos Israeli.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
1 Undecidability Andreas Klappenecker [based on slides by Prof. Welch]
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others 1.
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others 1.
Snick  snack CPSC 121: Models of Computation 2008/9 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others.
Snick  snack CPSC 121: Models of Computation 2008/9 Winter Term 2 Rewriting Predicate Logic Statements Steve Wolfman, based on notes by Patrice Belleville.
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Proof Techniques Steve Wolfman, based on notes by Patrice Belleville and others 1.
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Rewriting Predicate Logic Statements Steve Wolfman, based on notes by Patrice Belleville.
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Proof Techniques (Part B) Steve Wolfman, based on notes by Patrice Belleville and others.
CPSC 121: Models of Computation Unit 7: Proof Techniques Based on slides by Patrice Belleville and Steve Wolfman.
Based on slides by Patrice Belleville and Steve Wolfman CPSC 121: Models of Computation Unit 9b: Mathematical Induction - part 2.
Introduction to Proofs
MATH 224 – Discrete Mathematics
Section 3.1: Proof Strategy Now that we have a fair amount of experience with proofs, we will start to prove more difficult theorems. Our experience so.
Snick  snack CPSC 121: Models of Computation 2012 Summer Term 2 Rewriting Predicate Logic Statements Steve Wolfman, based on notes by Patrice Belleville.
10/17/2015 Prepared by Dr.Saad Alabbad1 CS100 : Discrete Structures Proof Techniques(1) Dr.Saad Alabbad Department of Computer Science
Snick  snack CPSC 121: Models of Computation 2013W2 Introduction to Induction Steve Wolfman 1.
1 Sections 1.5 & 3.1 Methods of Proof / Proof Strategy.
Copyright © Cengage Learning. All rights reserved. CHAPTER 3 THE LOGIC OF QUANTIFIED STATEMENTS THE LOGIC OF QUANTIFIED STATEMENTS.
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Introduction to Induction Steve Wolfman 1.
Based on slides by Patrice Belleville and Steve Wolfman CPSC 121: Models of Computation Unit 11: Sets.
Week 4 - Friday.  What did we talk about last time?  Floor and ceiling  Proof by contradiction.
CPSC 121: Models of Computation REVIEW. Course Learning Outcomes You should be able to: – model important problems so that they are easier to discuss,
Proof And Strategies Chapter 2. Lecturer: Amani Mahajoub Omer Department of Computer Science and Software Engineering Discrete Structures Definition Discrete.
Chapter 1 Logic and Proof.
The Foundations: Logic and Proofs
Chapter 7. Propositional and Predicate Logic
Module 2: Conditionals and Logical Equivalences
CPSC 121: Models of Computation 2008/9 Winter Term 2
CPSC 121: Models of Computation 2012 Summer Term 2
Discrete Structures for Computer Science
CPSC 121: Models of Computation 2012 Summer Term 2
COMP 1380 Discrete Structures I Thompson Rivers University
CPSC 121: Models of Computation 2016W2
Great Theoretical Ideas in Computer Science
ELEMENTARY NUMBER THEORY AND METHODS OF PROOF
The Foundations: Logic and Proofs
CSCE 411 Design and Analysis of Algorithms
The Foundations: Logic and Proofs
Proving Existentials A proof of a statement of the form x P(x) is called an existence proof. If the proof demonstrates how to actually find or construct.
Copyright © Cengage Learning. All rights reserved.
CS201: Data Structures and Discrete Mathematics I
Truth Trees.
CPSC 121: Models of Computation 2013W2
This Lecture Substitution model
CPSC 121: Models of Computation 2016W2
Java Programming Control Structures Part 1
CS 220: Discrete Structures and their Applications
Midterm Discussion.
This Lecture Substitution model
COMP 1380 Discrete Structures I Thompson Rivers University
CPSC 121: Models of Computation
CPSC 121: Models of Computation
Logic Logic is a discipline that studies the principles and methods used to construct valid arguments. An argument is a related sequence of statements.
This Lecture Substitution model
CPSC 121: Models of Computation
Logical and Rule-Based Reasoning Part I
CS201: Data Structures and Discrete Mathematics I
Presentation transcript:

CPSC 121: Models of Computation 2016W2 Proof Techniques (Part A) Steve Wolfman, based on notes by Patrice Belleville and others TODO (future terms): change term

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

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. 2011W1: TODO for future reference, make these more in line with what we actually do. Alternate names are listed for some techniques.

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. Discuss point of learning goals.

Where We Are in The Big Stories Theory Hardware 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”). 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 a little while longer. Never fear, though, we’ll return!

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

Our “GenerallyFaster” GenerallyFaster(a1, a2) = i  Z+, n  Z+, n  i  Faster(a1, a2, n). Alg A Alg B problem size time

Our Algorithms (a) Ask each student for the list of their MUG-mates’ classes, and check for each class whether it is CPSC 121. If the answer is ever yes, include the student in my count. (b) For each student s1 in the class, ask the student for each other student s2 in the class whether s2 is a MUG-mate. If the answer is ever yes, include s1 in my count. If you settled on the “Standard” definition, the answer is (a). Alg A Alg B problem size time

Our Algorithms At Particular Sizes (a) For 10 students: 10 minutes For 100 students: 100 minutes For 400 students: 400 minutes (b) For 10 students: ~10*10 seconds For 100 students: ~100*100 seconds For 400 students: ~400*400 seconds If you settled on the “Standard” definition, the answer is (a). Alg A Alg B problem size time

Proving “GenerallyFaster” GenerallyFaster(a1, a2) = i  Z+, n  Z+, n  i  Faster(a1, a2, n). Can we prove algA is generally faster than algB? GenerallyFaster(algA, algB)  i  Z+, n  Z+, n  i  Faster(algA, algB, n).  i  Z+, n  Z+, n  i  60n < n2. Alg A Alg B problem size time (The last line is what we really mean in this case.)

Proving “GenerallyFaster” Theorem: i  Z+, n  Z+, n  i  60n < n2. Which of these is the best overall description of this statement? It’s a big “AND”. It’s a big “OR”. It’s a conditional. It’s an inequality. Alg A Alg B problem size time

Proving “GenerallyFaster” Theorem: i  Z+, n  Z+, n  i  60n < n2. We can always pick out the “outermost” operator: i  Z+, P(i), where… P(i) = n  Z+, n  i  60n < n2 Alg A Alg B problem size time

Proving “GenerallyFaster” Theorem: i  Z+, n  Z+, n  i  60n < n2. We can always pick out the “outermost” operator: i  Z+, P(i), where… P(i) = n  Z+, Q(i,n), Q(i,n) = n  i  60n < n2 Alg A Alg B problem size time

Proving “GenerallyFaster” Theorem: i  Z+, n  Z+, n  i  60n < n2. We can always pick out the “outermost” operator: i  Z+, P(i), where… P(i) = n  Z+, Q(i,n), Q(i,n) = R(i,n)  S(n), R(i,n)= n  i, S(n) = 60n < n2 Alg A Alg B problem size time

Proving “GenerallyFaster” Theorem: i  Z+, n  Z+, n  i  60n < n2. We can always pick out the “outermost” operator: i  Z+, P(i), where… P(i) = n  Z+, Q(i,n), Q(i,n) = R(i,n)  S(n), R(i,n)= n  i, S(n) = 60n < n2 So to get started, we can think about how to prove an existential… Alg A Alg B problem size time

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

Proof of Existence or “witness proofs” Pattern to prove x  D, R(x). Prove R(x) for any one x in D. 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. (We’re proving one of the disjuncts of a big “OR”.) proving 

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. 2010W2: USED to be: a valid Java program remains valid when we replace some statement <stmt> in the program with { <stmt> ; }. Minimum length racket program AFAICT: #lang racket (12 characters. But we can add another 2 to make a real program that evaluates to 0.) 2016W2: NOTE that 110 students generally don’t use the #lang line and instead just set the language directly. So, their shortest program is empty. Where “valid” means “runnable using the java/racket commands with no flags”.

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Then, we prove: n  Z+, n  i  60n < n2. LEAVE this blank until you know what to pick. Take notes as you learn more about i. Alg A Alg B problem size time

Form of Our “TODO Item” Partial Theorem: n  Z+, n  i  60n < n2. Which of these is the best overall description of this statement? It’s a big “AND”. It’s a big “OR”. It’s a conditional. It’s an inequality. Alg A Alg B problem size time

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Then, we prove: n  Z+, n  i  60n < n2. That’s the same as: Q(i,n) = n  i  60n < n2. n  Z+, Q(i,n). Alg A Alg B problem size time So, how do we prove a universal?

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

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 Then prove R(x). That is: pick x “without loss of generality”! proving 

Why Does This Work? 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. Then prove R(x). This is a big “AND”. To prove it, we must prove each “conjunct”. Can we generate each individual proof from this one generic proof?

WLOG Example: My Machine Speaks Racket Theorem: Any valid Racket program can be represented in my computer’s machine language. Problem: prove the theorem. 2010W2: Used to be (back when 111 Java was the intro course): Every valid Java program is at least 30 letters long. Considered “Any nonnegative integer can be represented with a finite number of bits as an unsigned binary number.” But, that really has a nested quantifier. Minimum length Racket program is actually either empty or just 0 or the like. (So, one character. Not interesting.)

WLOG Example: My Machine Speaks Racket Theorem: Any valid Racket program can be represented in my computer’s machine language. Proof: Without loss of generality, consider a valid Racket program p. Since p is valid, DrRacket can interpret it on my computer. However, all commands that my computer runs are expressed in its machine language. Therefore, p can be expressed (as the combination of the compiled DrRacket program and the input program) in my computer’s machine language. QED

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Without loss of generality, let n be an arbitrary positive integer. Then, we prove: n  i  60n < n2. Alg A Alg B problem size time

Form of Our “TODO Item” Partial Theorem: n  i  60n < n2. Which of these is the best overall description of this statement? It’s a big “AND”. It’s a big “OR”. It’s a conditional. It’s an inequality. Alg A Alg B problem size time

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Without loss of generality, let n be an arbitrary positive integer. Then, we prove: n  i  60n < n2. With appropriate helpers, that’s just: R(i,n)  S(n) Alg A Alg B problem size time So, how do we prove a conditional?

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

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. proving  But this is a prop logic technique. Can we use those for pred logic?

Why Does This Work? To prove p  q: Assume p. Prove q. p  q is “really” an OR like ~p  q. Our assumption must be true or false… If our assumption is false, is the OR true? If our assumption is true, is the OR true?

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.

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.

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

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

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 2010W2: used to include Hint: Remember De Morgan’s? Not relevant this term since we gave the NAND version as an assignment.

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Without loss of generality, let n be an arbitrary positive integer. Assume n  i. Then, we prove: 60n < n2. Alg A Alg B problem size time So, how do we prove an inequality?

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

“Rules” for Inequalities Proving an inequality is a lot like proving equivalence. First, do your scratch work (often solving for a variable). Then, rewrite formally: Start from one side. Work step-by-step to the other. Never move “opposite” to your inequality (so, to prove “<”, never make the quantity smaller). Strict inequalities (< and >): have at least one strict inequality step.

Proving “GenerallyFaster” Our Strategy So Far Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = ??. Without loss of generality, let n be an arbitrary positive integer. Assume n  i. Then, we prove: 60n < n2. Alg A Alg B problem size time Scratch work: We need to pick an i so that 60n < n2.

Scratch Work We need to pick an i so that 60n < n2. Partial Theorem: 60n < n2. We need to pick an i so that 60n < n2. Let’s try solving for n in our scratch work! Alg A Alg B problem size time

Polished Work With i = ____: Partial Theorem: 60n < n2. time Alg A Alg B problem size time

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

Finishing the Proof We pick i = 61. Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = 61. Without loss of generality, let n be an arbitrary positive integer. Assume n  i. Observe that: 60n < 61n = i*n  n*n (since n  i) = n2 QED! Alg A Alg B problem size time

Notation note… Remember that this: 60n < 61n = i*n  n*n = n2 Actually means this: 60n < 61n 61n = i*n i*n  n*n n*n = n2 Since 60n is less than 61n, and 61n is equal to i*n, 60n is less than i*n. And, since i*n is less than or equal to n*n, 60n is less than n*n. And so on… Alg A Alg B problem size time

How Did We Build the Proof? Theorem: i  Z+, n  Z+, n  i  60n < n2. We pick i = 61. Without loss of generality, let n be an arbitrary positive integer. Assume n  i. Observe that: 60n < 61n = i*n  n*n (since n  i) = n2 Alg A Alg B problem size time QED!

Strategies So Far x  D, P(x). with WLOG x  D, P(x). with a witness p  q by assuming the LHS p  q by proving each part p  q by proving either part p  q by assuming ~p and showing q (same strategy as for p  q!!) We can still use all our propositional logic strategies!

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 TODO (future terms): patch this slide so it matches new incarnation from previous slide deck better. This is INCREDIBLY UNBELIEVABLY important. Students GOT this by the second midterm in 2009W1.. Would have been great to get it by the first  2011W1: MUCH better on the first midterm this time around; maybe b/c spent more time here emphasizing what the strategies are and why? And, if you don’t know that what you’re trying to prove follows... switch from proving to disproving and back now and then.

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. BUT, translate the theorem into predicate logic so you can structure your proof! This is x  Z, y  Z, y > x.

More Practice: Always a Bigger Number Prove that for any integer, there’s a larger integer. Which strategy or strategies should we use? Witness proof alone WLOG with a witness proof inside Without loss of generality, twice. Witness proof, twice. None of these x  Z, y  Z, y > x

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. x  Z, y  Z, y > x. And… the predicate logic version makes that order obvious! WLOG outside for x  Z, witness inside for y  Z.

Outline Learning Goals, Quiz Notes, and Big Picture Problems and Discussion: Generally Faster? Breaking Down Big Proofs Witness Proofs, also known as Proofs of Existence Without loss of generality (WLOG), also known as Generalizing from the Generic Particular Antecedent Assumption Proving Inequality (and equivalences/equality) Breaking Down Big Proofs, Revisited Coming Soon: The Rest

Extra Slides

Why Does This Work? To prove p  q: Assume p. Prove q. By the way, does this look like a propositional logic proof? When is such a proof valid? When p  q is a tautology!