1. Claims and Proofs
A. Propositional Logic
B. Quantifiers
C. Proofs and Counterexamples
2. Induction
A. Simple Induction
B. Strong Induction
C. Generalized Induction
D. Proofs about Algorithms
E. Divide-and-Conquer Algorithms
F. Recurrences
3. Protocol Design and Analysis
A. Stable Marriage
B. Fair Cake-cutting
4. Number Theory
A. Modular Arithmetic
B. Inverses, GCD
C. Algebraic Algorithms
Most important: Proofs, Proof by induction, Number theory
Proof strategies:
- For a claim "P => Q"
- Proof by enumeration
- Assume P; then show Q
- Prove the contrapositive
- For a claim "\exists x . P(x)"
- Proof by example
- For a claim "\forall x . P(x)":
- Try proving it for arbitrary x
- Try induction over x
- Or, induction over, e.g., length(x), etc.
- Or, strengthen the proposition P
- Look for invariants
- Try well-ordering
- In general, for a claim "P"
- Proof by contradiction: prove "not(P) => false"
- Proof by cases (closely related to proof by enumeration)
Q: if between every pair of cities there is a one-way road in some
direction, show that we can find a tour that starts at one city,
ends at some other city, and visits each city exactly once
A: pf by induction on # of cities
Q: you have a row of n pennies. you're allowed to do exactly one
kind of move: pick a penny (not the right-most one), and flip both
it and the neighbor to its immediate right. question: for which
n can you guarantee that from every initial configuration we can
reach the all-heads configuration?
A: find an invariant
Recall defn of modular arithmetic
- congruences as "LHS-RHS is a multiple of m"
- congruences as "same remainder after division"
- congruences as "equivalence classes"
How to solve congruences; examples:
- x + 5 = 12 (mod 17) (x = 7 (mod 17))
- 2x + 5 = 12 (mod 17) (x = 9*7 = 12 (mod 17))
Other exercises:
n^2 = 1 (mod 2) <=> n = 1 (mod 2)
<=: easy; follows from basic number theoretic rules
=>: prove contrapositive, i.e., n = 0 (mod 2) => n^2 = 0 (mod 2)