CPSC 121: Models of Computation 2013W2

Slides:



Advertisements
Similar presentations
22C:19 Discrete Structures Induction and Recursion Spring 2014 Sukumar Ghosh.
Advertisements

22C:19 Discrete Structures Induction and Recursion Fall 2014 Sukumar Ghosh.
Induction and Recursion. Odd Powers Are Odd Fact: If m is odd and n is odd, then nm is odd. Proposition: for an odd number m, m k is odd for all non-negative.
1 Mathematical Induction. 2 Mathematical Induction: Example  Show that any postage of ≥ 8¢ can be obtained using 3¢ and 5¢ stamps.  First check for.
Induction and recursion
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Introduction to Induction Steve Wolfman 1.
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 2009 Winter Term 1 Introduction to Induction Steve Wolfman 1.
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others 1.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 3 Recurrence equations Formulating recurrence equations Solving recurrence equations.
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others 1.
CS 206 Introduction to Computer Science II 10 / 14 / 2009 Instructor: Michael Eckmann.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 3 Recurrence equations Formulating recurrence equations Solving recurrence equations.
Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 DFAs in Depth Benjamin Israel Notes heavily borrowed from Steve Wolfman’s,
1 Mathematical Induction. 2 Mathematical Induction: Example  Show that any postage of ≥ 8¢ can be obtained using 3¢ and 5¢ stamps.  First check for.
1 Recitation 10. Induction Introduction. Induction is useful in proving properties of recursive algorithms, like their execution times. It is also the.
Introduction to Proofs Goals 1.Introduce notion of proof & basic proof methods. 2.Distinguish between correct & incorrect arguments 3.Understand & construct.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank. Modified By Mingwu Chen Induction.
1 Section 3.3 Mathematical Induction. 2 Technique used extensively to prove results about large variety of discrete objects Can only be used to prove.
Mathematical Induction Readings on induction. (a) Weiss, Sec. 7.2, page 233 (b) Course slides for lecture and notes recitation. Every criticism from a.
1 Mathematical Induction. 2 Mathematical Induction: Example  Show that any postage of ≥ 8¢ can be obtained using 3¢ and 5¢ stamps.  First check for.
Induction and recursion
Based on slides by Patrice Belleville and Steve Wolfman CPSC 121: Models of Computation Unit 9b: Mathematical Induction - part 2.
Induction and recursion
1 Introduction to Abstract Mathematics Chapter 4: Sequences and Mathematical Induction Instructor: Hayk Melikya 4.1- Sequences. 4.2,
Copyright © Peter Cappello Mathematical Induction Goals Explain & illustrate construction of proofs of a variety of theorems using mathematical induction.
Snick  snack CPSC 121: Models of Computation 2013W2 Introduction to Induction Steve Wolfman 1.
Module #13: Inductive Proofs Rosen 5 th ed., § inference of a generalized conclusion from particular instances 2. mathematical demonstration of the.
Snick  snack CPSC 121: Models of Computation 2011 Winter Term 1 Introduction to Induction Steve Wolfman 1.
Copyright © Zeph Grunschlag, Induction Zeph Grunschlag.
ICS 253: Discrete Structures I Induction and Recursion King Fahd University of Petroleum & Minerals Information & Computer Science Department.
Module #15 – Inductive Proofs 12/6/2015(c) , Michael P. Frank1 Inductive Proofs: a brief introduction Rosen 5 th ed., §3.3 ~35 slides, ~1.5 lecture.
Based on Rosen, Discrete Mathematics & Its Applications, 5e Prepared by (c) Michael P. Frank Modified by (c) Haluk Bingöl 1/18 Module.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
Foundations of Discrete Mathematics Chapters 5 By Dr. Dalia M. Gil, Ph.D.
1 INFO 2950 Prof. Carla Gomes Module Induction Rosen, Chapter 4.
Mathematical Induction Section 5.1. Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If.
CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction Linda Shapiro Winter 2015.
INDUCTION Slides of Ken Birman, Cornell University.
Copyright © Zeph Grunschlag, Induction Zeph Grunschlag.
CompSci 102 Discrete Math for Computer Science March 13, 2012 Prof. Rodger Slides modified from Rosen.
Chapter 5. Section 5.1 Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If we can reach.
INDUCTION Lecture 22 CS2110 – Fall 2009 A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described.
Mathematical Induction
Induction and Recursion CSC-2259 Discrete Structures Konstantin Busch - LSU1.
Section Recursion 2  Recursion – defining an object (or function, algorithm, etc.) in terms of itself.  Recursion can be used to define sequences.
Chapter 5 1. Chapter Summary  Mathematical Induction  Strong Induction  Recursive Definitions  Structural Induction  Recursive Algorithms.
CS151: Mathematical Foundations of Computing Mathematical Induction.
Introduction to Proofs Goals 1.Introduce notion of proof & basic proof methods. 2.Distinguish between correct & incorrect arguments 3.Understand & construct.
CPSC 121: Models of Computation 2008/9 Winter Term 2
CS 3343: Analysis of Algorithms
Advanced Algorithms Analysis and Design
CS2210:0001Discrete Structures Induction and Recursion
Mathematical Induction II
Chapter 3 The Real Numbers.
Induction and recursion
Chapter 5 Induction and Recursion
CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction
CS201: Data Structures and Discrete Mathematics I
Discrete Mathematics and its Applications
Induction and recursion
Data Structures Review Session
Module #13: Inductive Proofs
Trevor Brown CS 341: Algorithms Trevor Brown
Advanced Analysis of Algorithms
CPSC 121: Models of Computation 2008/9 Winter Term 2
Discrete Mathematics and its Applications
Presentation transcript:

CPSC 121: Models of Computation 2013W2 Revisiting Induction Steve Wolfman, based on work by Patrice Belleville and others TODO (future terms): update term

Outline Prereqs and Learning Goals Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Learning Goals: Pre-Class By the start of class, you should be able to: Given a theorem to prove and the insight into how to break the problem down in terms of smaller problems, write out the skeleton of an inductive proof including: the base case(s) that need to be proven, the induction hypothesis, and the inductive step that needs to be proven. Discuss point of learning goals.

Learning Goals: In-Class By the end of this unit, you should be able to: Formally prove properties of the non-negative integers (or a subset like integers larger than 3) that have appropriate self-referential structure—including both equalities and inequalities—using either weak or strong induction as needed. Critique formal inductive proofs to determine whether they are valid and where the error(s) lie if they are invalid. Discuss point of learning goals.

Outline Prereqs and Learning Goals Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Worked Problem: How Many Introductions? Problem: n people would like to introduce themselves to each other. How many introductions does it take? For 2 people? For 3 people? For 4 people? For 5 people? … For n people? Sound familiar? Let’s prove it.

Worked Problem: How Many Introductions? Def’n: When two people meet each other, that counts as two intros. Let’s do a few steps concretely to find insight… For 1 person? Given the number for 1, for 2? Given the number for 2, for 3? Talk about use of mathematical techniques and notation to represent the problem and its solution and to prove the correctness of the solution.

Worked Problem: Self-referential structure? It’s usually good to name things! Let’s let I(n) be the number of introductions required for a group of n people… I(1)? 0 introductions. Given I(k-1), what’s I(k)? a. I(k-1) + 1 b. I(k-1) * (k-1) c. I(k-1) + 2(k – 1) d. I(k-1) + 2k e. None of these My turn! Talk about use of mathematical techniques and notation to represent the problem and its solution and to prove the correctness of the solution. Once we have this, we’re ready for our pattern!

A Pattern for Induction Identify the recursive structure in the problem. Circle each recursive appearance of the structure inside its definition. Divide the cases into: those without recursive appearances (“base cases”) and those with (“recursive” or “inductive” cases) Write a predicate P(a) describing what you want to say about the structure. Write your theorem a?,P(a) Complete the proof template.

A Pattern for Induction Identify the recursive structure in the problem. Circle each recursive appearance of the structure inside its definition. Divide the cases into: those without recursive appearances (“base cases”) and those with (“recursive” or “inductive” cases) Write a predicate P(a) describing what you want to say about the structure. Write your theorem a?,P(a) Complete the proof template. I(k) I(k-1) “0” base case, “> 0” inductive case I(k) = k(k-1)

P(k) ≡ [fill in predicate definition] Theorem: For all [recursive structure] a, P(a) holds. Proof by structural induction: Base case: [For each non-recursive case, prove the theorem holds for that case. End by showing your theorem true for the base case structure!] Inductive Step: [For each recursive case…] Consider an arbitrary [recursive case structure] a. Induction Hypothesis: Assume the theorem holds for [each recursive appearance of the structure in this case]. We now show the theorem holds for a. [And then do so! You should: END by showing that your theorem holds for a. USE the “Induction Hypothesis” assumption(s) you made. NEVER take a recursive appearance and use the recursive definition to break it down further, like this BAD example: “each subtree is a binary tree that can have subtrees and so on until we reach an empty tree.”] It helps to write out what you want to prove rather than just “show the theorem holds for a”. (Even though neither one is strictly necessary.)

If the recursive structure is parameterized by something, we use that thing inside P(?). P(k) ≡ I(k) = k(k-1) Theorem: For all natural numbers k, P(k) holds. Proof by structural induction: Base case: We know I(0) = 0. 0(0-1) = 0(-1) = 0, as expected.  Inductive Step: Consider an arbitrary non-zero natural number k. Induction Hypothesis: Assume the theorem holds for k-1; that is, I(k-1) = (k-1)((k-1)-1). We now show the theorem holds for k. That is, I(k) = k(k-1). I(k) = I(k-1) + 2(k-1) by definition = (k-1)((k-1)-1) + 2(k-1) by the IH = (k-1)(k-2) + 2k – 2 = k^2 – 3k + 2 + 2k – 2 = k^2 – k = k(k-1) as expected  QED

Outline Prereqs and Learning Goals Induction as a Formal Argument Form Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Historical Problem: Sum of Odd Numbers Problem: What is the sum of the first n odd numbers? First, find the pattern. Then, prove it’s correct. The first 1 odd number? The first 2 odd numbers? The first 3 odd numbers? The first n odd numbers? Historical note: Francesco Maurolico made the first recorded use of induction in 1575 to prove this theorem!

Sum of Odd Numbers: Recursive Structure Problem: Prove that the sum of the first n odd numbers is n2. How can we break the sum of the first, second, …, nth odd number up in terms of a simpler sum of odd numbers?

Sum of Odd Numbers: Recursive Structure Problem: Prove that the sum of the first n odd numbers is n2. The sum of the first n odd numbers is the sum of the first n-1 odd numbers plus the nth odd number. (See our recursive formulation of  from the last slides!)

A Pattern for Induction Identify the recursive structure in the problem. Circle each recursive appearance of the structure inside its definition. Divide the cases into: those without recursive appearances (“base cases”) and those with (“recursive” or “inductive” cases) Write a predicate P(a) describing what you want to say about the structure. Write your theorem a?,P(a) Complete the proof template.

P(k) ≡ [fill in predicate definition] Theorem: For all [recursive structure] a, P(a) holds. Proof by structural induction: Base case: [For each non-recursive case, prove the theorem holds for that case. End by showing your theorem true for the base case structure!] Inductive Step: [For each recursive case…] Consider an arbitrary [recursive case structure] a. Induction Hypothesis: Assume the theorem holds for [each recursive appearance of the structure in this case]. We now show the theorem holds for a. [And then do so! You should: END by showing that your theorem holds for a. USE the “Induction Hypothesis” assumption(s) you made. NEVER take a recursive appearance and use the recursive definition to break it down further, like this BAD example: “each subtree is a binary tree that can have subtrees and so on until we reach an empty tree.”] It helps to write out what you want to prove rather than just “show the theorem holds for a”. (Even though neither one is strictly necessary.)

Historical Problem: Sum of Odd Numbers Theorem: For all positive integers n, the sum of the first n odd natural numbers is n2. Base Case: Establish for n=1. The sum of the “first 1 odd natural numbers” is 1, which equals 12.  Induction Hypothesis: Assume... ? Inductive Step: To prove... ?

Historical Problem: Sum of Odd Numbers   (by the IH)

Outline Prereqs and Learning Goals Induction as a Formal Argument Form Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Problem: Proof Critique Theorem: All horses are the same colour. See handout. Problem: Critique the proof.

Problem: Proof Critique Theorem: All horses are the same colour. See handout. Proof critique: Is the proof valid? Yes, because each step follows irrefutably from the previous steps. Yes, because the premises are false. Yes, but not for the reasons listed here. No, because the inductive step fails for n=2. No, but not for the reasons listed here.

Problem: Proof Critique Theorem: All horses are the same colour. See handout. Proof critique: Can the proof be fixed? Ask yourself this question if you see a flaw in a proof… especially if it’s in your proof!

Outline Prereqs and Learning Goals Induction as a Formal Argument Form Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Induction and Computer Science How important is induction? Is it just for proving things about N? Induction forms the basis of… proofs of correctness and efficiency for many algorithms: e.g., How long does it take to detect duplicates in a list of n inputs? Does binary search work? “recursive” algorithms: e.g., “merge sort” “recursive data structures”: e.g., How big can a “tree” of height n be?

Problem: Detecting Duplicates Problem: How long does it take to detect duplicates in a list of n Inputs? Let’s assume the amount of “time” taken is proportional to the number of comparisons we make between numbers. We could compare each element to each other element and see if they’re the same. Sound familiar? We already know how long this takes! Have each number “introduce” itself to each other number. If they’re the same, we have a duplicate. Note: this isn’t the fastest algorithm!

Problem: Binary Search Works Problem: Prove that binary search works. Binary search is when we search a sorted list by checking the middle element. If it’s what we’re looking for, we’re done. Otherwise, we “throw out” the part of the list we don’t need (e.g., the left half if the element we looked at was too small) and start over on what remains.

Sorting by “Merging” Problem: sort a list of names. Algorithm: If the list is of length 1, it’s sorted. Otherwise: Divide the list in half (or as close as possible). Sort each half using this algorithm. Merge the sorted lists back together.

The Merge Step Problem: given two lists of names in sorted order, merge them into a single sorted list. Merge(a,b): If a is empty, return b If b is empty, return a Otherwise, if the first element of b comes before the first element of a, return a list with the first element of b at the front and the result of Merge(a, rest of b) as the rest Otherwise, return a list with the first element of a at the front and the result of Merge(rest of a, b) as the rest. 2011W1: used as midterm exam question in CPSC 110 just a few days ago.

Problem: Prove Merge works

A Pattern for Induction Identify the recursive structure in the problem. Circle each recursive appearance of the structure inside its definition. Divide the cases into: those without recursive appearances (“base cases”) and those with (“recursive” or “inductive” cases) Write a predicate P(a) describing what you want to say about the structure. Write your theorem a?,P(a) Complete the proof template.

P(k) ≡ [fill in predicate definition] Theorem: For all [recursive structure] a, P(a) holds. Proof by structural induction: Base case: [For each non-recursive case, prove the theorem holds for that case. End by showing your theorem true for the base case structure!] Inductive Step: [For each recursive case…] Consider an arbitrary [recursive case structure] a. Induction Hypothesis: Assume the theorem holds for [each recursive appearance of the structure in this case]. We now show the theorem holds for a. [And then do so! You should: END by showing that your theorem holds for a. USE the “Induction Hypothesis” assumption(s) you made. NEVER take a recursive appearance and use the recursive definition to break it down further, like this BAD example: “each subtree is a binary tree that can have subtrees and so on until we reach an empty tree.”] It helps to write out what you want to prove rather than just “show the theorem holds for a”. (Even though neither one is strictly necessary.)

Outline Prereqs and Learning Goals Induction as a Formal Argument Form Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Problem: Prove that 2n < n! Note: is 2n < n!?

A Pattern for Induction Identify the recursive structure in the problem. Circle each recursive appearance of the structure inside its definition. Divide the cases into: those without recursive appearances (“base cases”) and those with (“recursive” or “inductive” cases) Write a predicate P(a) describing what you want to say about the structure. Write your theorem a?,P(a) Complete the proof template.

P(k) ≡ [fill in predicate definition] Theorem: For all [recursive structure] a, P(a) holds. Proof by structural induction: Base case: [For each non-recursive case, prove the theorem holds for that case. End by showing your theorem true for the base case structure!] Inductive Step: [For each recursive case…] Consider an arbitrary [recursive case structure] a. Induction Hypothesis: Assume the theorem holds for [each recursive appearance of the structure in this case]. We now show the theorem holds for a. [And then do so! You should: END by showing that your theorem holds for a. USE the “Induction Hypothesis” assumption(s) you made. NEVER take a recursive appearance and use the recursive definition to break it down further, like this BAD example: “each subtree is a binary tree that can have subtrees and so on until we reach an empty tree.”] It helps to write out what you want to prove rather than just “show the theorem holds for a”. (Even though neither one is strictly necessary.)

Outline Prereqs and Learning Goals Induction as a Formal Argument Form Problems and Discussion Introductions Odd Numbers Horse Colours CS Induction: Duplicate Detection, Binary Search, MergeSort More examples Next Lecture Notes

Learning Goals: In-Class By the end of this unit, you should be able to: Formally prove properties of the non-negative integers (or a subset like integers larger than 3) that have appropriate self-referential structure—including both equalities and inequalities—using either weak or strong induction as needed. Critique formal inductive proofs to determine whether they are valid and where the error(s) lie if they are invalid. TODO!!! Next lecture stuff! Discuss point of learning goals.

Extra Slides

Problem: Proof Critique Theorem: All integers ≥ 2 are even. Problem: Critique the proof. Is it valid? If not, why not? Can it be fixed, and how?

Problem: Sum of a Geometric Series Problem: What is the sum of the first n terms of the form ai, if a is a real number between 0 and 1? (Note: we mean terms 0 through n.) Note: we’re looking for It turns out the question about the reals is an incredibly deep one, tied up with the Axiom of Choice. If the Axiom of Choice holds, then the reals are well-ordered (and so we could use induction on them??). Else, they’re not. Unfortunately, even if the Axiom is true (which it provably isn’t NECESSARILY in our usual formalization of set theory), it doesn’t tell us what the well-ordering actually IS. Short version: no. Note: (a^(n+1) – 1)/(a – 1) Can we use induction over the real numbers between 0 and 1?

Induction: a Domino Effect A proof by induction is like toppling a chain of dominoes. Let’s say I tell you: the first domino in the chain toppled for every domino in the chain, if the domino before it toppled, then the domino itself toppled Did all the dominoes in the chain topple?

Formal (Weak) Induction A formal induction proof follows the same pattern. To prove some property P(.) applies to all positive integers n, we prove: The first domino topples. If one domino topples… Then the next one topples. P(0) is true. [For arbitrary k] If P(k) is true... Then P(k+1) is also true. Typically, we prove the second step by antecedent assumption/direct proof.

Form of an Induction Proof Theorem: some property that depends on n Basis step: show that a small case works Induction Hypothesis: Assume your property holds for n=k where k ≥ your basis step. Inductive Step: Under this assumption, you need to prove that your property holds for n=k+1.

Side Note: Practical Induction That’s how you formally write out the proof, but how do you figure out the proof? Start at the inductive step!

Side Note: Practical Induction Look at a “big” problem (of size n). Figure out how to break it down into smaller pieces. Assume those smaller pieces work. That will end up as your Induction Hypothesis. Figure out which problems cannot be broken down (usually small ones!). Those will end up as your basis step(s).

Proof Base case: A group of size 1 takes 0 intros. (Because there are no pairs.) Note: we talked about induction to prove properties for the non-negative integers, but it can be more general.

Proof (Continued) Inductive step, to prove: If a group of size k-1 takes (k-1)((k-1)-1) intros, then a group of size k takes k(k-1) intros. Assume size (k-1) takes (k-1)((k-1)-1) or (k-1)(k-2) intros (the Induction Hypothesis) ... Split into several slides.

Proof (Continued) Inductive step, continued: A group of size k, where k > 0, is a group of size k-1 plus one person. Imagine size k-1 group has completed introductions. That took (k-1)(k-2) intros by the IH. Add one more person to the group, and that person must greet all k-1 other people, for a total of (k-1)(k-2) + 2(k-1) introductions. (k-1)(k-2) + 2(k-1) = (k-1)[k-2 + 2] = (k-1)k QED: if k-1 takes (k-1)(k-2), k takes k(k-1). Split into several slides.

Proof (Completed) Base case: A group of size 1 takes 0 intros. (See proof above.) Inductive step: If a group of size k-1 takes (k-1)(k-2) intros, then a group of size k takes k(k-1) intros. (See proof above.) QED. From these two we could (but don’t have to) crank out a proof for any n that a group of size n requires n(n-1) introductions.

Form of a Strong Induction Proof Theorem: some property that depends on n Basis step: show that one or more small cases (as needed) work Induction Hypothesis: Assume your property holds for any n = i where your basis step ≤ i < k and k is an integer > your basis step. Inductive Step: Under this assumption, you need to prove that your property holds for n = k. Hint: there’s really no difference. Just assume what you need in order to break the problem into smaller pieces.

Side Note: “Strong Induction” We’ve used weak induction: basis step (n = a) plus “if it works for n then it works for n+1”. In strong induction, we use: basis step plus “if it works for all a  i < k then it works for k”. Can we still build our individual proofs (for n = 1, n = 2, n = 3, ...) from that?

Online Quiz Notes: New Problem Imagine that your country's postal system only issues 3 cent and 7 cent stamps. Prove by induction that it is possible to pay for postage using only these stamps for any amount n cents, where n is at least 12. We will use n=12 as one of our base cases. (“We pay 12 cents with four 3 cent stamps”.)

Extra Base Cases? Our inductive step says that for “sufficiently large” n, we can make n cents of postage by making n-3 cents of postage and then using a three cent stamp. What additional base case (if any) do we need? a. n = 6 b. n = 13 c. n = n-3 d. no additional base cases e. more than one additional base case

n  ? Our inductive step says that for “sufficiently large” n, we can make n cents of postage by making n-3 cents of postage and then using a three cent stamp. We use n=12, n=13, and n=14 as base cases. How large must n be for the inductive step? a. n  12 b. n  13 c. n  14 d. n  15 e. none of these

Extra Base Cases? Version 2 Our inductive step says that for “sufficiently large” n, we can make n cents of postage by making n-1 cents of postage and then doing one of: take out two 7c stamps and add five 3c stamps or (if there are fewer than two 7c stamps), take out two 3c stamps and add a 7c stamp. What additional base case (if any) do we need? a. n = 6 b. n = 13 c. n = n-1 d. no additional base cases e. more than one additional base case

n  ? Version 2 Our inductive step says that for “sufficiently large” n, we can make n cents of postage by making n-1 cents of postage and then doing one of: take out two 7c stamps and add five 3c stamps or (if there are fewer than two 7c stamps), take out two 3c stamps and add a 7c stamp. We use n=12 as our only base case. How large must n be for the inductive step? a. n  12 b. n  13 c. n  14 d. n  15 e. none of these