Transcript Document

snick

snack
CPSC 121: Models of Computation
2013W2
Proof Techniques
(Part A)
Steve Wolfman, based on notes by
Patrice Belleville and others
1
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
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.
3
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.
4
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 a little
while longer. Never
fear, though, we’ll
return!
5
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
6
Our “GenerallyFaster”
GenerallyFaster(a1, a2) =
i  Z+, n  Z+, n  i  Faster(a1, a2, n).
time
Alg A
7
Alg B
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.
time
Alg A
8
Alg B
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
time
Alg A
9
Alg B
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.
time
Alg A
Alg B
10
(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?
a. It’s a big “AND”.
b. It’s a big “OR”.
c. It’s a conditional.
d. It’s an inequality.
time
Alg A
11
Alg B
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
time
Alg A
12
Alg B
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
time
Alg A
13
Alg B
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
time
Alg A
14
Alg B
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…
time
Alg A
15
Alg B
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
16
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 
17
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.
18
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.
LEAVE this blank until you know what to pick.
Take notes as you learn more about i.
We pick i = ??.
Then, we prove: n  Z+, n  i  60n < n2.
time
Alg A
19
Alg B
Form of Our “TODO Item”
Partial Theorem: n  Z+, n  i  60n < n2.
Which of these is the best overall description of
this statement?
a. It’s a big “AND”.
b. It’s a big “OR”.
c. It’s a conditional.
d. It’s an inequality.
time
Alg A
20
Alg B
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).
time
Alg A
21
Alg B
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
22
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 
23
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?
24
WLOG Example:
My Machine Speaks Racket
Theorem: Any valid Racket program can be
represented in my computer’s machine
language.
Problem: prove the theorem.
25
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, my Racket interpreter (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 interpreter and the input program)
in my computer’s machine language.
QED
26
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.
time
Alg A
27
Alg B
Form of Our “TODO Item”
Partial Theorem: n  i  60n < n2.
Which of these is the best overall description of
this statement?
a. It’s a big “AND”.
b. It’s a big “OR”.
c. It’s a conditional.
d. It’s an inequality.
time
Alg A
28
Alg B
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)
time
Alg A
29
Alg B
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
30
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.
But this is a prop logic technique.
Can we use those for pred logic?
proving 
31
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?
32
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.
33
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.
34
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
35
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.
p
b.
q
p
d.
T
p
e. None of these
F
p
36
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
37
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.
time
Alg A
38
Alg B
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
39
“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.
40
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
time
Alg A
Alg B
< n2.
Scratch work:
41
We need to pick an i so that 60n < n2.
Scratch Work
Partial Theorem: 60n < n2.
We need to pick an i so that 60n < n2.
Let’s try solving for n in our scratch work!
time
Alg A
42
Alg B
Polished Work
Partial Theorem: 60n < n2.
With i = ____:
time
Alg A
43
Alg B
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
44
Finishing 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
time
<
=

=
61n
i*n
n*n
n2
Alg A
(since n  i)
QED!
45
Alg B
Notation note…
Remember that this:
Actually means this:
60n
60n
61n
i*n
n*n
<
=

=
61n
i*n
n*n
n2
<
=

=
61n
i*n
n*n
n2
Since 60n is less than 61n, and 61n is
equal to i*n, 60n is less than i*n.
time
And, since i*n is less than or equal to
n*n, 60n is less than n*n.
Alg A
And so on…
Alg B
46
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
time
<
=

=
61n
i*n
n*n
n2
(since n  i)
Alg A
Alg B
QED!
47
Strategies So Far
x  D, P(x).
x  D, P(x).
pq
pq
pq
pq
with WLOG
with a witness
by assuming the LHS
by proving each part
by proving either part
by assuming ~p and
showing q (same
strategy as for p  q!!)
48
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
And, if you don’t know that what you’re trying to prove follows...
49
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!
50
This is x  Z, y  Z, y > x.
More Practice:
Always a Bigger Number
Prove that for any integer, there’s a larger
x  Z, y  Z, y > x
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
51
Worked Problem:
Always a Bigger Number
Prove that for any integer, there’s a larger
integer. x  Z, y  Z, y > x.
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.
And… the predicate logic version makes that order obvious!
52
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
53
snick

snack
Extra Slides
54
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!
55