Week 1: Logic Lecture 1, 8/21 (Sections 1.1 and 1.3)

advertisement
Week 1: Logic
Lecture 1, 8/21 (Sections 1.1 and 1.3)
Examples of theorems and proofs
Theorem (Pythagoras). Let !ABC be a right triangle, with legs of lengths a and b, and hypotenuse of
length c. Then a2 + b2 = c2 .
Proof. Proof by picture.
Theorem. For every positive integer n, the sum of the positive integers from 1 to n is
n(n+1)
.
2
Proof. If n is even, add the numbers in pairs: 1 + n, 2 + (n − 1), 3 + (n − 2), and so on. Each sum is n + 1
and the number of pairs is n2 , so the sum of all the numbers is n(n+1)
.
2
If n is odd, pairing up the numbers as before leaves the middle number n+1
unpaired. There are n−1
2
2
(n−1)(n+1)
n(n+1)
n+1
+
=
.
pairs, so the sum of all the numbers is
2
2
2
Introduction to logic
• Proposition: a sentence that is either true or false, not both. For instance: “Horses are mammals”
or “1 + 2 = −7”. Ask for more examples!
• The truth value of a proposition is written as either T (true) or F (false).
• Propositional variables: We use letters like P and Q to represent arbitrary propositions. Their
truth values can vary because the propositions they represent vary.
• Draw truth tables for the following propositions as they are introduced.
• “Not”: Given a proposition P , we write ¬P (“not P ”) for the new proposition “It is not true that
P ”. For instance, “Horses are not mammals” or 1 + 2 #= −7. ¬P is true whenever P is false, and vice
versa.
• “And”: The proposition P ∧ Q (“P and Q”) is true when both P and Q are true, and false otherwise.
For example, “Horses are mammals and 1 + 2 = −7” is a false statement because 1 + 2 = −7 is false.
• “Or”: The proposition P ∨ Q (“P or Q”) is true when either P or Q (or both) are true and false when
both P and Q are false. Let me emphasize that the logical “or” is true even when both P and Q are
true. Unlike the logical “or”, we sometimes use “or” in everyday language to express a choice between
two options: “I will buy you a lollipop or I will buy you a Honeycrisp apple”, with the intention that
you can’t have both. But this is ambiguous, and it’s better to say “either ... or ...” if this is intended.
• “Implies”: The proposition P =⇒ Q (“P implies Q” or “if P , then Q”; sometimes denoted
“P → Q”) is true except in the case when P is true and Q is false. A father might say to his daughter:
“My dear, if you get an ‘A’ in astrophysics, then I will buy you a bicycle”. When has the father upheld
his word? If the daughter gets an ‘A’ and father buys the bike, then all is well. If the daughter fails
to get an ‘A’, then father need not buy a bike, though he might get it anyway as consolation. But if
the daughter gets the ‘A’ and father does not buy her the bicycle, then the daughter has a reason to
be upset, and we would say daddy has been dishonest.
1
• The converse of P =⇒ Q is Q =⇒ P . This is very different! Look at the truth tables.
• The contrapositive of P =⇒ Q is ¬Q =⇒ ¬P , and is equivalent to P
propositions have the same truth table!).
=⇒ Q (the two
• “If and only if ”: P ⇐⇒ Q (“P if and only if Q”, or “P iff Q”, or “P is equivalent to Q”) is true if
P and Q have the same truth value, and false otherwise. For instance P ⇐⇒ (P ∧ P ) is always true.
Think of the proposition “I will move to India if and only if you will move to India”. I am claiming
that we will either move together or not at all, and I will be wrong if one of us goes while the other
stays.
• De Morgan’s Laws, ¬(P ∧ Q) ⇐⇒ ¬P ∨ ¬Q and ¬(P ∨ Q) ⇐⇒ ¬P ∧ ¬Q are always true (prove
using truth tables).
Lecture 2, 8/23 (Sections 1.4 and 1.6)
Propositions involving variables
• A statement containing a variable, like “x is greater than 3”, is not a proposition since its truth value
depends on the value of the variable. The variable x is the subject of the predicate (property) “is
greater than 3”.
• A statement like “x > 3” is a propositional function, denoted P (x), which becomes a proposition
when you plug in a value for x, and then has a truth value.
• Note: I’ll say much more about functions in the next two weeks.
• Propositional functions can have many input variables, such as the statement “x = y + 3”, which we
could denote Q(x, y). (Think of values for x and y making the statement true, and values making it
false.)
• Another way to turn a statement involving variables into a proposition is to use quantifiers. For this
we need to specify what values of each variable are allowed, which we call its domain. For example,
two possible domains for x that would make the statement x > 3 make sense are Z and R.
• Universal quantifier: ∀x P (x) is the proposition that for all x in the domain, P (x) is true. For
instance, ∀x (x > 3) is true if the domain is integers ≥ 4, but false if it is integers ≥ 3 (we say 3 is a
counterexample since 3 > 3 is false).
• Existential quantifier: ∃x P (x) is the proposition that for at least one value of x in the domain,
P (x) is true. For instance, ∃x (x > 3) is true if the domain for x is all integers, but false if the domain
is only negative integers.
• A compound proposition is a sentence built out of propositional variables (like P and Q), logical
symbols (¬, ∧, ∨, =⇒ , ⇐⇒ ), and quantified propositional functions (like ∀x P (x) and ∃x Q(x)).
Arguments
• An argument is a list of propositions, called premises, followed by one additional proposition, called
the conclusion. For instance,
! Premise 1: If you like tomatoes, you like pizza.
! Premise 2: You like tomatoes.
! Conclusion: You like pizza.
2
• An argument is valid provided that if the premises are true, then the conclusion is true. The above
argument is valid (if neither of the premises is false, then together they imply that you like pizza).
Note that by definition, any argument with a false premise is valid, and any argument with a true
conclusion is valid. The only way an argument can fail to be valid is if all the premises are true and
the conclusion is false.
• In logic, instead of studying studying specific arguments, one studies an abstract version. An argument form is a list of compound propositions, called premises, followed by one additional compound
proposition, called the conclusion. An argument form is valid provided that for any assignment of
truth values to the propositional variables that occur, if the premises are true then the conclusion is
true. The only way an argument form can be invalid is if there is an assignment of truth values to the
propositional variables such that the premises are true while the conclusion is false.
• To pass from an argument to an argument form, substitute a distinct propositional variable for each
distinct proposition that occurs in the argument. The argument form corresponding to the above
argument is the following:
! Premise 1: P =⇒ Q
! Premise 2: P
! Conclusion: Q.
This argument form is valid!
• If an argument form is valid, then any argument obtained by substituting propositions for the propositional variables is also valid!
• A silly valid argument:
! Premise 1: P
! Premise 2: ¬P
! Conclusion: Q.
As an argument, this could be: (ask class for two propositions). If the premises lead to a contradiction,
then the argument or argument form is guaranteed to be valid!
• Is the following argument form using the universal quantifier valid?
!
"
! Premise 1: ∀x P (x) =⇒ Q(x) , x in some domain.
! Premise 2: ¬Q(a), where a is a particular element in the domain.
! Conclusion: ¬P (a).
(Yes, it is. Prove using truth tables or contrapositive.)
3
Week 2: Proofs
Lecture 3, 8/28 (Sections 1.6 and 1.7)
Review of argument, validity. Recall that an argument or argument form is valid provided that if all the
premises are true, then the conclusion is true.
Rules of inference
• A formal proof is used to show an argument form is valid. One kind of proof is using a truth table,
but this can get very complicated when there are many propositional variables. A more useful method
of proof is to construct a chain of implications from the premises to the conclusion, using rules of
inference, which are tautologies (statements that are always true) of the form
{compound proposition} =⇒ {compound proposition}.
• Examples of rules of inference (p. 72 and 76), each of which can be thought of as a small valid argument:
(P ∧ Q) =⇒ P
P =⇒ (P ∨ Q)
!
"
(P ∨ Q) ∧ ¬P =⇒ Q
!
"
(P =⇒ Q) ∧ P =⇒ Q
(P =⇒ Q) =⇒ (¬Q =⇒ ¬P )
∀x P (x) =⇒ P (c), c any element of domain;
(1)
(2)
(3)
(4)
(5)
(6)
P (c) for arbitrary c =⇒ ∀x P (x)
(7)
P (c) for some element c =⇒ ∃x P (x).
(9)
∃x P (x) =⇒ P (c) for some element c
(8)
Think about what these are saying: most of them are obvious! Prove these for yourself using truth
tables. Then you can apply them whenever you like!
• With these rules of inference, we can prove the validity of slightly more complicated argument forms:
! Premise 1: P =⇒ Q
! Premise 2: ¬Q
! Conclusion: ¬P
Proof. By (5), premise 1 implies that ¬Q =⇒ ¬P . Combining this with premise 2, (4) implies
¬P .
! Premise 1: ∀x (P (x) =⇒ Q(x))
! Premise 2: ∃x P (x)
! Conclusion: ∃x Q(x)
Proof. By (8), premise 2 implies P (c) for some element c. By (6), premise 1 implies P (c) =⇒ Q(c).
By (4), P (c) and P (c) =⇒ Q(c) imply Q(c). Now we use (9) to conclude that ∃x Q(x).
4
Proofs in mathematics
• Mathematics begins with definitions and statements assumed to be true, called axioms or postulates. For example, the axioms of plane geometry.
• The starting point for this class: the integers, Z = {. . . , −2, −1, 0, 1, 2, . . . }, with the operations of
addition (+) and multiplication (·), and the real numbers R, with multiplication and addition. See
(A1-A6) for a discussion of the axioms.
• A theorem is a valid argument (premises and conclusion). A proof is used to demonstrate the
validity of a theorem. Starting with the premises of the theorem, one uses axioms and previously
proved theorems as rules of inference to reach the conclusion. As theorems accumulate, mathematics
grows ever lusher.
• Less important theorems are also called propositions, results, facts. A lemma is a theorem whose
main importance is that it is used in the proof of other theorems. A corollary is a theorem that
follows directly from another theorem.
Definition 1. An integer n is even if there exists an integer k such that n = 2k. An integer n is odd if
there exists an integer k such that n = 2k + 1. (Note that n is either even or odd, but not both; think about
how you would prove this! See Theorem 3 below.)
Let’s take a look at our first theorem!
Theorem 1. If n is an odd integer, then n2 is odd.
Is “n is an odd integer” a proposition? No! There is an implicit quantifier at work. In logical notation,
let P (n) be the propositional function “n is odd”, where the domain for n is Z. As an argument, the theorem
is
! No premises!
!
"
! Conclusion: ∀n P (n) =⇒ P (n2 ) .
We saw earlier that to prove a ∀n Q(n) claim, it suffices to show Q(n) for arbitrary n. So in terms of
mathematics, we suppress the quantifier, think of n as arbitrary but fixed (so that P (n) is a proposition!),
and the argument becomes
! Premise: No premises!
! Conclusion: P (n) =⇒ P (n2 ),
which is logically the same as the more typical
! Premise: P (n).
! Conclusion: P (n2 ).
How do we prove this argument is valid?
Lecture 4, 8/30 (more Section 1.7)
Outline for writing proofs
• Step 1: Before you attempt a proof, convince yourself that the theorem is correct! Checking easy
cases is often a good idea.
• Step 2: On scratch paper, write down the premises (“given”) at the top of the page, and the conclusion
(“want”) at the bottom of the page. Make sure you know what you want to show before you try to
show it!
5
• Step 3: Fill in the (both physical and logical) space between the “given” and “want”. Use definitions,
axioms (mainly arithmetic in our case), and previously proved theorems to deduce the “want” from
the “given”. This is an attempt at a direct proof: if you get stuck, try a proof by contraposition or
contradiction instead (I’ll define these terms below).
• Step 4: Once you have an outline of the proof on your scratch paper, convert it into precise, crisp
English sentences. Label it “proof”, draw your favorite symbol at the end, and you have yourself a
proof!
In the theorem above, our “given” is that n is odd, namely that there exists an integer k such that
n = 2k + 1. Our “want” is to show that n2 is odd, which means finding an integer j such that n2 = 2j + 1.
How do we find this j? We need some way to use our information about n to deduce something about n2 .
We have an equation for n, so square it! This gives us n2 = (2k + 1)2 = 4k 2 + 4k + 1 = 2(2k 2 + 2k) + 1. So
setting j = 2k 2 + 2k, which is an integer, we see that n2 = 2j + 1, so n2 is odd. So here is the theorem, with
its proof:
Theorem 1. If n is an odd integer, then n2 is odd.
Proof. Since n is odd, there is an integer k such that n = 2k + 1. Then n2 = (2k + 1)2 = 4k 2 + 4k + 1 =
2(2k 2 + 2k) + 1. Since 2k 2 + 2k is an integer, n2 is odd by definition.
The preceding proof is called a direct proof. We started with the premise and deduced the conclusion.
Sometimes direct proofs are difficult:
Theorem 2. If n is an integer and n2 is odd, then n is odd.
√
Attempt at a direct proof: n2 is odd, so n2 = 2k + 1. Thus n = ± 2k + 1. Now what? Instead, use a
proof by contraposition, namely show the contrapositive is true (recall that an implication P =⇒ Q is
logically equivalent to its contrapositive ¬Q =⇒ ¬P ).
Proof. We prove the contrapositive, namely “if n is even, then n2 is even”. Since n is even, n = 2k for some
integer k. Then n2 = (2k)2 = 4k 2 = 2(2k 2 ), so n2 is even by definition.
Another useful type of proof is proof by contradiction. To prove an argument with premises P1 , P2
(or any number of premises) and conclusion Q, instead take P1 , P2 , ¬Q as premises, and try to prove that
they imply a contradiction, which is a proposition, say R, that is false. (Often the negation of Q can be
used to deduce the negation of one of the premises, so that the contradiction R is of the form P1 ∧ ¬P1 .)
What is the point of this? Suppose we have shown that the modified argument
! Premises: P1 , P2 , ¬Q
! Conclusion: R
is valid, where R is a false proposition. I claim that this implies that our original argument
! Premises: P1 , P2
! Conclusion: Q
is valid. For the only way an argument with a false conclusion can be valid is if one of the premises is false.
But if we assume P1 , P2 are true for the sake of our original argument, then the only way for the modified
argument to be valid is if ¬Q is false, namely Q is true.
To set up a proof by contradiction, take the negation of the conclusion, add it to the premises, and try
to derive something false (a contradiction).
Theorem 3. If n is an integer, then it is either even or odd (not both).
Proof. To see that every integer is even or odd, note that we can write the set of integers as {. . . , (−1) ·
2, (−1) · 2 + 1, 0 · 2, (0 · 2) + 1, 1 · 2, . . . }. To see that an integer n cannot be both even and odd, we use a
proof by contradiction. Assume for contradiction that n is even and odd. Since n is even, n = 2k for some
integer k. Since n is odd, n = 2j + 1 for some integer j. Then 2k = 2j + 1, so 2(k − j) = 1. Now there are
three possibilities for k − j:
6
(1) k − j ≥ 1. But then 2(k − j) ≥ 2, contradicting 2(k − j) = 1.
(2) k − j = 0. But then 2(k − j) = 0 #= 1.
(3) k − j ≤ −1. But then 2(k − j) ≤ −2, contradicting 2(k − j) = 1.
So it cannot be that 2(k − j) = 1. Thus our assumption, which led to the contradiction, must be false. So
n cannot be both even and odd.
7
Week 3: More Proofs; Sets and
Functions
Lecture 5, 9/04 (even more Section 1.7)
Next I will show you a famous proof by contradiction. The statement of the theorem requires a definition:
Definition 2. A real number r is rational if there exist integers a and b with b #= 0 such that r = a/b.
A real number that is not rational is called irrational. Rational numbers can be written in lowest terms,
meaning r = a/b and a, b have no common factors.
√
Theorem 4. 2 is irrational.
I don’t know where to start for a direct proof, and proof by contraposition makes no sense here. But
proof by contradiction works! This proof is more difficult than the other proofs in this section.
√
√
Proof. Suppose for contradiction that the claim is false, so that 2 is rational. Then 2 = ab , and we may
assume a and b are not both even (write the rational number in lowest terms). Squaring both sides gives
2
2 = ab2 , or 2b2 = a2 . So a2 is even, from which it follows that a is even (contrapositive of Theorem 3!). Then
a = 2k, so 2b2 = (2k)2 = 4k 2 . Dividing both sides by 2, we get b2 = 2k 2 , so b2 is even. But this implies b is
even, so we have shown that both a and b are even, which is a contradiction. Since assuming the claim was
false led to a contradiction, the claim must be true.
Proving equivalence. In math, we have many ways of saying the same thing. We can express the statement
P =⇒ Q as:
(i) “P implies Q”;
(ii) “if P , then Q”;
(iii) “Q if P ;
(iv) “P only if Q;
(v) “P is sufficient for Q”;
(vi) “Q is necessary for P ”.
For this reason, we can express P ⇐⇒ Q, which means P =⇒ Q and Q =⇒ P , as “P if and only if Q”
or sometimes “P is necessary and sufficient for Q”.
Theorem 5. An integer n is even if and only if n + 2 is even.
We need to prove “n is even if n + 2 is even” (this means “if n + 2 is even, then n is even”) and “n is
even only if n + 2 is even” (“if n is even, then n + 2 is even”).
Proof. If n is even, then n = 2k for some integer k. Then n + 2 = 2k + 2 = 2(k + 1), so n + 2 is even. On
the other hand, if n + 2 is even, then n + 2 = 2k for some integer k. Thus n = 2k − 2 = 2(k − 1), so n is
even.
8
Lecture 6, 9/06 (Sections 2.1, 2.3)
Sets and functions
Definition 3. A set is an unordered collection of objects, called elements of the set. A set is said to
contain its elements. If A is a set, we write a ∈ A to denote that a is an element of A, and a ∈
/ A if a is not
an element of A.
To describe a set, either list all of its elements or state defining properties for an object to be in the set.
Some examples of sets are:
• The set with no elements, called the “empty set” and denoted ∅;
• {kiwi, dragon, shark, turtle, penguin};
• Z = {. . . , −2, −1, 0, 1, 2, . . . }, the set of integers;
• Z≥1 = {1, 2, 3, . . . } = {n ∈ Z | n ≥ 1}, the set of positive integers (sometimes called “natural
numbers”);
• Z≥0 = {0, 1, 2, . . . }, the set of non-negative integers (sometimes called “natural numbers”);
• R, the set of real numbers;
• (0, 1] = {x ∈ R | 0 < x ≤ 1};
Definition 4. Let A and B be sets. We say A is a subset of B (A ⊆ B) if every element of A is an element
of B. Two sets A and B are equal (A = B) if A and B have the exactly same elements. Note that A = B
if and only if both A ⊆ B and B ⊆ A. If two sets are not equal we write A #= B. We say A is a proper
subset of B (A ! B) if A is a subset of B and A #= B.
For example, the empty set is a subset of every set and a proper subset of every set other than itself.
The second set listed above is a subset of the set of all mythical and real animals that are not mammals.
We also have Z+ ! Z≥0 ! Z ! R and (0, 1] ! R.
Now for what may be the most important object in all of mathematics:
f
!B,
Definition 5. Let A and B be sets. A function (or map) f from A to B, written f : A → B or A
is an assignment of exactly one element of B to each element of A. If a ∈ A, we write f (a) = b or a 1→ b if
b is the unique element of B assigned by the function f to the a. We call A the domain of f and B the
codomain of f . If f (a) = b, then we say b is the image of a and a is a preimage of b. The set of all images
of f is called the image (or range) of f ; it is a subset of B.
To describe a function, either state explicitly which element of B is being assigned to each element of A,
or give a rule (or several rules) that specifies the assignment. Examples:
f
! {dolphin, cardamom, 99} given by giraffe 1→ 99, 10 1→ 99, cardamom 1→
• {giraffe, 10, cardamom}
dolphin. The image of f is {dolphin, 99}.
• Z
f
! Z given by n 1→ n2 . Or Z
g
! Z≥0 with the same rule.
We should think about the two functions in the last example above as different, so we define:
Definition 6. Two functions A
for all a ∈ A = C.
f
! B and C
g
f
! D are equal if A = C, B = D, and f (a) = g(a)
! B is injective (one-to-one) if f maps no two distinct elements of A to
Definition 7. A function A
the same element B. Expressed in notation, this means that if a1 , a2 ∈ A and a1 #= a2 , then f (a1 ) #= f (a2 ).
(Another common way of expressing this is by the contrapositive: if f (a1 ) = f (a2 ), then a1 = a2 .)
9
Week 4: More Sets and Functions
Lecture 7, 9/11 (Section 2.3)
f
! B is surjective (onto) if the image of f is the entire codomain B. This
Definition 8. A function A
means that for every b ∈ B there is an element a ∈ A such that f (a) = b .
f
! B is bijective if it is both injective and surjective. This means that f
Definition 9. A function A
establishes a perfect correspondence of the elements of A with the elements of B.
Examples:
• For any set A, the identity function A
• The function Z
f
g
Definition 10. Given functions A
g◦f
! A is the bijective map defined by a 1→ a for all a ∈ A.
! Z given by f (n) = n + 3.
• The exponential function R
A
idA
! R>0 given by x 1→ 2x .
f
g
! B and B
! C , the composition of f and g is the function
! C given by (g ◦ f )(a) = g(f (a)).
Examples:
• For any set A, idA ◦ idA = idA .
• Given Z
f
! Z defined by f (n) = n + 3 and Z
g
! Z defined by g(n) = 2n, Z
g◦f
! Z is the
map (g ◦ f )(n) = g(f (n)) = g(n + 3) = 2(n + 3) = 2n + 6. Composing in the other order, Z
is the map (f ◦ g)(n) = f (g(n)) = f (2n) = 2n + 3. Note that f ◦ g #= g ◦ f !
f ◦g
!Z
f
! B and B g ! A be functions such that g ◦ f = idA and f ◦ g = idB . Then
Definition 11. Let A
we say f and g are inverse functions. We also say f is invertible and that f has g as an inverse, and
often denote that inverse by f −1 .
Examples:
• The inverse of idA is idA .
• The inverse of the function Z
f −1 (n) = n − 3.
f
! Z given by f (n) = n + 3 is the function Z
• The inverse of the exponential function R
that maps x 1→ log2 x.
Theorem 6. A function A
f
g
f −1
! Z given by
! R>0 given by x 1→ 2x is the logarithm R>0
! B has an inverse if and only if it is bijective.
10
g −1
!R
g
Proof. Suppose f has an inverse B
! A . We check that f is injective. Suppose f (a1 ) = f (a2 ). Then
a1 = idA (a1 ) = (g ◦ f )(a1 ) = g(f (a1 )) = g(f (a2 )) = (g ◦ f )(a2 ) = idA (a2 ) = a2 ,
so f is injective. To see that f is surjective, suppose b ∈ B. Then g(b) ∈ A and
f (g(b)) = (f ◦ g)(b) = idB (b) = b,
so f is surjective. Thus f is bijective.
g
! A to be the map that assigns to each element
Conversely, suppose f is bijective. Then define B
b ∈ B the unique element a ∈ A such that f (a) = b. Such an element a exists since f is surjective, and is
unique since f is injective. Now we use this definition of g to compute
(g ◦ f )(a) = g(f (a)) = a,
(f ◦ g)(b) = f (g(b)) = b.
Thus g ◦ f = idA and f ◦ g = idB , so g is the inverse of f .
Lecture 8, 9/13 (Section 2.2)
Here is an example of a proof involving an inverse function.
Theorem 7. The function R
f
! R given by f (x) = x3 is bijective.
Proof. We will construct a function that is the inverse of f . Since an invertible function must be bijective,
g
! R mapping x 1→ x1/3 , which is a function
this will prove that f is bijective. Consider the function R
since the cube root of any real number makes sense. We check the compositions. R
g◦f
! R is the map
x 1→ (g ◦ f )(x) = g(f (x)) = g(x3 ) = (x3 )1/3 = x, so g ◦ f = idR . Similarly, R
(f ◦ g)(x) = f (g(x)) = f (x1/3 ) = (x1/3 )3 = x, so f ◦ g = idR .
f ◦g
! R is the map
Combining sets
Notation: from now on, I’ll make heavy use of the notation “:=” when I’m defining something.
Definition 12. Let A and B be sets. The union of A and B is the set A ∪ B := {x | x ∈ A or x ∈ B}.
The intersection of A and B is the set A ∩ B := {x | x ∈ A and x ∈ B}. A and B are called disjoint if
A ∩ B = ∅. The difference of A and B (or the complement of B in A) is the set A − B := {x ∈ A | x ∈
/ B}.
Examples:
• Draw Venn diagrams.
• Let E be the even integers and O be the odd integers. Then E ∩ O = ∅, so E and O are disjoint.
E ∪ O = Z, Z − E = O, and E − Z = ∅.
We can take unions and intersections of an arbitrary number of sets.
#∞
Definition 13. $
Let A1 , A2 , . . . be sets. Then their union is i=1 Ai := {x | x ∈ Ai for some i} and their
∞
intersection is i=1 Ai := {x | x ∈ Ai for all Ai }.
Examples:
#∞
≥0
• Set
$∞ [a, b) := {x ∈ R | a ≤ x < b}. Then n=0 [n, n + 1) = [0, ∞) = R . On the other hand,
n=0 [n, ∞) = ∅.
#∞
• Set (a, b) := {x ∈ R | a < x < b}. Then n=1 ( n1 , ∞) = (0, ∞).
Definition 14. Let A and B be sets. The product of A and B is the set of ordered pairs A × B := {(a, b) |
a ∈ A, b ∈ B}.
Note: we could have defined a function from A to B to be a subset S of A × B such that each a ∈ A is
f
! B by f (a) = b would recover our original definition.
in exactly one pair (a, b) ∈ S. Defining A
11
Week 5: Infinity
Lecture 9, 9/18 (Section 2.5)
Comments on the quiz.
Hilbert’s hotel
David Hilbert was a great man, but perhaps an even greater hotelier. Hilbert owned a grand hotel with
infinitely many rooms, numbered by Z≥0 . One day, the hotel was full. A guest arrived, and was dismayed
to see there were no empty rooms. But lo and behold: the hotel staff simply asked each current resident to
shift one room up (in number), freeing room 0 for the new guest. Next, a crowd of 100 guests arrived, and
they too could be accommodated: everyone else shifted up 100 rooms. But then a horde of infinitely many
guests arrived, one for each element of Z≥0 . The hotel staff started to worry, but Hilbert just smiled as he
instructed each current resident to move to the room with twice their current room number, thereby freeing
up all the odd-numbered rooms. Then he put the first guest in room 1, the second in room 3, the third in
room 5, and so on, and all the guests received lodging!
Can Hilbert’s hotel accommodate any number of new guests? What if a crowd of guests arrives, one for
each rational number? How about one for each real number between 0 and 1? To find out, we develop the
theory of cardinality for distinguishing different sizes of infinity.
Cardinality
Definition 15. Let A be a set. If A has exactly n elements, for some positive integer n, then we say A is a
finite set and the cardinality of A (denoted |A|) is n. A set that is not finite is said to be infinite.
Example. If A and B are finite sets, then |A × B| = |A| · |B|. Also, |A ∪ B| = |A| + |B| − |A ∩ B|.
For infinite sets, cardinality is a relative measure, used to compare sizes of infinite sets:
Definition 16. Two sets A and B have the same cardinality (written |A| = |B|) if there is a bijective
function A
f
! B . If there is an injective function A
f
! B , then the cardinality of A is less than or
equal to the cardinality of B (we write |A| ≤ |B|). If |A| ≤ |B| and there is no bijective function A
then A has smaller cardinality than B (write |A| < |B|).
f
!B,
Using cardinality, we now establish two different sizes of infinity: the cardinality of Z≥0 , and bigger
cardinalities.
Definition 17. An infinite set that has the same cardinality as Z≥0 is said to be countable. A set that is
not countable is uncountable.
Remark. A set A is countable if and only if it can be written as an infinite list. To see this, note that a
bijection Z≥0
Example.
f
! A gives a natural way to construct a list, namely A = {f (0), f (1), f (2), f (3), . . . }.
• Z≥0 = {0, 1, 2, . . . } is countable, with bijection Z≥0
12
idZ≥0
! Z≥0 .
• Z≥1 = {1, 2, 3, . . . } is countable, with bijection Z≥0
• Z≥100 is countable, with bijection Z≥0
f
f
! Z≥1 given by f (n) = n + 1.
! Z≥100 given by f (n) = n + 100.
f
! E given
• The non-negative even integers E = {0, 2, 4, 6, . . . } are countable, with bijection Z≥0
by f (n) = 2n.
Note that the bijective functions in the last three examples correspond to the ways the staff in Hilbert’s
hotel made room for new guests. Each of these bijections is a bijection from Z≥0 onto a proper subset of
Z≥0 , which means every current resident of the hotel could be moved to a new room, while freeing up 1,
100, or infinitely (countably) many rooms for the new guests.
Theorem 8. Z is countable.
Proof. We can put the integers in a list {0, 1, −1, 2, −2, . . . }. This corresponds to the bijection Z
given by
%
2n − 1 if n > 0;
f (n) =
−2n
if n ≤ 0.
f
! Z≥0
Lecture 10, 9/20 (More section 2.5 and a little 2.4)
Theorem 9. If A and B are countable, then A ∪ B is countable.
Proof. Since A and B are countable, we can label their elements as A = {a0 , a1 , a2 , . . . } and B = {b0 , b1 , b2 , . . . }.
Then A ∪ B = {a0 , b0 , a1 , b2 , a2 , . . . }, so after eliminating redundant elements from the list, we see that A ∪ B
is countable.
This theorem gives us another proof that Z is countable. Namely, write Z = Z≥0 ∪ Z≤0 and note that
each of the sets in the union is countable.
Theorem 10. The set of rational numbers is countable.
Proof. Use the diagram on page 173 to argue that the positive rational numbers are countable. Adding zero
at the front of the list, we see that the non-negative rational numbers are countable. Similarly, the negative
rational numbers are countable. Thus by the previous theorem, the rational numbers are countable.
#∞
Theorem 11. If A1 , A2 , . . . are countable sets, then i=0 Ai is countable.
Proof. Since each Ai is countable, write Ai = {ai,0 , ai,1 , ai,2 , . . . }. Then use the same trick as for the rational
numbers.
Are all infinite sets countable? No!
Theorem 12. The set of real numbers is uncountable.
Proof. Suppose for contradiction that R is countable. Then the open interval (0, 1) is also countable, so
we may write (0, 1) = {x1 , x2 , x3 , . . . }. Now write the decimal expansions of the xi and use Cantor’s
diagonalization trick (p. 173-4) to construct an element x ∈ (0, 1) that cannot be in the list. Contradiction.
This is an astonishing result: the rational numbers are dense on the real line (for any real number, there
are rational numbers arbitrarily close to it), yet there are far more (in the sense of cardinality) irrational
numbers! The quantity of real numbers is a larger infinity than the quantity of rational numbers!
13
Zeno’s paradox
Suppose you want to get up and leave the room. Zeno the Greek philosopher says you cannot! Not just that
you may not, but that you physically cannot! Here’s why. The door is some distance, say 2 meters, away.
You start walking and get halfway there, but you’re still 1 meter away. You keep going, but after another
1
1
1
1
2 meter, you’re still one 2 meter short of your target. After another 4 meter, you still have 4 meter to go.
And so on: each time you cross half the remaining distance you get closer and closer, but you never quite
reach the door!
We’ll see shortly how mathematics solves the paradox.
Sequences and series
Definition 18. A sequence is a function from a subset of Z (usually Z≥0 or Z>0 to a set S. We denote the
image of the integer n by an ∈ S (we can also use some other letter instead of a). We think of a sequence
as a list (a0 , a1 , a2 , . . . ) of elements of S, and denote a sequence by (an )n≥0 , where we specify the domain
by the inequality subscript.
Note that a sequence is an ordered list, which may have repeated elements, two things that distinguish
it from a set.
Example. Consider the sequence (an )n≥1 , where an =
1
n
∈ Q. It begins with 1, 12 , 13 , . . . .
Definition 19. A geometric progression is a sequence of the form (a, ar, ar2 , ar3 , . . . , arn , . . . ), where
the initial term a and the ratio r are real numbers.
Definition 20. An arithmetic progression is a sequence of the form a, a + d, a + 2d, a + 3d, . . . , a + nd, . . . ,
where the initial term a and the difference d are real numbers.
&n
Notation. Given a finite sequence (a1 , a2 , . . . , an ), we use summation notation j=1 aj to denote the
sum a1 + a2 + · · · + an .
Theorem 13. If r ∈ R, then the sum of the finite geometric series with initial term 1 and ratio r is
%
n
1−r n+1
'
if r #= 1;
j
1−r
r =
n
+
1
if r = 1.
j=0
Proof. The case when r = 1 is obvious. If r #= 1, note that
(1 − r)(1 + r + r2 + r3 ) = 1 − r + r − r2 + r2 − r3 + r3 − r4 = 1 − r4 .
Similarly, we see that
(1 − r)(1 + r + r2 + · · · + rn ) = 1 − rn+1 .
Now since r #= 1, we can divide both sides by 1 − r to get the formula.
Now we investigate when we can take the sum of an infinite geometric series with ratio r #= 1. For this
we need the notion of limit, which I won’t define rigorously, so use your intuition from calculus. We want to
take a limit
n
'
lim
rj .
n→∞
j=0
When is this limit finite? By the previous theorem, this limit is equal to
1 − rn+1
.
n→∞
1−r
lim
If |r| > 1, the term rn+1 blows up as n → ∞, so the limit is ±∞, which we don’t want. If r = −1, then rn+1
oscillates between −1 and 1 depending on whether n + 1 is odd or even, so the limit doesn’t exist. Since
r #= 1 by assumption, the only remaining case is when |r| < 1, and in this case rn+1 goes to 0 as n goes to
∞! Thus:
14
Theorem 14. If r ∈ R and |r| < 1, then
∞
'
rj =
j=0
1
.
1−r
Note that when r > 0, the infinitely many positive numbers have a finite sum! This is the key to Zeno’s
paradox. Suppose you move at a rate of 1 meter per second. Then it takes you 1 second to cross the first
meter that gets you halfway to the door, 12 second for the next 12 meter to the door, 14 second to cross the
next 14 meter, 18 second for the next 18 meter, and so on. Thus the total number of seconds it takes you to
get to the door is
∞
'
1
1
1
=
1 = 1/2 = 2,
n
2
1
−
2
j=0
a finite number, which is certainly within your capabilities!
15
Week 6: Basics of Number Theory
Lecture 11, 9/25 (Sections 4.1 and 4.3)
Number theory is the study of the integers. We start with the basic definitions.
Division and Primes
Definition 21. If a, b ∈ Z with a #= 0, then a divides b (we write a | b) if there is an integer c such that
b = ac. We then call a a factor or divisor of b, and b a multiple of a.
Example.
• If n ∈ Z, then 2 | n if and only if n is even.
• 1 | a for every a ∈ Z.
• a | 0 for every nonzero a ∈ Z.
Some easy properties of divisibility are:
Theorem 15. Let a, b, c ∈ Z, with a #= 0. Then
(i) if a | b and a | c, then a | (b + c)
(ii) if a | b, then a | bc for all integers c;
(iii) if a | b and b | c, then a | c.
Proof. For (i), since a | b, there is s ∈ Z such that b = as. Since a | c, there is t ∈ Z such that c = at. Then
b + c = as + at = a(s + t), so a | (b + c).
(ii) and (iii) are homework exercises!
Corollary 1. If a, b, c ∈ Z with a #= 0, such that a | b and a | c, then a | mb + nc for any m, n ∈ Z.
Now let’s get reacquainted with our old friends from elementary school, the prime numbers:
Definition 22. An integer p > 1 is prime if its only positive factors are 1 and p. An integer greater than
1 is called composite if it is not prime.
Note: 1 is not prime! We’ll see in a moment why we want to exclude 1.
Example. The set of primes less than 100 is
{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}.
Why are primes important? They are the building blocks of all positive integers!
Theorem 16 (Fundamental theorem of arithmetic). Let n ∈ Z>1 . Then there is a unique sequence of primes
p1 ≤ p2 ≤ · · · ≤ pr such that n = p1 p2 · · · pr .
We call the expression n = p1 p2 · · · pr the prime factorization of n. Note that if 1 were a prime, then
the prime factorization would not be unique since we could take any number of 1’s as factors!
16
Proof. Sadly I have to postpone this crucial proof until we have learned proof by induction (Ch. 5)!
To find the prime factorization of a number n, check whether any of the primes less than n divide n. As
soon as you find a prime p such that p | n, add p to your factorization, and repeat the process for np .
Example. 2 = 2 is prime! 6 = 2 · 3. 63 = 3 · 3 · 7. 100 = 2 · 2 · 5 · 5.
Remark. Note that an integer > 1 is composite if and only if its prime factorization has at least two primes
(possibly the same prime twice)!
How many primes are there? Plenty!
Theorem 17. There are infinitely many primes.
Proof. Assume for contradiction that there are only finitely many primes, say {p1 , p2 , . . . , pn }. Then consider
N = p1 p2 · · · pn + 1.
Since N has a prime factorization, there is a pi that divides N . But pi also divides p1 p2 · · · pn , so pi divides
N − p1 p2 · · · pn = 1 by Theorem 15 (i). This is a contradiction since no prime can divide 1.
Remark. We can use the sieve of Eratosthenes (p.259-60) to compute all the primes less than a given
number. See the additional problem in the homework.
Lecture 12, 9/27 (More sections 4.1 and 4.3)
More Review of Elementary School Math
Definition 23. For a, b ∈ Z, the largest integer d such that d | a and d | b is called the greatest common
divisor of a and b and is denoted by gcd(a, b). We say a and b are relatively prime if gcd(a, b) = 1.
Remark. You can compute gcd(a, b) by taking the “intersection” of the prime factorizations of a and b.
For example, 36 = 2 · 2 · 3 · 3 and 84 = 2 · 2 · 3 · 7 have gcd(36, 84) = 2 · 2 · 3 = 12.
Definition 24. The least common multiple of a, b ∈ Z>0 , denoted lcm(a, b), is the smallest positive
integer m such that a | m and b | m.
Remark. You can also compute lcm(a, b) from the prime factorizations: take the “union” of the prime
factorizations for a and b. For instance, lcm(36, 84) = 2 · 2 · 3 · 3 · 7.
Theorem 18. Let a, b ∈ Z>0 . Then ab = gcd(a, b) · lcm(a, b).
Proof. Idea: think about the description of gcd(a, b) and lcm(a, b) in terms of prime factorizations!
Technical Machinery
Recall division with remainder from elementary school:
23
3
= 5 + = 5 R3.
4
4
Since we don’t have fractions when working with just Z, we clear denominators and formalize this as:
Theorem 19 (Division algorithm). Let a, d ∈ Z with d > 0. Then there are unique integers q, r with
0 ≤ r < d such that a = dq + r.
Proof. Idea: keep adding or subtracting d from a until you end up in the set {0, 1, . . . , d − 1}. Think of
dividing a by d and finding the remainder!
Definition 25. In the equality a = dq + r in the division algorithm, d is the divisor, a is the dividend, q
is the quotient, and r is the remainder.
Example. Note that the remainder must be non-negative! So applying the division algorithm to a = −7
and d = 6, we get q = −2 and r = 5, namely −7 = 6 · (−2) + 5.
We’ll see much, much more about the remainder next week!
17
Euclidean Algorithm
For large numbers, it is hard to find the prime factorizations. But there is an efficient method for finding
the gcd of two positive integers a, b, called the Euclidean algorithm. The idea is to repeatedly use the
division algorithm, first on a and b to get a = bq + r, then on b and r, and so on, until the remainder is 0.
The point is that the gcd is preserved from one step to the next:
Lemma 1. Let a = bq + r, where a, b, q, r ∈ Z. Then gcd(a, b) = gcd(b, r).
Proof. It suffices to show that the common divisors of a and b are the same as the common divisors of b and
r. If d | a and d | b, then d | a − bq = r by the corollary to Theorem 15. Similarly, if d | b and d | r, then
d | bq + r = a.
With each step, the numbers get smaller, so that by the end the gcd becomes obvious: it is the last
non-zero remainder! This is because the last non-zero remainder divides the last dividend, so the gcd of the
two is just that last non-zero remainder.
The Euclidean algorithm actually gives us more than just the gcd of a and b. It allows us to express that
gcd as a sum of multiples of a and b, which will be very, very useful next week when we want to solve linear
congruences!
Example. Find gcd(123, 45) using the Euclidean algorithm. Running the algorithm, we compute:
123 = 45 · 2 + 33
45 = 33 · 1 + 12
33 = 12 · 2 + 9
12 = 9 · 1 + 3
9 = 3 · 3 + 0.
The last nonzero remainder is 3, so gcd(123, 45) = 3!
Theorem 20. For a, b ∈ Z>0 , there exist s, t ∈ Z such that gcd(a, b) = sa + tb.
We say that gcd(a, b) can be expressed as a linear combination of a and b, with integer coefficients.
Proof. Idea: use the output of the Euclidean algorithm to find s and t. For example, when a = 123 and
b = 45, solving for the remainders in the output of the algorithm and repeatedly substituting, starting from
the bottom, yields:
3 = 12 − 9 · 1
= 12 − (33 − 12 · 2) · 1 = 12 · 3 − 33
= (45 − 33 · 1) · 3 − 33 = 45 · 3 − 33 · 4
= 45 · 3 − (123 − 45 · 2) · 4 = 45 · 9 − 123 · 4.
So s = −4 and t = 9.
The Euclidean algorithm and the substitution process are essential. That is why I’ve asked you to run
the algorithm a full 18 times in the homework. We will rely heavily on both parts next week, so make sure
it is a well-honed tool in your arsenal!
18
Week 7: Modular Arithmetic
Lecture 13, 10/02 (More section 4.1)
Modular Arithmetic
In some situations we care only about remainders. For instance, what time will it be 50 hours from now? One
way to find the answer is to compute the remainder of 50 divided by 24, and add that to the current time.
Working with remainders is surprisingly interesting mathematically, and has amazingly powerful applications
to cryptography, as we will see next week.
Recall the division algorithm:
Theorem (Division algorithm). Let a, d ∈ Z with d > 0. Then there are unique integers q, r with 0 ≤ r < d
such that a = dq + r.
We call this unique r the remainder. (The book denotes it a mod d, but we will not use this notation.)
Definition 26. If a, b ∈ Z and m ∈ Z>0 , then a is congruent to b modulo m (written a ≡ b (mod m))
if a and b have the same remainder when divided by m. We say that a ≡ b (mod m) is a congruence and
that m is its modulus. If a and b are not congruent modulo m, we write a #≡ b (mod m).
Example. 11 ≡ 7 ≡ 3 ≡ −1 ≡ −5 (mod 4) because all these numbers have remainder 3 when divided by 4.
For example, −1 = 4 · −1 + 3 (recall that by definition the remainder is non-negative!).
Remark. As in the previous example, we write “(mod m)” only once per line of congruences. Writing
“(mod m)” simply means that one is working in a special setting where numbers are considered “congruent”
if they have the same remainders when they are divided by m.
Remark. A useful equivalent form of the definition is as follows: a ≡ b (mod m) if and only if there is an
integer k such that a = b + km (prove this is equivalent!). Another way of saying this is that m divides a − b,
or that a and b differ by a multiple of m. The point is that adding a multiple of m to a number doesn’t
change its remainder when divided by m.
Remark. Let a ∈ Z and d ∈ Z>0 . Then d | a if and only if a ≡ 0 (mod d).
Remark. Congruence modulo m divides the integers into m congruence classes, one for each possible
remainder r ∈ {0, 1, 2, . . . , m − 1}. The class corresponding to the remainder r, written as a set, is {r + mk |
k ∈ Z}, and we sometimes denote it by r̄ (“r bar”). For example, if m = 2, the congruence classes are the
even numbers (0̄) and the odd numbers (1̄).
A useful result that makes computations modulo m easy is the following:
Theorem 21. Let m ∈ Z>0 . If a ≡ b (mod m) and c is any integer, then
a+c≡b+c
(mod m)
and
ac ≡ bc
(mod m).
Proof. Since a ≡ b (mod m), there is an integer s such that a = b + sm. Then a + c = b + c + sm, so
a + c ≡ b + c (mod m), and ac = (b + sm)c = bc + (sc)m, so ac ≡ bc (mod m).
19
Remark. What the theorem says is this: if we are working modulo m, then we can replace any number
in a sum or product by any other number with the same remainder (in the same congruence class). This
makes computations easy, because we can replace big numbers by small numbers, such as those between 0
and m, or sometimes small negative numbers. For instance, what are the remainders when 12100 or 10100
are divided by 11? Congruence makes the computation incredibly easy. Since 12 ≡ 1 (mod 11), we apply
the theorem repeatedly, replacing the factors of 12 by 1 one at a time, to see that
12100 ≡ 1100 ≡ 1
(mod 11).
Similarly, since 10 ≡ −1 (mod 11), we can replace each factor of 10 by −1 to get
10100 ≡ (−1)100 ≡ 1
(mod 11).
Remark. To summarize, arithmetic modulo m works just like normal arithmetic, except that you can
replace numbers being added or multiplied (but not exponents!) by congruent numbers modulo m. This
makes modular arithmetic much easier, because you can keep the numbers smaller than the modulus!
Example. Find a ∈ Z with 0 ≤ a < 7 such that a ≡ 3100 (mod 7). There’s no trick quite as easy as in
the previous examples, but the small modulus still makes things easy. Start by finding a power of 3 that is
particularly easy to work with modulo 7: note that 33 ≡ −1 (mod 7). Then compute
3100 = 3 · (33 )33 ≡ 3 · (−1)33 = −3 ≡ 4
(mod 7),
so a = 4.
Congruences can be used to give easy proofs of criteria for divisibility.
Theorem 22. Let a ∈ Z and let D be the sum of the digits of a. Then 3 | a if and only if 3 | D.
Proof. Write a = an an−1 . . . a0 , where the ai denote the digits of a. Then since 10 ≡ 1 (mod 3),
a = a0 + 10a1 + 102 a2 + · · · + 10n an ≡ a0 + a1 + · · · + an = D
(mod 3).
Thus a ≡ 0 (mod 3) if and only if D ≡ 0 (mod 3).
Lecture 14, 10/04 (Section 4.4)
Fermat’s Little Theorem
Last time, we used some tricks to compute large powers of integers modulo m. The following theorem takes
care of must such problems:
Theorem 23 (Fermat’s little theorem, often abbreviated FLT). If p is prime and a is an integer not divisible
by p, then
ap−1 ≡ 1 (mod p).
The theorem is saying that for any a not divisible by p, p divides ap−1 − 1. For instance, if 3 " a, then
3|(a2 − 1). Indeed, 3 divides 12 − 1 = 0, 22 − 1 = 3, 42 − 1 = 15, 52 − 1 = 24, and so on.
Proof. An outline is given in Exercise 19 of Section 4.4. This is an optional homework problem!
Example. Find the remainder of 3100 when divided by 7. Since gcd(3, 7) = 1, we can apply Fermat’s little
theorem to compute
3100 = 34 · (36 )16 ) ≡ 34 · (1)16 = 34 ≡ 4 (mod 7),
which is the same answer we got earlier!
One of the things you learn in your first algebra class is how to solve linear equations like 3x + 4 = 0
for x. One first subtracts 4 (adds −4), to obtain 3x = −4. Then one divides by 3, which really means
multiplying by 13 . The key is that the coefficient of x, namely 3, has a multiplicative inverse, namely 13 ,
which is a number such that 13 · 3 = 1. The multiplicative inverse allows you change the coefficient of x to 1.
20
Linear Congruences
A natural question is whether we can solve the congruence analog of linear equations.
Definition 27. A linear congruence is a congruence of the form ax + b ≡ 0 (mod m), where a, b ∈ Z,
m ∈ Z>0 , and x is a variable.
We want to solve for all integer values of x that satisfy the congruence.
Example. Solve the linear congruence 3x + 1 ≡ 0 (mod 5). First, we add −1 (which is congruent to 4) to
both sides, to get 3x ≡ 4 (mod 5). Now we want to remove the coefficient of x. For this, we need to find
a multiplicative inverse of 3 modulo 5, namely some c ∈ Z such that c · 3 ≡ 1 (mod 5). Guess and check
reveals that 2 works: 2 · 3 ≡ 1 (mod 5). So we multiply our equation by 2 on both sides, to get 2 · 3x ≡ 2 · 4
(mod 5), which simplifies to x ≡ 3 (mod 5). Now we can read off the solutions to our linear congruence: x
can be anything with remainder 3 modulo 5, namely any integer of the form 3 + 5k for k ∈ Z. So we can
write the solution set as {3 + 5k | k ∈ Z}. Instead of just one value for x, our solution is a whole congruence
class modulo 5!
The only tricky part of solving the congruence in the example was the existence of a multiplicative inverse
for 3. The natural question to ask is: When does a have a multiplicative inverse modulo m, and how can
we find it if it exists?
Here is the answer:
Theorem 24. Let a ∈ Z and m ∈ Z>1 . If gcd(a, m) = 1, then a has an inverse modulo m.
We’ve done all the hard work already by studying the Euclidean algorithm and substitution process. The
substitution process, in particular, will give the multiplicative inverse. It is time to reap the rewards!
Proof. Since gcd(a, m) = 1, by Theorem 20 there exist s, t ∈ Z such that 1 = sa+tm. Thus sa ≡ 1 (mod m),
so s is a multiplicative inverse of a.
So we can solve any linear congruence ax + b ≡ 0 (mod m) for which gcd(a, m) = 1. For instance:
Example. Solve 3x + 6 ≡ 0 (mod 10). We run the Euclidean algorithm on 3 and 10:
10 = 3 · 3 + 1
3 = 1 · 3 + 0.
So gcd(3, 10) = 1. Moreover, 1 = 10 − 3 · 3, so the multiplicative inverse of 3 modulo 10 is −3, which is
congruent to 7. So we add 4 to both sides, then multiply by 7 to get
x≡7·4≡8
(mod 10),
so the set of solutions is {8 + 10k | k ∈ Z}.
But what if gcd(a, m) = d > 1? For instance:
Example. Solve 2x ≡ 1 (mod 6). Here gcd(2, 6) = 2, so we cannot find an inverse for 2 modulo 6. Test
some numbers for x, and you’ll find none of them work! That’s because if x were a solution, then 2x = 1 + 6k
for some k, but 2 | 2x and 2 | 6k, so necessarily 2|(2x − 6k), which is a contradiction since 2 " 1. So there are
no solutions!
The problem in the above example was that gcd(a, m) " b, which makes it impossible to find a solution.
So what happens if gcd(a, m) | b?
Example. Solve 4x + 2 ≡ 0 (mod 6). As before, gcd(4, 6) = 2, and this time b = 2 and 2 | 2. x is a solution
if 4x + 2 = 6k, which implies that 2x + 1 = 3k. So we see that the solutions to 4x + 2 ≡ 0 (mod 6) are the
same as the solutions to 2x + 1 ≡ 0 (mod 3), which we can solve since gcd(2, 3) = 1.
We summarize all of this:
Theorem 25. Let a, b ∈ Z and m ∈ Z>1 and set d = gcd(a, m). Then the linear congruence ax + b ≡ 0
(mod m) has solutions if and only if d | b, in which case the solutions are the same as the solutions of
a m
the congruence ad x + db ≡ 0 (mod m
d ). Since gcd( d , d ) = 1, this latter system can be solved by finding a
a
m
multiplicative inverse for d modulo d .
21
Week 8: Cryptography
Lecture 15, 10/16 (Section 4.6)
Cryptography
Have you ever solved a cryptogram? You see an encrypted phrase like
XBZZA, LBALZB!
which is the result of taking a phrase and performing a letter substitution, such as replacing A by T , B by
L, and so on. In this case, analyzing the punctuation and letter patterns could lead you to the solution
HELLO, PEOPLE!
To make a simple cryptogram, choose a short message, let’s call it M, written in capital letters with
φE
! {A, B, C, . . . , Z} .
spaces but no punctuation, and a bijective (one-to-one) function {A, B, C, . . . , Z}
Then “encrypt” the message M by applying the function to each letter in M, to obtain an encrypted message
φE (M). To “decrypt” an encrypted message, simply apply the inverse of φE : φ−1
E (φE (M)) = M. We call
M the message, φE the encryption key, and φ−1
E the decryption key.
Suppose you want to communicate with a friend via written messages, in such a way that no third party
who intercepts the messages will be able to read them. You and your friend get together in utmost secrecy
and agree on an encryption key φE and a decryption key φD , which could be much more complicated than
the bijection above (for instance, choose one bijection for the first word of the message, a different bijection
for the second word, etc.). Now as long as you keep these keys secret, third parties who intercept encrypted
messages φE (M) will have trouble decrypting them.
But what if you have no way to secretly share the encryption and decryption keys?
Public key cryptography is a way for strangers to communicate securely. The future message recipient,
say Amazon.com, publishes an encryption key φE , which anyone can see, but keeps the decryption key φD
private. When making a purchase, a shopper uses the encryption key to encrypt the details M of the order
(especially the credit card number!), and the encrypted message φE (M) is sent to Amazon. Amazon then
decrypts the message φD (φE (M)) = M and draws money from the account. Since the encryption key is
public, any snooping third party has access to it. So security hinges on whether decryption is a much harder
process than encryption: the encryption key should not reveal the decryption key! Note that this is not the
case in the cryptogram example above, where φD = φ−1
E , namely the decryption key was easy to compute
from the encryption key.
A famous public key cryptosystem used extensively online is called the RSA cryptosystem. RSA is
based on number theory, so the first step is to convert letters into numbers. We can do this by the easy
substitution A 1→ 01, B 1→ 02, C 1→ 03, ..., Z 1→ 26. We also want to keep track of spaces, so we replace
each space by “00”.
RSA Encryption
Here is a simple example to illustrate how RSA works. Amazon publishes two carefully chosen numbers,
say n = 28907 and e = 11 (in reality these will be much larger), which will be used for encryption. For
22
convenience, set # to be the number of digits of n, in this case # = 5. You, the shopper, can see all of this
public information, and you encode your order as follows. Suppose part of the order is
DISCRETE MATH.
First, you convert this text into numbers, by the above substitution, to get
04091903180520050013012008.
Next, you chop this number into blocks of length # − 1 = 4, namely
m1 = 0409, m2 = 1903, m3 = 1805, m4 = 2005, m5 = 0013, m6 = 0120, m7 = 0800
(pad m7 with extra zeros to ensure all blocks are the same length). Now you compute the remainder ri
of each mei modulo n, write each ri as a 5-digit number (padding the front with 0’s if necessary), and
concatenate everything into a long string, which gets sent to Amazon. The computations are
040911 ≡ 20557
1903
11
1805
11
2005
11
0013
11
0120
11
0800
11
(mod 28907),
≡ 21779
(mod 28907),
≡ 04448
(mod 28907),
≡ 11232
(mod 28907),
≡ 06299
(mod 28907),
≡ 20166
(mod 28907),
≡ 11558
(mod 28907),
so the remainders are
r1 = 20557, r2 = 21779, r3 = 06299, r4 = 04448, r5 = 20166, r6 = 11232, r7 = 11558.
The string sent to Amazon is
20557217790629904448201661123211558.
To summarize the encryption process φE of a string M, using n and e:
1. Convert M into a numbers in the usual way.
2. Break the result into blocks mi of length # − 1 (pad the end of the last block with 0’s).
3. Compute the remainder ri of each mei modulo n.
4. Consider each ri as having length # (pad the front of each ri with 0’s).
5. Concatenate the ri to obtain φE (M).
Any third party who knows n and e and intercepts φE (M) will trouble decrypting the message because
modular exponentiation (step 3) is not easy to invert in general. But the situation is not general, and only
Amazon knows why!
RSA Decryption
Only Amazon knows the prime factorization of n, which is 28907 = 137 · 211. Amazon chose e = 11 to
be relatively prime to (137 − 1) · (211 − 1) = 28560. Thus Amazon can use the Euclidean algorithm with
substitution to find a linear combination of 11 and 28560 that equals 1:
28560 = 11 · 2596 + 4
11 = 4 · 2 + 3
4=3·1+1
3 = 1 · 3 + 0,
23
so that
1 = 4 − 3 = 4 − (11 − 4 · 2) = 4 · 3 − 11 = (28560 − 11 · 2596) · 3 − 11 = 3 · 28560 − 7789 · 11.
Thus −7789 is a multiplicative inverse of 11 modulo 28560, and so is −7789 + 28560 = 20771. Set d = 20771;
this is the magic number that will allow Amazon to decrypt the message!
Now Amazon breaks φE (M) into blocks ri of length #, and simply computes the remainders si of each
mdi modulo n, considering each as an (# − 1)-digit number. Thus to decrypt the string Amazon received in
the previous example, Amazon computes
2055720771 ≡ 0409
20771
21779
20771
06299
20771
04448
20771
20166
20771
11232
20771
11558
(mod 28907),
≡ 1903
(mod 28907),
≡ 2005
(mod 28907),
≡ 0120
(mod 28907),
≡ 1805
(mod 28907),
≡ 0013
(mod 28907),
≡ 0800
(mod 28907),
namely
s1 = 0409, s2 = 1903, s3 = 1805, s4 = 2005, s5 = 0013, s6 = 0120, s7 = 0800.
Finally, Amazon concatenates all the si to obtain
0409190318052005001301200800,
and then converts this back into letters by the usual substitution, ending with the original message:
DISCRETE MATH .
To summarize the decryption process φD of an encrypted string φE (M) using d, a multiplicative inverse
of e modulo (p1 − 1)(p2 − 1), where n = p1 p2 is the prime factorization of n:
1. Break φE (M) into blocks ri of length #.
2. Compute the remainder si of each rid modulo n.
3. Think of si as an (# − 1)-digit number (in fact, si = mi !)
4. Convert the mi into letters in the usual way.
5. Concatenate the results to obtain φD (φE (M)).
As in the example, φD (φE (M)) = M, as we will prove next time!
In practice, Amazon chooses two extremely large distinct prime numbers p1 and p2 (at least 200 digits
each) and picks e to be some positive integer relatively prime to (p1 − 1)(p2 − 1). Amazon publishes n = p1 p2
and e, and keeps the two prime factors of n secret. The number n is so large that there is no hope of
finding its prime factors! Decryption relies on computing d, which cannot be done without knowing the
prime factors, so a snooping third party that knows only n, e, and an encrypted message can’t decrypt the
message.
Lecture 16, 10/18 (Section 4.6)
Why RSA Decryption Works
Why does RSA decryption recover the original message? The key step in encryption is to encrypt a block
m by finding the remainder r of me modulo n, and the key step in decryption is to compute the remainder
s of rd modulo n. Thus
s ≡ rd ≡ (me )d ≡ med (mod n),
so RSA will recover the original block if s ≡ m (mod n). Thus we want to prove the theorem:
24
Theorem 26 (RSA decryption works). Let p1 , p2 be distinct primes, let e ∈ Z>0 satisfy gcd(e, (p1 − 1)(p2 −
1)) = 1, and let d ∈ Z>0 be a multiplicative inverse of e modulo (p1 − 1)(p2 − 1). Then
med ≡ m
(mod p1 p2 )
for any m ∈ Z.
The challenge in proving the theorem is that the modulus p1 p2 is a product of primes, whereas we are
best at working modulo a prime, when we can use powerful tools like FLT. We want to prove that med is a
solution of the congruence x ≡ m (mod p1 p2 ), and we do this as follows.
Proof. We break the proof into three steps.
Step 1: Split the congruence x ≡ m (mod p1 p2 ) into the system of two congruences
x≡m
x≡m
(mod p1 )
(mod p2 ).
We say an integer is a solution of the system if it satisfies both congruences.
Step 2: Show that any solution of the system must also be a solution of the original congruence.
Step 3: Show that med is a solution of the system.
Step 1 does not require any work, so we begin by showing Step 2. Suppose a is a solution of the system.
Then any a + kp1 p2 is also a solution of the system, since the term kp1 p2 is congruent to 0 modulo p1 and
modulo p2 . Thus the remainder r of a modulo p1 p2 is a solution of the system. Note that 0 ≤ r < p1 p2 .
The system also has the obvious solution m, and by the same argument the remainder s of m modulo p1 p2
is also a solution of the system, and 0 ≤ s < p1 p2 . But by the Chinese Remainder Theorem (abbreviated
CRT), which I will state in a moment, the system has a unique solution in the interval 0 ≤ x < p1 p2 , thus
we must have r = s. But this implies
a≡r=s≡m
(mod p1 p2 ),
so a satisfies the original congruence, as claimed.
Here is the statement of the mighty CRT, which I will prove after completing Step 3.
Theorem 27 (Chinese Remainder Theorem, abbreviated CRT). Let p1 , p2 be distinct primes, and let a1 , a2 ∈
Z. Then the system of congruences
x ≡ a1
x ≡ a2
(mod p1 ),
(mod p2 )
has a unique solution in the interval 0 ≤ x < p1 p2 .
To finish the proof that RSA decryption works, we now complete Step 3, namely we must show that med ≡
m (mod p1 ) and med ≡ m (mod p2 ). The argument is the same for each congruence up to interchanging
the roles of p1 and p2 , so we will only prove that med ≡ m (mod p1 ). An easy case is when p1 | m, in which
case m ≡ 0 (mod p1 ), so med ≡ 0 ≡ m (mod p1 ) is what we are trying to show. So assume p1 " m, which
will allow us to use FLT. We will now finally use the properties of e and d. Since d is a multiplicative inverse
of e modulo (p1 − 1)(p2 − 1), ed ≡ 1 (mod (p1 − 1)(p2 − 1)), namely de = 1 + k(p1 − 1)(p2 − 1) for some
k ∈ Z. Thus by FLT,
med = m1+k(p1 −1)(p2 −1) = m · (mp1 −1 )
k(p2 −1)
so we are done.
25
≡ m · 1k(p2 −1) = m (mod p1 ),
Chinese Remainder Theorem
To prove the CRT, stated above, we need an easy lemma. Remember the exercise asking for a counterexample
to the claim that if a, b, d ∈ Z with d | ab, then d | a or d | b? (For instance, take a = 2, b = 3, d = 6.) The
claim does hold if d is prime:
Lemma 2. Let a, b, p ∈ Z with p prime, and suppose p | ab. Then p | a or p | b.
Proof. Suppose p " a. Then gcd(p, a) = 1, so by Theorem 20, there are r, s ∈ Z such that rp + sa = 1.
Multiplying both sides by b, we get rpb + sab = b. Since p | ab by assumption, p | sab, and also p | rpb, thus
p | (rpb + sab) = b, which completes the proof.
Proof of the CRT. Since p1 and p2 are distinct primes, gcd(p1 , p2 ) = 1, so there exist r1 , r2 ∈ Z such that
r1 p1 + r2 p2 = 1 (Euclidean algorithm with substitution; see Theorem 20). Then x = a1 r2 p2 + a2 r1 p1 is
a solution to the system of congruences, and finding the remainder modulo p1 p2 gives a solution in the
interval 0 ≤ x < p1 p2 . To see that the solution is unique, suppose that 0 ≤ x, y < p1 p2 are two solutions.
Then x ≡ a1 ≡ y (mod p1 ) and x ≡ a2 ≡ y (mod p2 ), so there are k1 , k2 ∈ Z such that x = y + k1 p1 and
x = y + k2 p2 . Thus k1 p1 = k2 p2 , so p1 | k2 p2 . Since p1 " p2 , the lemma implies p1 | k2 , namely there
is some l ∈ Z such that k2 = lp1 . Thus x = y + lp1 p2 , so x ≡ y (mod p1 p2 ), which implies x = y since
0 ≤ x, y < p1 p2 .
26
Week 9: Proof by Induction
Lecture 17, 10/23 (Section 5.1)
Introduction to Induction
Have you ever set up a domino rally? You place dominoes upright in a line, then knock over the first
domino, which knocks over the second, which knocks over the third, and so on. Keep this image in mind
while learning about mathematical induction, because the basic idea of induction is that of the domino rally.
Mathematical induction is a powerful technique for proving a propositional function is true for all
positive (or nonnegative) integers. Here is a typical proof by induction:
Theorem 28. Let n ∈ Z>0 . The sum of the first n odd positive integers is n2 .
Proof. Induction on n. For the base case n = 1, we simply note that 1 = 12 . Now suppose the theorem is
true for some n = k ∈ Z>0 . Then
1 + 3 + · · · + (2k − 3) + (2k − 1) = k 2
by assumption. Adding 2k + 1 to both sides, we get
1 + 3 + · · · + (2k − 3) + (2k − 1) + (2k + 1) = k 2 + (2k + 1) = (k + 1)2 ,
which shows that the theorem is true for n = k + 1. Thus we are done by induction.
Why did the previous argument prove the theorem? Consider the propositional function “the sum of the
first n odd positive integers is n2 ”, which we denote P (n). The theorem is stating that P (n) is true for all
n ∈ Z>0 . To prove this, we argue as follows:
(1) Prove the “base case” P (1). (Knock over the first domino.)
(2) Prove that P (k) implies P (k + 1) for arbitrary k ∈ Z>0 . (Show that a falling domino knocks over the
next domino.)
These two steps prove the theorem because (1) establishes P (1), while (2) establishes the chain of implications
P (1) =⇒ P (2) =⇒ P (3) =⇒ P (4) =⇒ · · · .
Since P (1) is true, so is P (2). Since P (2) is true, so is P (3). And so on. Each falling domino knocks over
the next domino in line, so all of the infinitely many dominoes get knocked over.
Remark. Note that we do not use the P (n) notation when writing a proof! Instead of writing P (k), for
instance, we refer to the theorem being true for n = k, as in the proof of Theorem 28 above.
Lecture 18, 10/25 (More Section 5.1)
More Induction
Let’s try another proof by induction.
27
Theorem 29. Let n ∈ Z>0 . Then
1 + 2 + ··· + n =
n(n + 1)
.
2
Proof. Induction on n. For the base case n = 1, note that 1 = 1(1+1)
. Now suppose the theorem is true for
2
some n = k ∈ Z>0 . Thus
k(k + 1)
1 + 2 + ··· + k =
.
2
Adding k + 1 to both sides, we get
1 + 2 + · · · + k + (k + 1) =
k(k + 1)
k 2 + k + 2k + 2
(k + 1)(k + 2)
+ (k + 1) =
=
,
2
2
2
so the theorem is true for n = k + 1. So we are done by induction.
Here’s another less abstract proof by induction.
Theorem. In any set S of horses, all the horses are the same color.
Proof. Proof by induction on n, the number of horses in S. The base case n = 1 holds since there is only
one horse in the set. Now suppose that for some k ∈ Z>0 , any set of k horses has all horses the same color.
Given a set S of k + 1 horses, pick two different subsets A1 , A2 of S with k horses each. By assumption, all
the horses of A1 are the same color and all the horses of A2 are the same color. But the intersection A ∩ B
contains k − 1 horses, hence the color of the horses in A is the same as the color of the horses in B. By
induction, we have proved the theorem.
Wait, what did we just prove?! Analyze the proof carefully and try to find an error. Hint: there is a gap
in the proof that P (k) =⇒ P (k + 1) when k = 1. The above theorem is a flawed proof by induction: don’t
write proofs like this!
Thus the base case holds, but the rest of the proof falls apart! The first domino gets knocked over, but
the falling first domino fails to knock over the second domino, so no other dominoes fall. Note that a small
mistake in one case of this proof by induction is the difference between the theorem being true for all n ≥ 2
and being false for all n ≥ 2. So we must be careful when trying to prove a theorem by induction!
28
Week 10: More Induction, Intro to
Combinatorics
Lecture 19, 10/30 (Section 5.2)
Strong Induction and the FTA
Our goal today is to prove the theorem
Theorem (Fundamental theorem of arithmetic). Let n ∈ Z>1 . Then
(a) n can be written as a product of primes n = p1 p2 · · · pr ;
(b) this prime factorization is unique if we insist that p1 ≤ p2 ≤ · · · ≤ pr .
For the proof of (a), we will use a slightly different version of induction, called strong induction, which
is logically equivalent to induction, but sometimes makes a proof easier. The two steps for using strong
induction are:
(1) Prove the “base case” P (1). (Knock over the first domino.)
(2) For arbitrary k ∈ Z>0 , prove that P (i) for all i ≤ k implies P (k + 1). (Show that if all the dominoes up
to a certain point have fallen over, then the next one gets knocked over.)
Here is how we can use strong induction to prove (a):
Proof of (a). Strong induction on n. For the base case n = 2, note that 2 is prime, hence factors uniquely
into primes as 2 = 2. Now assume that for some k ∈ Z>1 , any integer i in the range 2 ≤ i ≤ k can be written
as a product of primes. Then either k + 1 is prime, in which case k + 1 = k + 1 is a prime factorization, or
k + 1 is composite, in which case it has a divisor d in the interval 2 ≤ d ≤ k. Since d | k + 1, there is an
e ∈ Z such that k + 1 = de, and the bounds on d imply that 2 ≤ e ≤ k. Thus by assumption, d = p1 · · · ps
and e = ps+1 · · · pr , so combining these factorizations yields k + 1 = de = p1 · · · ps ps+1 · · · pr . By strong
induction, I have proved that every n ∈ Z>1 has a prime factorization.
For the proof of (b), I need a pair of lemmas. The first is a repeat of Lemma 2 above:
Lemma. Let a, b, p ∈ Z with p prime, and suppose p | ab. Then p | a or p | b.
Proof. Suppose p " a. Then gcd(p, a) = 1, so by Theorem 20, there are r, s ∈ Z such that rp + sa = 1.
Multiplying both sides by b, we get rpb + sab = b. Since p | ab by assumption, p | sab, and also p | rpb, thus
p | (rpb + sab) = b, which completes the proof.
With this, we can prove the stronger result:
Lemma 3. If p is prime and p | a1 a2 · · · an where each ai ∈ Z, then p | ai for some i.
Proof. Induction on n. For the base case n = 1, p | a1 implies p | a1 . Now suppose the lemma is true
for some k ∈ Z≥1 . Then if p | a1 a2 · · · ak ak+1 , we can write this as p | (a1 a2 · · · ak )(ak ), a product of two
integers. By the previous lemma, we see that p | ak or p | a1 a2 · · · ak ; in the latter case our assumption
ensures that p | ai for some 1 ≤ i ≤ k. Either way, p | ai for some i, so we are done by induction.
29
Now I am ready to prove the uniqueness claim (b) of the FTA.
Proof of (b). To see that a prime factorization n = p1 p2 · · · pr is unique when we insist that p1 ≤ p2 ≤ · · · ≤
pr , suppose for contradiction that there is a different prime factorization n = q1 q2 · · · qs with q1 ≤ q2 ≤ · · · ≤
qs . Removing prime factors that appear in both factorizations, the leftover primes give an equation
p i 1 pi 2 · · · p i u = q j 1 q j 2 · · · q j v ,
where no prime appears on both sides. But pi1 divides the left side, hence also the right side, so by Lemma
3, pi1 | qjl for some l, hence pi1 = qjl since qjl is prime, which is a contradiction.
Lecture 20, 11/01 (Section 6.1)
Basic Counting
Let’s start with a very easy counting problem.
Example. Suppose you have 7 candy bars and 11 lollipops. In how many ways can you choose one piece of
candy?
Solution: You can choose either a candy bar or a lollipop. Since there are 7 candy bars and 11 lollipops,
you have 7 + 11 = 18 different choices of a piece of candy.
The simple principle at work here is the following:
Theorem 30 (Sum rule). If a task can be done either in one of n1 ways or in one of n2 ways, where none
of the set of n1 ways is the same as any of the set of n2 ways, then there are n1 + n2 ways to do the task.
Here’s a trickier kind of problem.
Example. Now suppose you have 3 pointy hats, 2 bloody shirts, 1 coal-black pair of pants, and 3 ghoulinfested pairs of socks. How many different costumes of 1 hat, 1 shirt, 1 pair of pants, and 1 pair of socks
can you make?
Solution: Draw a tree diagram. Starting with a point (the root of the tree), draw 3 branches, one for
each choice of hat. From the end of each hat branch, draw 2 branches, one for each type of shirt. From the
end of each shirt branch, draw 1 branch, since there is only one choice of pants. Now for each pants branch,
draw 3 branches, one for each pair of socks. Each path from the root of the tree to the end of a socks branch
corresponds to a costume. Counting the branches, there are a total of 3 · 2 · 1 · 3 = 18 different costumes.
We can formalize this method of drawing a tree diagram to obtain:
Theorem 31 (Product rule). Suppose a procedure consists of independent tasks T1 , . . . , Tr . Suppose there
are ni ways of doing the task Ti for each 1 ≤ i ≤ r. Then there are n1 n2 · · · nr ways to do the procedure.
Remark. The word “independent” means that the number of ways of doing task Ti does not depend on
which way the other tasks are being done. For instance, in the example, the number of ways to pick a shirt
did not depend on the hat that was chosen.
Now I’ll give some more examples.
Example. How many different 6-letter “words” are possible? (By “word” I mean any string of 6 letters.)
Solution: Think of choosing a word as a procedure with 6 tasks T1 , T2 , . . . , T6 , where each Ti is the task
of choosing the ith letter of the word. Since there are 26 letters, there are 26 ways to do each Ti , thus by
the product rule there are 266 6-letter words. That’s over 300 million possibilities! Of course most of these,
like “orltkq”, are not (yet!) words in the English language.
Here’s a related, but more abstract, example.
30
Example. How many functions are there from a set A = {a1 , a2 , a3 } with three elements to a set B =
{b1 , b2 , b3 , b4 } with four elements?
f
! B , we need to specify an image for each ai . Think of this as a
Solution: To define a function A
procedure with three tasks T1 , T2 , T3 , where each Ti is the task of specifying an image for ai . Then there are
4 ways of doing each Ti since there are 4 elements in B. Thus by the product rule, the number of functions
A
f
! B is 4 · 4 · 4 = 64.
Here’s a slight modification of the previous example.
Example. How many injective (one-to-one) functions are there from A = {a1 , a2 , a3 } to B = {b1 , b2 , b3 , b4 }?
f
! B , we need to specify an image for each ai ∈ A, and
Solution: To define an injective function A
none of these images can be the same. As before, let Ti be the task of specifying an image for ai , and think
of doing T1 , then T2 , and then T3 . Then there are 4 ways to do T1 , but only 3 ways to do T2 , because a2
can’t map to the image you chose for T1 . Similarly, there are only 2 ways to do T3 , because you cannot map
a3 to the images of a1 or a2 . Thus by the product rule, the number of injective functions is 4 · 3 · 2 = 24.
Remark. Note that in the previous example, the choice of image for a1 did affect the possible images for
a2 . For instance, if a1 1→ b1 , then a2 can only map to b2 , b3 , or b4 , whereas if a1 1→ b2 , then a2 can only map
to b1 , b3 , or b4 . But the crucial point is that the number of ways of choosing an image of a2 is 3, regardless
of which image for a1 you chose. Thus the tasks of choosing the images for the ai are independent, allowing
us to use the product rule.
31
Week 11: Combinatorics
Lecture 21, 11/6 (Section 6.3)
Permutations
Definition 28. An r-permutation of a set S is a sequence of r distinct elements of S.
Example. The 1-permutations of {a, b, c} are (a), (b), and (c). The 2-permutations are (a, b), (b, a), (a, c),
(c, a), (b, c), (c, b). The 3-permutations are (a, b, c), (a, c, b), (b, a, c), (b, c, a), (c, a, b), (c, b, a). There is
exactly one 0-permutation of {a, b, c}, namely the empty sequence (), and there are no 4-permutations.
Remark. Note that we write permutations in parentheses since they are sequences, not sets. In particular,
the order in which the elements of a sequence are listed is important, whereas the order in which the elements
of a set are written is irrelevant.
How many r-permutations of a set S of n elements are there? Equivalently, we want to count the number
of ways to do the procedure
! Procedure: choose a sequence of r elements of S.
(How many ways?)
To count the ways, we break up the procedure into r tasks:
• T 1: choose the first element of the sequence.
(n ways)
• T 2: choose the second element of the sequence.
(n − 1 ways)
..
.
• T r: choose the rth element of the sequence.
(n − r + 1 ways)
Thus by the product rule, we get
Theorem 32. Let n, r ∈ Z≥0 with r ≤ n. Then the number of r-permutations of a set with n elements is
P (n, r) = n(n − 1)(n − 2) · · · (n − r + 1).
A useful way to express this product is using factorial notation.
Definition 29. Let n ∈ Z>0 . Then define n factorial, written n!, to be the product n! := n(n−1)(n−2) · · · 1.
It is also convenient to define 0! := 1.
Example. 0! = 1, 1! = 1, 2! = 2, 3! = 6, 4! = 24, 5! = 120, 6! = 720, 7! = 5040, 10! = 3628800.
With this notation we get:
Corollary 2. Let n, r ∈ Z≥0 with r ≤ n. Then P (n, r) =
n!
(n−r)! .
Remark. Note that P (n, n) = n!. That is, the number of ways to order all n elements of a set is n!.
32
Combinations
Suppose now that we don’t care about the order in which choices are made.
Example. What are the possible 3-person teams in a group of 5 people? Equivalently, what are the 3element subsets of a set with 5 elements, say {a, b, c, d, e}? The 10 possibilities are
{a, b, c}, {a, b, d}, {a, b, e}, {a, c, d}, {a, c, e}, {a, d, e}, {b, c, d}, {b, c, e}, {b, d, e}, {c, d, e}.
Definition 30. An r-combination of a set S is an r-element subset of S.
How many r-combinations of a set S of n elements are there? We can deduce this from our study
of permutations. The only difference between an r-permutation and an r-combination is that in an rpermutation, the chosen elements are given an order. This observation inspires the following analysis:
! Procedure: choose an r-permutation of S.
(P (n, r) ways)
Now we cleverly break up the procedure into 2 tasks:
• T 1: choose an r-combination of S.
(How many ways?)
• T 2: choose an order for the r-combination, namely an r-permutation of the r-combination. (P (r, r)
ways)
Thus, by the product rule, the number C(n, r) (which we read as “n choose r”) of r-combinations satisfies
P (n, r) = C(n, r) · P (r, r).
Solving for C(n, r), we get
C(n, r) =
P (n, r)
n!/(n − r)!
n!
=
=
.
P (r, r)
r!
(n − r)! r!
Thus we have proved:
Theorem 33. Let n, r ∈ Z≥0 and r ≤ n. Then the number of r-combinations of a set with n elements is
C(n, r) =
n!
.
(n − r)! r!
Example. Returning to the previous example, the number of 3-person teams in a group of 5 people is
C(5, 3) =
5!
= 10,
(5 − 3)! 3!
which agrees with the list we compiled.
Example. How many distinct 5-card hands are possible in a deck of 52 cards? Simply compute:
C(52, 5) =
52!
52 · 51 · 50 · 49 · 48
=
= 52 · 51 · 10 · 49 · 2 = 2598960.
47! 5!
5·4·3·2·1
Example. How many 5-card hands are a flush (have all 5 cards of the same suit)? Think of choosing a
flush! as
" a procedure consisting of two tasks: first choose a suit, then choose 5 cards from that suit. There
are 41 ways to choose a suit, and C(13, 5) ways to choose 5 cards from that suit, so by the product rule the
number of flush hands is
( ) ( )
4
13
13!
13 · 12 · 11 · 10 · 9
·
=4·
=4·
= 13 · 12 · 11 · 3 = 5148.
1
5
8! 5!
5·4·3·2·1
An easy corollary of the theorem is
Corollary 3. C(n, r) = C(n − r, r).
This is intuitive because choosing a subset of r elements of a set n is equivalent to choosing the n − r
elements to leave out of the subset.
33
Lecture 22, 11/8 (Section 6.4)
Binomial Theorem
The binomial theorem is a formula for expanding powers of the form (x + y)n . As we will see, the formula
is intimately related to combinations.
Definition 31. A binomial is the sum of two terms, for instance x + y.
We want to study powers of the binomial x + y. The first few of these are
(x + y)1 = x + y,
(x + y)2 = x2 + 2xy + y 2 ,
(x + y)4 = x4 + 4x3 y + 6x2 y 2 + 4xy 3 + y 4 ,
(x + y)3 = x3 + 3x2 y + 3xy 2 + y 3 ,
(x + y)5 = x5 + 5x4 y + 10x3 y 2 + 10x2 y 3 + 5xy 4 + y 5 .
Let’s try to find a general formula for (x + y)n . Expand the power (x + y)n as a product of n factors
(x + y)(x + y) · · · (x + y).
If we multiply this out without grouping like terms, then every term arises from a choice of either x or y in
each factor of x + y. For example, for (x + y)(x + y), choosing x in both factors yields x2 , choosing x in the
first and y in the second yields xy, choosing y in the first and x in the second yields yx (which is the same as
xy), and choosing y in both yields y 2 . Note that we got xy twice, because there were two ways of choosing
one x and one y.
Let’s return to the product of n factors of (x + y). The possible terms are xn , xn−1 y, xn−2 y 2 , . . . , y n . We
want to count how many times each one occurs. Pick a term, say xn−j y j , and focus on the power of y of
that term. In order to get exactly the jth power of y, you have to choose y in exactly j of the n factors (all
the rest will be x), and there are C(n, j) ways to do this. For instance, when j = 0, the term is xn , and
there is only C(n, 0) = 1 way to choose y in 0 of the factors. Likewise, when j = 1, there are C(n, 1) = n
ways to choose y in just one factor.
Thus for each 0 ≤ j ≤ n, the! coefficient
of xn−j y j is C(n, j). These C(n, j) are so important that we
"
n
use a special notation for them: j . We call them binomial coefficients because in this notation, we can
write our result as:
Theorem 34 (Binomial theorem). Let x and y be variables, and n ∈ Z>0 . Then
(x + y)n =
n ( )
'
n
j=0
j
xn−j y j =
( )
( )
( )
( )
n n
n n−1
n n−2 2
n n
x +
x
y+
x
y + ··· +
y .
0
1
2
n
The binomial theorem is a fantastic way to compute powers of binomials. Check that the binomial theorem
gives the same results as the powers of x + y above! We can also compute powers of other binomials by
substituting whatever we like for x and y:
Example. Compute (x + 1)4 . We just replace y by 1 in the binomial theorem, to get
( )
( )
( )
( )
( )
4 4 0
4 3 1
4 2 2
4 1 3
4 0 4
(x + 1)4 =
x 1 +
x 1 +
x 1 +
x 1 +
x 1
0
1
2
3
4
= x4 + 4x3 + 6x2 + 4x + 1.
Example. Compute (2x − 3)4 . For this, we replace x by 2x and y by −3 in the binomial theorem. This
yields
( )
( )
( )
( )
( )
4
4
4
4
4
(2x − 3)4 =
(2x)4 (−3)0 +
(2x)3 (−3)1 +
(2x)2 (−3)2 +
(2x)1 (−3)3 +
(2x)0 (−3)4
0
1
2
3
4
= 16x4 − 96x3 + 216x2 − 216x + 81.
Setting x = y = 1 in the binomial theorem, we get an identity relating 2n to a sum of binomial coefficients:
34
Corollary 4. Let n ∈ Z>0 . Then 2n =
&n
j=0
! n"
j
.
Example. How many subsets does a set S = {a1 , . . . , an!} "with n elements have? The total number of
n
subsets is! the
" number of subsets with 0 elements, namely 0 , plus the number of subsets with 1 element,
n
which is 1 , plus the number of subsets with 2 elements, and so on. By Corollary 4, adding up all these
binomial coefficients gives 2n .
The number of subsets of S can also be computed using just the product rule. Think of choosing a subset
as a procedure, consisting of tasks T1 , . . . , Tn , where the task Ti is choosing whether or not to include ai in
the subset. There are two ways to do each Ti (either include ai or don’t), so the total number of ways to do
the procedure is 2 · 2 · · · · · 2 = 2n .
We can obtain another identity by setting x = 1 and y = −1 in the binomial theorem:
Corollary 5. Let n ∈ Z>0 . Then
0=
n
'
(−1)j
j=0
( )
n
.
j
! " ! n "
This is not surprising when n is odd because the symmetry nj = n−j
and the alternating signs will cause
all the terms to cancel in pairs. But it is an interesting identity when n is even!
Pascal’s Triangle
There is a beautiful way to generate the binomial coefficients, called Pascal’s triangle. The first row is
an infinite row of 0s with a single 1 in the middle. The second row is obtained as follows: for every pair of
adjacent entries of the first row, add the two numbers, and write the sum below the midpoint of the two
numbers, in the second row. The third row is obtained by taking sums of pairs of entries in the second row,
and so on. Here are the first 9 rows of the triangle, with the 0s omitted:
1
1
1
1
3
1
1
1
1
4
5
1
6
7
6
15
28
1
4
1
10
20
35
56
1
3
10
21
8
1
2
5
15
35
70
1
6
1
21
56
7
28
1
8
1
The amazing thing is that the numbers in Pascal’s triangle are exactly the binomial coefficients! Namely,
we can also write Pascal’s triangle as:
!0"
0
!1"
! 1"
0
1
! 2"
! 2"
! 2"
0
1
2
! 3"
! 3"
! 3"
! 3"
0
1
2
3
!4"
! 4"
! 4"
! 4"
! 4"
0
1
2
3
4
!5"
! 5"
! 5"
! 5"
! 5"
! 5"
0
1
2
3
4
5
!6"
! 6"
! 6"
! 6"
! 6"
! 6"
! 6"
0
1
2
3
4
5
6
!7"
! 7"
! 7"
! 7"
! 7"
! 7"
! 7"
! 7"
0
1
2
3
4
5
6
7
!8"
! 8"
! 8"
! 8"
! 8"
! 8"
! 8"
! 8"
! 8"
0
1
2
3
! n"
4
! n"
5
6
7
8
The reason this works is because the 0 = n = 1 for all n, so the diagonal edges of the triangle are all 1s.
Moreover, the following identity ensures that the triangle of binomial coefficients satisfies the same addition
properties as Pascal’s triangle:
35
Theorem 35 (Pascal’s identity). Let n, k ∈ Z≥0 with k ≤ n. Then
( ) (
) (
)
n
n
n+1
+
=
.
k
k+1
k+1
Computational proof. We simply find a common denominator to compute
)
( ) (
n!
n
n
n!
"
=
+
+!
k
k+1
(n − k)! k!
n − (k + 1) ! (k + 1)!
(k + 1) + (n − k)
(n − k)! (k + 1)!
n+1
= n!
(n − k)! (k + 1)!
(n + 1)!
"
=!
(n + 1) − (k + 1) ! (k + 1)!
(
)
n+1
=
.
k+1
= n!
"
!
Combinatorial proof. We can also prove the identity by finding a different way to count the n+1
k+1 subsets
of k + 1 elements of a set S = {a1 , a2 , . . . , an+1 } of n + 1 elements. First, we count the subsets with k + 1
elements that contain a1 . Since
! " a1 is in the subset, the subset must contain k of the remaining n elements
{a2 , . . . , an+1 }, so there are nk such subsets. Second, we count the subsets that do not contain
! n a"1 . Such
a subset must contain k + 1 of the remaining n elements, thus the number of such subsets is k+1 . Since
every subset! of" k +
either contains a1 or doesn’t contain a1 , the total number of subsets of k + 1
! 1n elements
"
elements is nk + k+1
, which proves the identity.
Remark. If you don’t feel like messing with factorials, Pascal’s triangle can be a painless way to find the
binomial coefficients!
We can also use Pascal’s identity to give another proof of the binomial theorem, using induction:
Theorem (Binomial theorem). Let x and y be variables, and n ∈ Z>0 . Then
( )
( )
( )
( )
n ( )
'
n n−j j
n n
n n−1
n n−2 2
n n
n
(x + y) =
x
y =
x +
x
y+
x
y + ··· +
y .
j
0
1
2
n
j=0
1
Inductive! proof
"
!of"the binomial theorem. Induction on n. For the base case n = 1, note that (x + y) =
x + y = 10 x + 11 y. Now suppose the binomial theorem holds for some k ∈ Z>0 , namely that
( )
( )
( )
( )
k k
k k−1
k k−2 2
k k
k
(x + y) =
x +
x
y+
x
y + ··· +
y .
0
1
2
k
Multiplying both sides by (x + y), we get
( )
( )
( )
( )
k k+1
k k
k k−1 2
k
(x + y)k+1 =
x
+
x y+
x
y + ··· +
xy k
0
1
2
k
( )
( )
(
)
( )
k k
k k−1 2
k
k k+1
+
x y+
x
y + ··· +
xy k +
y
.
0
1
k−1
k
! "
! "
! "
! "
We can replace k0 by k+1
and kk by k+1
0
k+1 since these binomial coefficients are all equal to 1. Moreover,
we can group each pair of like terms and apply Pascal’s identity to the sum of their coefficients, to obtain
(
)
(
)
(
)
(
)
(
)
k + 1 k+1
k+1 k
k + 1 k−1 2
k+1
k + 1 k+1
(x + y)k+1 =
x
+
x y+
x
y + ··· +
xy k +
y
.
0
1
2
k
k+1
This is the statement of the binomial theorem for n = k + 1, so we are done by induction.
36
Week 12: More Combinatorics and
Introduction to Graph Theory
Lecture 23, 11/13
Application of Combinations: 5-Card Poker Hands
What is the probability (chance, likelihood) of getting a pair (two cards of the same rank), a triple, a
quadruple, 2-pair, a full house (a pair and a triple), a flush (five cards of the same suit), a straight (five
consecutive ranks), or a straight flush in a 5-card poker hand from a standard 52-card deck? We assume the
5-card hand is completely random. Then we can calculate the probability P (H) of getting a particular kind
of hand H by counting the number N (H) of such hands and then dividing by the total number N of 5-card
hands. Namely,
N (H)
P (H) =
.
N
Note that the probability of getting a particular kind of hand will always be a real number between 0 and 1
since 0 ≤ N (H) ≤ N .
Since we are considering 5-card hands coming from a 52-card deck, the total number of hands is
( )
52
N=
= 2598960.
5
Using combinatorics, we will compute the values in the following table:
Type of Hand H
Number of Hands N (H)
Pair
1098240
Triple
54912
Quadruple
624
2-pair
Full house
Straight flush
Flush
Combinatorial Expression for N (H)
!13"!4"!12"!4"3
1296420
1
0.42257
1
3
2
1
0.02113
1
4
1
1
2
2
1
1
!13"!4"!12"!4"
1
3
1
!10"!4"5
1
!4"!13"
5108
Total
3
!13"!4"2 !11"!4"
40
10200
2
!13"!4"!12"!4"
3744
Straight
1
!13"!4"!12"!4"2
123552
1
5
!10"!4"5
1
1
2
1
−
!10"!4"
−
Now we’ll show how some of the values N (H) can be computed.
37
Probability P (H)
1
1
!10"!4"
1
1
0.00024
0.04754
0.00144
0.00002
0.00197
0.00392
0.49882
Pair
! Procedure: Choose a hand with a pair (exactly two cards of the same rank).
Choose the pair.
• T 1: Choose a rank for the pair:
!13"
ways.
! 4"
• T 2: Choose two cards of that rank: 2 ways.
1
Choose the remaining three cards.
• T 3: Choose three other ranks:
!12"
3
ways.
!4"3
• T 4: Choose one card for each of those three ranks:
1
ways.
! "!4"!12"!4"3
Thus by the product rule, N (pair) = 13
1
2
3
1 .
Note that by choosing the remaining three cards to be of different ranks, we ensure that the hand does
not have a triple or two-pair. Also, a flush is impossible since the two cards of the same rank we chose for
the pair must have different
for
the
"!10
" three remaining
! " suits. One important detail is that we chose the ranks
!12"!11
cards all at once (using 12
),
instead
of
choosing
those
ranks
one-by-one
(using
1
1 ). This is crucial,
3
1
because choosing one-by-one imposes an order on our choices that results in overcounting.
2-pair
! Procedure: Choose a hand with two pairs.
First, choose the two pairs:
• T 1: Choose two ranks for the two pairs:
!13"
2
• T 2: Choose two cards of each of those ranks:
Then choose the last card:
• T 3: Choose one other rank:
ways.
!4"2
2
ways.
!11"
ways.
!"
• T 4: Choose one card of that rank: 41 ways.
1
! "!4"2 !11"!4"
So by the product rule, N (2-pair) = 13
1
1 .
2
2
Once again, it is crucial that we choose the ranks of the pairs at once, otherwise we would be imposing
an unwanted order on the two pairs that would result in overcounting.
Straight flush
! Procedure: Choose a hand with a straight flush.
The trick is that the ranks occurring in the straight are determined by the highest rank, which can be 5, 6,
7, 8, 9, 10, J, Q, K, A. (We allow the straight A 2 3 4 5.)
! "
• T 1: Choose the highest card of the straight: 10
1 ways.
!4"
• T 2: Choose the suit: 1 ways.
! "!4"
So N (straight flush) = 10
1
1 .
38
Flush
! Procedure: Choose a hand with a flush.
First, we count how many hands have a flush.
!"
• T 1: Choose the suit for the flush: 41 ways.
! "
• T 2: Choose 5 cards of that suit: 13
5 ways.
!10"!4"
We also have to exclude the number 1 1 of straight flushes, since those count as a straight flush rather
than just a flush. Thus
( )( ) ( )( )
4 13
10 4
N (flush) =
−
.
1
5
1
1
The rest
Compute combinatorial expressions for the remaining special hands yourself! Write down tasks and use the
product rule! You can check your answers in the table above.
Getting nothing
How many hands are not one of the above special hands? We can simply take the total number of hands
and subtract the number of special hands:
N (nothing) = 2598960 − 1296420 = 1302540.
Another way to compute N (nothing) is as follows. The main idea is that to get nothing, the ranks of the
five cards have to be different. The only special hands with all ranks different are the flushes, straights, and
straight flushes, so we just have to subtract the numbers of those from the number of hands with five cards
of different ranks. Thus we get
( )( )5
13 4
N (nothing) =
− N (flush) − N (straight) − N (straight flush) = 1302540,
5
1
as before.
Lecture 24, 11/15
Introduction to Graph Theory
Let’s start a brand new topic, called graph theory! The kinds of graphs studied in graph theory are
completely different from graphs of functions; instead, a graph is a collection of points in the plane, called
vertices, with some lines drawn between them, called edges. Here are two examples:
•
•
•
•
•
•
•
•
•
•
•
•
•
In a graph:
39
We care about
We don’t care about
The number of vertices.
How the vertices are placed in the plane.
The number of edges.
How the edges are drawn.
Which vertices are connected by which edges.
Edge crossings at points that are not vertices.
Thus we consider the following three graphs to be the same:
•
Same:
•
•
•
•
•
•
•
•
Graphs may have multiple edges between two vertices, as well as loops, which are edges that are connected
to only one vertex. For example:
•
•
•
•
•
•
We want to study the properties of graphs rigorously and prove things about them. For this we need to
formulate a more careful definition of what a graph is. The goal of our new definition is to capture the
information we care about, while ignoring the data we don’t care about.
A More Rigorous Definition of Graph
A common theme in pure mathematics is the following: in order to study a geometric object, it is useful
to define its structure abstractly. For instance, above we couldn’t precisely define what it should mean for
graphs to be the “same”, but we will be able to do this with our new definition.
Definition 32. A graph G = (V, E, φ) consists of a set V , whose elements are called vertices, a set E,
φ
! Σ , where Σ is the set of all one or two element
whose elements are called edges, and a function E
subsets of V , which assigns one or two vertices, called endpoints, to each edge. We say an edge is incident
to its endpoints. If φ(e) = {v, w}, we say e connects the vertices v and w. If φ(e) is a single vertex, then
we call e a loop. The degree deg(v) of a vertex v is the number of edges incident to it, with loops counted
twice.
Note that this definition captures the data in the “We care about” column of the above table, while
throwing out what “We don’t care about”.
Example. Let G1 be the graph with V1 = {u, v, w}, E1 = {e, f }, and the map E
e 1→ {u, v}, f 1→ {v, w}. We have deg(u) = 1, deg(v) = 2, and deg(w) = 1.
Example. Let G2 be the graph with V2 = {x}, E = {c, d}, and the map E
d 1→ {x}. For this graph, deg(x) = 4, since loops are counted twice.
φ2
φ1
! Σ defined by
! Σ2 defined by c 1→ {x},
This definition of graph is terribly abstract, but there is an easy procedure to recover the geometric
picture:
Definition 33. A drawing of a graph is obtained by:
• Drawing each vertex as a point in the plane.
• Drawing each edge as a line connecting its endpoints.
40
Example. One way to draw the graph G1 from the example above is
•
•
•
One way to draw G2 is
•
There are many ways to draw a graph, but fortunately:
Remark. Any two drawings of a graph are the “same”, in terms of the criteria in the table above. In other
words, any two drawings of a given graph differ only in where the vertices are drawn in the plane and how
the edges are drawn.
Forging a Correspondence Between Graphs and Drawings
Intuitively, we want to think about graphs in terms of their drawings, without explicitly thinking about the
sets V and E and the function φ. To justify this, we need to think hard about the connection between the
abstract definition of a graph and the data inherent in a drawing of a graph. Because any two drawings of
a graph are the “same”, we get a function
{graphs}
draw the graph
! {drawings up to “sameness”}.
(Recall that a function maps each element of the domain to exactly one element of the codomain. Thus to
get a function, we need a “unique” way of drawing the graph, which we have because any two drawings of
a graph are the “same”.)
Our goal is to get a function going the other direction, ideally an inverse of the “draw the graph” function.
How can we get a graph from a drawing?
Remark. Given a drawing of a graph, we can define sets V and E and a function φ. For instance, we can
choose a labeling of vertices and edges
v1
•
e1
v2
•
e2
v3
•
and then write V = {v1 , v2 , v3 } and E = {e1 , e2 } and define E
{v2 , v3 }.
φ
! Σ by φ(e1 ) = {v1 , v2 } and φ(e2 ) =
So we have a way of going from a drawing to a graph. Unfortunately, this will not give us the function
we want, because there are many, many ways to choose labels for a given drawing. The problem isn’t in our
way of labeling a drawing, but rather in our definition of graph, which has too much information. In order
to define a graph, you have to choose a set of vertices and a set of edges, which forces you to choose names
for your vertices and edges.
Should the exact labeling be so important? Mathematically, no! When studying graphs, we care mostly
about the relative arrangement of vertices and edges, and much less about the exact labels chosen. Unfortunately, the natural definition of “sameness” for graphs is:
Definition 34. Two graphs G1 = (V1 , E1 , φ1 ) and G2 = (V2 , E2 , φ2 ) are equal if V1 = V2 , E1 = E2 , and
φ1 = φ2 .
Equality of graphs is too strict, because if the names of the elements in V1 and V2 are different, then
V1 #= V2 . So we need a different notion of when graphs are the “same”.
Graph Isomorphism
Here is the notion of “sameness” for graphs that we want. It is constructed exactly so that different labelings
of the same drawing can be considered the “same”.
41
Definition 35. An isomorphism of two graphs G1 = (V1 , E1 , φ1 ) and G2 = (V2 , E2 , φ2 ) is a pair of
ν !
# !
bijections V1
V2 and E1
E2 such for that all e ∈ E1 , φ2 ($(e1 )) = {ν(v1 ), ν(v2 )}, where φ1 (e) =
{v1 , v2 }. What the last condition means is that the endpoints of edges that correspond under the map $
correspond under the map ν. In other words, the bijections respect how vertices are connected. Two graphs
are isomorphic if there is an isomorphism between them.
Example. Let’s show that the graphs corresponding to any two labelings
w1
v1
•
e1
•
v2
f1
e2
•
e3
•
•
v3
f2
f3
w2
•
w3
are isomorphic. Let φ1 denote the map from the edges of the left graph to their endpoints, and let φ2 be
the corresponding map for the right graph. The most obvious isomorphism is given by
ν(v1 ) = w1 , ν(v2 ) = w2 , ν(v3 ) = w3
$(e1 ) = f1 , $(e2 ) = f2 , $(e3 ) = f3 .
Since φ1 (e1 ) = {v1 , v2 } and φ2 (f1 ) = {w1 , w2 }, we see that φ2 ($(e1 )) = {w1 , w2 } = {ν(v1 ), ν(v2 )}, so the
isomorphism condition holds for e1 . Checking the condition for e2 and e3 is similar.
This is only one possible isomorphism for these two graphs. In fact, there are six such isomorphisms.
Can you see why? (Hint: the isomorphism is determined by the map ν on the vertices.)
As the example shows, it is very tedious to explicitly write down isomorphisms and check all the conditions. Fortunately, the following theorem (which is obvious if you understand the definitions!) guarantees
that we need not worry about which labeling we choose for a given drawing. Moreover, isomorphic graphs
have the same drawings.
Theorem 36. Any two graphs obtained by labeling a given drawing are isomorphic. Any two drawings of
two isomorphic graphs are the “same”.
Thus we finally get our map in the opposite direction:
{graphs up to isomorphism} "
draw the graph
!
label the drawing
{drawings up to “sameness”}.
(We get a function “label the drawing” because any drawing gives us a unique graph when we consider
isomorphic graphs to be the same.)
In fact,
Theorem 37. The maps “draw the graph” and “label the drawing” are inverses, and thus give a bijection
between the set of graphs up to isomorphism and the set of drawings up to “sameness”.
Remark. From now on, we will always consider graphs to be the “same” if they are isomorphic. Thus
the previous theorem allows us to refer to drawings of graphs as graphs, since each drawing of a graph
corresponds naturally to a unique graph. Conversely, we can always think about a graph in terms of a
drawing. The bijection also allows us to use the rigorous language of graph isomorphism, which is defined
very precisely above, instead of referring to our fuzzy notion of “sameness” of drawings.
We’ll end the section with few more examples of isomorphic graphs.
Example. The following two graphs are isomorphic:
•
•
•
•
•
•
•
•
42
Think about which bijections of the sets of vertices could give an isomorphism. Note that the bijection of
the vertices in a graph isomorphism determines the bijection of the edges (to see where to map an edge, look
at where its endpoints are being mapped!).
Another pair of isomorphic graphs is
•
•
•
•
•
•
•
•
•
•
Which bijections of the sets of vertices can give the isomorphism?
Remark. As in the example, we like to think of graphs visually in terms of their drawings. But the abstract
definition is still crucially important because it is the foundation for rigorous proofs. We will prove plenty
of things about graphs in the coming weeks, and you will see how important it is to have set descriptions of
the vertices and edges of graphs.
43
Download