Books
Theme
Text size
Width

[ and ] go to the previous and next page.

Proof and problem-solving techniques introduced in the text, with every proof, solution, and exercise that uses them.

1Vector spaces

Proving from axioms

Technique 1.1.7

When objects are defined by axioms, as fields are here and vector spaces will be in Section 1.2, the only facts available are the axioms and what has already been proved from them. A fact that is obvious for real numbers is not available until it is proved, because a general field need not look like ℝ.

The move is to write the argument as a chain of equalities that changes one thing at a time, and to justify each link by the axiom or earlier result it uses. Watch for steps that move a term past another (commutativity) or regroup (associativity): in ℝ we make these without noticing.

Reach for it whenever the hypotheses are an axiom system and the claim is an identity or an elementary property. If you are stuck, ask which axioms can connect the objects in the claim. For example, distributivity is the only axiom that involves both + and ⋅, so any fact relating 0 (an additive object) to multiplication must go through it. The canonical example is 0𝑎=0 (Proposition 1.1.15).

First example. Proposition 1.1.15

Uniqueness via two candidates

Technique 1.1.8

To show that at most one object has a property 𝑃, suppose 𝑥 and 𝑥′ both have 𝑃 and prove 𝑥=𝑥′. Usually one evaluates a single well-chosen expression in two ways, once using that 𝑥 has 𝑃 and once using that 𝑥′ has 𝑃.

Reach for it whenever a claim says “the”, “unique”, or “exactly one”. Existence and uniqueness are separate claims: prove existence by producing an object, and uniqueness by this technique. The canonical example is the uniqueness of 0 in Theorem 1.1.9, where the expression is 0+0′.

First example. Theorem 1.1.9

Try small cases and small fields

Technique 1.2.38

Before proving a general claim, test it on the smallest examples available: the zero space, 𝐹1 and 𝐹2, and small fields, especially 𝔽2, where 1+1=0. Small cases are where counterexamples live. When the claim survives them, the computation often shows why it is true and which hypothesis a proof must use.

Reach for it when a claim feels obvious from experience with ℝ2, and whenever a hypothesis such as 1+1≠0 or 𝑉≠{𝟎} might be needed. The canonical example is Example 1.2.39: 𝐯=−𝐯 forces 𝐯=𝟎 over ℝ, but not over 𝔽2.

First example. Example 1.2.39

Fix an arbitrary element and chase it

Technique 1.3.13

To prove 𝐴⊆𝐵, let 𝑥 be an arbitrary element of 𝐴. Unpack the definition of 𝐴 until 𝑥 is described concretely, manipulate that description until it matches the definition of 𝐵, and conclude that 𝑥∈𝐵. Since 𝑥 was arbitrary, 𝐴⊆𝐵.

Reach for it for every containment between sets defined by properties. Once both definitions are written out, the proof has a fixed shape: the first line is “let 𝑥∈𝐴”, the next uses the definition of 𝐴, and the last uses the definition of 𝐵. For spans, unpacking produces scalars (“let 𝐰∈span(ℒ︀), say 𝐰=𝑎1𝐯1+⋯+𝑎𝑘𝐯𝑘”), and repacking means exhibiting scalars. The canonical example is each half of Example 1.3.15.

First example. Example 1.3.15

Double containment

Technique 1.3.14

To prove that two sets 𝐴 and 𝐵 are equal, prove 𝐴⊆𝐵 and 𝐵⊆𝐴 separately, each by Technique 1.3.13.

Reach for it whenever a claim says that two sets are equal. The two containments usually need different ideas, and one is often much easier than the other. For a span, “span(ℒ︀)⊆𝐵” is a computation with an arbitrary linear combination, while “𝐵⊆span(ℒ︀)” requires constructing coefficients for each element of 𝐵. A common mistake is to prove one containment carefully and forget the other (Exercise 1.3.30). The canonical example is Example 1.3.15.

First example. Example 1.3.15

Finding counterexamples and minimal examples

Technique 1.4.18

To disprove a claim about all objects of some kind, a single object for which it fails is enough. Look for one by shrinking everything: the smallest space, the fewest vectors, the simplest field (Technique 1.2.38). Then read the counterexample. Ask which features made it work; often they point to the exact hypothesis under which the claim does hold, and the counterexample, run on general objects, turns into a proof.

Reach for it whenever a claim seems plausible but no proof suggests itself, and in every “prove or disprove”. The canonical example is the claim that the union of two subspaces is a subspace. It fails for the two axes of ℝ2, since (1,0)+(0,1) lies on neither (Non-example 1.4.13). The failure used only one vector of the first subspace outside the second and one vector of the second outside the first. So nested subspaces escape the counterexample, and Proposition 1.4.20 shows that only they do.

First example. Non-example 1.4.13

Contrapositive

Technique 1.5.4

An implication “𝑃 implies 𝑄” is logically equivalent to its contrapositive, “not 𝑄 implies not 𝑃”. Prove the contrapositive when “not 𝑄” gives you more to work with than 𝑃 does. The typical case is a conclusion 𝑄 asserting that something holds for every object, or that some object is unique. Then “not 𝑄” hands you a specific object, a counterexample or a second candidate, and you can compute with it.

Reach for it when the hypothesis is hard to use directly and the conclusion is a “for all” or a uniqueness statement. The canonical example is (II) ⇒ (I) in Theorem 1.5.5. Statement (I) asserts uniqueness for every vector of the span. Its negation provides one vector with two different representations, and subtracting them shows that (II) fails.

First example. Theorem 1.5.5

Extremal choice and minimal counterexamples

Technique 1.5.9

When a proof needs an object with special properties, choose one that is extreme in some respect: the largest index with a nonzero coefficient, a polynomial of largest degree, a dependence relation with the fewest nonzero coefficients, a smallest counterexample. Extremality is a hypothesis you get for free. “The largest 𝑗 with 𝑎𝑗≠0” also says that every later coefficient is 0. “A relation with the fewest nonzero coefficients” also says that every relation with fewer nonzero coefficients is trivial.

It combines with contradiction. To show that no object has some property, suppose that some do, take an extreme one, and use it to build another object with the property that is more extreme still. This contradicts the choice.

Reach for it when a relation or a sum has many terms and the argument would be easy if most of them vanished. The canonical example is the linear dependence lemma (Lemma 1.5.10), which solves for the largest index with a nonzero coefficient. The same choice, of a largest degree, proves Proposition 1.5.24, and the contradiction form appears in Exercise 1.5.44.

First example. Lemma 1.5.10

Induction on the length of a list

Technique 1.6.9

Many statements are about all lists in 𝑉, or about linear combinations of every length. To prove one, induct on the length 𝑘. The base case is usually the empty list, where the claim tends to be immediate: span(())={𝟎}, the empty list is independent, and the empty sum is 𝟎. In the inductive step, take a list of length 𝑘+1, produce from it a list of length 𝑘 (by deleting a well-chosen entry, or by splitting off the last term of a sum), apply the inductive hypothesis to the shorter list, and carry the conclusion back to the original list.

Two things need care. First, the inductive hypothesis must cover every list of length 𝑘, since the shorter list is produced by the argument and is not known in advance. Second, if the statement has hypotheses (for instance, that the list spans 𝑉), the shorter list must satisfy them too. Deleting an arbitrary entry of a spanning list can destroy spanning, which is why the deleted entry has to be chosen (Exercise 1.6.30).

Reach for it when removing one entry or one term reduces a claim to the same claim for a shorter list. The canonical example is Theorem 1.6.10, which deletes an entry supplied by Lemma 1.5.10. The arithmetic of linear combinations (Lemma 1.3.9) was proved by splitting off the last term, and so is Proposition 1.6.19(c) below. Later, the exchange lemma (Lemma 4.1.2) and Gram–Schmidt (Algorithm 6.4.14) are built the same way.

First example. Theorem 1.6.10

Proving a disjunction

Technique 1.7.4

To prove “𝑃 or 𝑄”, assume that 𝑃 fails and prove 𝑄. The failure of 𝑃 is a hypothesis you can use, and it usually hands you an object: an inverse 𝑎−1 when 𝑎≠0, or a vector of 𝑈 outside 𝑊 when 𝑈⊈𝑊. If one alternative is easier to negate usefully, negate that one. The other route is the contrapositive: assume that both alternatives fail and derive the negation of the hypothesis (or a contradiction). It hands you two objects at once, which helps when the argument needs both.

Reach for it whenever a conclusion reads “… or …”. The canonical example is Proposition 1.4.20, which has one proof of each kind.

First example. Proposition 1.4.20

2Linear maps and matrices

Assemble linear maps from linear pieces

Technique 2.1.26

To show that a map is linear, write it as a sum, scalar multiple, or composite of maps already known to be linear. By Proposition 2.1.23 and Proposition 2.1.17 the result is linear, with no computation.

Reach for it when a map is given by a formula built out of evaluations, derivatives, integrals, coordinates, projections, or other maps from the examples above. It also handles whole families at once. For instance, for 𝑇∈L(𝑉) and 𝑎0,…,𝑎𝑛∈𝐹, every 𝑎0id𝑉+𝑎1𝑇+⋯+𝑎𝑛𝑇𝑛 is linear. Conversely, a formula that involves a product of two inputs, a constant term, or a nonlinear function of a coordinate is a candidate for a counterexample; test 𝑇(𝟎) and 𝑇(2𝐯) first. The canonical example is the reflection 𝑆ℓ=2Prℓ−idℝ2 (Example 2.1.27).

First example. Example 2.1.27

Construct a map by choosing it on a basis

Technique 2.2.4

To produce a linear map with some property, choose a basis of the domain that is adapted to the property, decide where each basis vector should go, and let Theorem 2.2.1 extend the choice to a linear map. Linearity then costs nothing, and the property itself can usually be checked on the basis (Technique 2.2.7). If a formula is wanted, write a general vector in the chosen basis and apply (2.2.1).

Reach for it when the property is easy to state on special vectors (vectors to be fixed, sent to 𝟎, swapped, or scaled), or when all you need is that some linear map with a given behaviour exists, as when building a counterexample. The canonical example is the projection and reflection of Example 2.2.3. Another is that a subspace is the image of one linear map and the set of vectors sent to 𝟎 by another (Exercise 2.2.35).

First example. Example 2.2.3

Check it on a basis

Technique 2.2.7

To prove that two linear maps 𝑆,𝑇:𝑉→𝑊 are equal, it is enough to check 𝑆(𝐯𝑖)=𝑇(𝐯𝑖) for the vectors of a basis of 𝑉, or of any spanning list (Corollary 2.2.6). Many statements can be put in this form. An identity such as 𝑃2=𝑃, 𝑆𝑇=𝑇𝑆, or 𝑇=𝑎id+𝑏𝑅 is an equation between linear maps, because sums, scalar multiples, and composites of linear maps are linear (Proposition 2.1.23, Proposition 2.1.17). A containment 𝑇(𝑉)⊆𝑈, for a subspace 𝑈 of 𝑊, holds as soon as 𝑇(𝐯𝑖)∈𝑈 for every vector of a spanning list, because 𝑇(𝑉) is the span of the 𝑇(𝐯𝑖) (Proposition 2.1.16).

Reach for it when the basis vectors are easy to compute with, typically for a basis on which the maps involved act simply, and when a computation at a general vector would be messy. Before using it, make sure that both sides really are linear in the vector. A condition such as “𝑇(𝐯) is a multiple of 𝐯” is not an equation between linear maps, and it can hold on a basis without holding everywhere (Exercise 2.2.25). The canonical example is Corollary 2.2.6 itself.

First example. Corollary 2.2.6

Translate between maps and matrices

Technique 2.3.27

A linear map between spaces with chosen bases and its matrix carry the same information, so a question about one can be translated into a question about the other, using the dictionary above.

In one direction, to compute with a linear map, replace vectors by their coordinate vectors and the map by its matrix. Evaluating 𝑇 becomes a matrix–vector product, and an equation 𝑇(𝐯)=𝐰 becomes the linear system [𝑇]𝒞︀ℬ︀𝐱=[𝐰]𝒞︀ in the unknown coordinates 𝐱 of 𝐯 (Section 3.1). In the other direction, to prove a statement about a matrix 𝐴, read it as a statement about the linear map 𝑇𝐴, prove it with the theory of linear maps, which needs no indices, and translate back with the uniqueness in Proposition 2.3.17.

Reach for the first direction when you need numbers, and for the second when a matrix identity would otherwise need a computation with indices. A rule of thumb: compute with matrices, prove with maps. Before translating, fix the bases and keep track of which basis each coordinate vector refers to; most errors come from mixing them up. The canonical example is Example 2.3.28. Later instances: matrix multiplication is defined by translating composition (Section 2.4), the rank of a matrix is the rank of its map (Section 4.2), and the determinant and the eigenvalues of an operator are read off from its matrix in any basis (Section 5.4, Section 7.3).

First example. Example 2.3.28

Compute entry by entry

Technique 2.4.15

To prove an identity between matrices, show that the (𝑖,𝑗) entries of the two sides agree for all 𝑖 and 𝑗. Write each entry of a product with Proposition 2.4.8(a), using a new summation index for every product, then rearrange: pull constant factors out of sums, exchange the order of two finite sums, ∑𝑘∑𝑙=∑𝑙∑𝑘, and collapse sums containing a Kronecker delta, ∑𝑘𝛿𝑖𝑘𝑥𝑘=𝑥𝑖.

Reach for it when the statement is about the entries themselves (transposes, traces, triangular or block shapes), or when there is no linear map in sight, for example for matrices whose entries are integers, polynomials, or other matrices. Two things go wrong in practice. Reusing a summation index in a nested sum silently identifies two different indices. And moving a factor past another needs commutativity of the entries, which holds for scalars but not for blocks (Section 2.4.8). The canonical example is the second proof of associativity below.

First example. Proposition 2.4.14

Cyclicity of trace

Technique 2.4.29

The trace is linear, and it does not see the order of two factors: tr(𝐴𝐵)=tr(𝐵𝐴), so tr(𝐴1𝐴2⋯𝐴𝑘) is unchanged by rotating the factors cyclically. Take the trace of both sides of a claimed identity. If the traces differ, the identity is false; and quantities such as 𝐴𝐵−𝐵𝐴, which are invisible to the trace, can be eliminated.

Reach for it when commutators 𝐴𝐵−𝐵𝐴 appear (they always have trace 0), when a product is conjugated as in 𝑆−1𝐴𝑆 (once inverses are available, tr(𝑆−1𝐴𝑆)=tr(𝐴𝑆𝑆−1)=tr𝐴, which makes the trace a similarity invariant, Section 4.5), and when an inner product of matrices is written as tr(𝐵𝖳𝐴) (Section 6.1). Only cyclic rotations are allowed: tr(𝐴𝐵𝐶) and tr(𝐵𝐴𝐶) differ in general. And the trace detects nothing about a matrix of trace 0; it is a single number, so it can rule things out but rarely proves them. The canonical example is Proposition 2.4.30.

First example. Proposition 2.4.30

Block decomposition

Technique 2.4.35

Split matrices into blocks that match the structure of the problem, and compute with the blocks as if they were entries (Theorem 2.4.34). Typical splittings: off a single first row and column, to set up an induction on the size; along a basis that is split into two parts, for example a basis of a subspace extended to a basis of the whole space; or around a block of zeros or a copy of 𝐼.

Reach for it when a matrix has large zero or identity blocks, when an argument should reduce from size 𝑛 to size 𝑛−1, or when a statement concerns a map that preserves a subspace. Two checks: the partitions must match, and products of blocks must keep their order. The canonical example is Proposition 2.4.36. Later it computes determinants of block triangular matrices (Section 5.4), compares 𝐴𝐵 with 𝐵𝐴 (Section 7.3), and organizes the generalized eigenspace decomposition and the Jordan form (Section 10.2, Section 10.3).

First example. Proposition 2.4.36

Guess the inverse, then check both products

Technique 2.5.16

To show that 𝑇 is invertible and to identify 𝑇−1, produce a candidate 𝑆 and verify 𝑆𝑇=id and 𝑇𝑆=id. Then 𝑇 is invertible and 𝑆=𝑇−1, by the uniqueness in Theorem 2.5.10. How the candidate was found plays no role in the proof.

Candidates come from undoing: to undo a rotation by 𝜃, rotate by −𝜃, and to undo a composite, undo its steps in reverse order. A polynomial identity also produces one: if 𝑇2+𝑇=id, then 𝑇(𝑇+id)=id=(𝑇+id)𝑇, and if 𝑁𝑘=0, then (id−𝑁)(id+𝑁+⋯+𝑁𝑘−1)=id−𝑁𝑘=id, which is the geometric series 1/(1−𝑥)=1+𝑥+𝑥2+⋯ cut off (Exercise 2.5.39). Heuristics of this kind may be as informal as you like, because the verification is what proves the result.

Check both products, unless you already know that 𝑇 has an inverse on the other side. One product shows only that 𝑆 is a one-sided inverse, and one-sided inverses need not be two-sided (Example 2.5.24). The canonical example is Proposition 2.5.17.

First example. Proposition 2.5.17

Test injectivity at 𝟎

Technique 2.6.12

To prove that a linear map 𝑇 is injective, take a vector 𝐯 with 𝑇(𝐯)=𝟎 and show that 𝐯=𝟎 (Theorem 2.6.11). This replaces a statement about all pairs of vectors by a statement about one equation, and 𝑇(𝐯)=𝟎 is usually the easiest equation to analyze. To prove that 𝑇 is not injective, exhibit a single nonzero vector of ker𝑇.

The same move is how injectivity gets used. A relation 𝑎1𝑇(𝐯1)+⋯+𝑎𝑘𝑇(𝐯𝑘)=𝟎 can be pulled back through 𝑇: by linearity it says 𝑇(𝑎1𝐯1+⋯+𝑎𝑘𝐯𝑘)=𝟎, and if 𝑇 is injective, then 𝑎1𝐯1+⋯+𝑎𝑘𝐯𝑘=𝟎.

Reach for it whenever injectivity of a linear map is to be proved or used. Check linearity first: for other functions the test proves nothing, as 𝑥↦𝑥2 shows. The canonical example is Example 2.6.13.

First example. Example 2.6.13

Proving TFAE

Technique 2.7.1

To prove that 𝑃1,…,𝑃𝑘 are equivalent, prove some implications 𝑃𝑖⇒𝑃𝑗 such that every statement can be reached from every other by following implications. Then any 𝑃𝑖 implies any 𝑃𝑗, by chaining. Two shapes cover most cases.

  • A cycle 𝑃1⇒𝑃2⇒⋯⇒𝑃𝑘⇒𝑃1 uses 𝑘 implications, the fewest possible. The order is ours to choose, and a good order makes every step short. Usually one goes from the most informative statement (one that hands us an object, such as an inverse) toward the least informative, and closes the loop with the one step that needs an idea.
  • A hub with spokes fixes one statement, say 𝑃1, and proves 𝑃𝑖⇔𝑃1 for every other 𝑖. It uses more implications than a cycle, but it is the natural shape when earlier results already relate each 𝑃𝑖 to 𝑃1. Each spoke is then a citation, and the citations are a complete proof, because equivalence is transitive.

Mixed shapes are fine. Draw the statements as points and the proved implications as arrows, and check that you can travel from any point to any other along arrows. Two mistakes are common. Equivalences inside two separate groups of statements say nothing about one group versus the other (Exercise 2.7.21). And each arrow must be proved without the theorem it belongs to, and without any result that depends on that theorem. Going around a cycle is not circular reasoning, since every arrow is proved on its own; quoting the theorem to prove one of its own arrows would be.

The payoff comes after the proof. To show that one of the statements holds, check whichever is easiest; to use one, use whichever is strongest. We have already seen cycles in Theorem 1.4.3 and Theorem 2.1.3. The canonical example is the First Fundamental Theorem (Theorem 2.7.2), whose proof is a hub with three spokes plus two implications about inverses.

First example. Theorem 2.7.2

3Linear systems and row reduction

Undetermined coefficients

Technique 3.1.9

To decide whether an object with prescribed properties exists, and to find all such objects, write the unknown object in terms of unknown scalars, the undetermined coefficients, and translate each requirement into an equation in those scalars. When the requirements are linear in the scalars, the result is a linear system, and the question becomes whether that system is consistent and what its solution set is.

Reach for it whenever you are asked whether a vector is a linear combination of given vectors, whether a list is linearly independent, or whether a polynomial or a linear map with given properties exists. Membership of 𝐰 in span(𝐯1,…,𝐯𝑘) is the system 𝑐1𝐯1+⋯+𝑐𝑘𝐯𝑘=𝐰 in the unknowns 𝑐𝑖. Linear independence of 𝐯1,…,𝐯𝑘 asks whether the homogeneous system 𝑐1𝐯1+⋯+𝑐𝑘𝐯𝑘=𝟎 has only the trivial solution. The canonical example is Example 3.1.10.

First example. Example 3.1.10

Particular plus homogeneous

Technique 3.1.18

To find every solution of a linear equation 𝑇(𝐱)=𝐲, find one solution 𝐱0, called a particular solution, and all solutions of the homogeneous equation 𝑇(𝐳)=𝟎. Every solution is 𝐱0+𝐳 for exactly one such 𝐳. This splits the problem in two: existence of a solution depends on 𝐲, while the shape of the solution set, and in particular uniqueness, depends on ker𝑇 alone.

Reach for it whenever you need all solutions of a linear problem, such as a linear system, a linear recurrence, or a linear differential equation, and whenever you need to show that a solution is unique: a solution, if one exists, is unique exactly when the homogeneous equation has only the trivial solution. The canonical example is Proposition 3.1.19.

First example. Proposition 3.1.19

Transpose to trade rows for columns

Technique 3.2.27

The transpose turns the rows of a matrix into the columns of 𝐴𝖳, and it reverses products: (𝐴𝐵)𝖳=𝐵𝖳𝐴𝖳 (Proposition 2.4.23). So a statement about the rows of 𝐴, or about left multiplication, becomes a statement about the columns of 𝐴𝖳, or about right multiplication, once everything is transposed. Prove whichever version is easier, and transpose to get the other.

Reach for it whenever you have a result about rows and need its mirror image about columns, or the other way around. The canonical example is Proposition 3.2.28, where column operations come from row operations. Later instances are the equality of row rank and column rank (Section 4.3) and det𝐴𝖳=det𝐴, which makes every column property of the determinant a row property too (Section 5.4).

First example. Proposition 3.2.28

Algorithms as proofs: invariants and termination

Technique 3.3.5

To prove that something exists, it is often enough to give a procedure that builds it. Two things then have to be proved about the procedure.

Termination. Find a quantity that moves in one direction at every step and cannot do so forever, such as a nonnegative integer that decreases, or an integer that increases and is bounded above. (Such a quantity is sometimes called a monovariant.)

Correctness. Find an invariant: a statement about the current state that is true at the start and that each step keeps true. When the procedure halts, the invariant together with the reason for halting gives the property of the output. Formally this is induction on the number of steps.

The art is in choosing the invariant. The property we want at the end is rarely preserved step by step on its own, and usually has to be strengthened, by adding facts about the intermediate states, until it is. Reach for this technique whenever a result says that some reduction is always possible (“every matrix can be brought to the form …”, “the process ends with …”). The canonical example is Gauss–Jordan elimination: termination is Proposition 3.3.6, and the invariant is Lemma 3.3.7. Later examples are Gram–Schmidt orthogonalization (Section 6.4) and the Euclidean algorithm for polynomials (Section 7.1); Exercise 3.2.54 is a small one.

First example. Lemma 3.3.7

Reduce to RREF

Technique 3.3.22

Many properties of a matrix 𝐴 do not change when 𝐴 is replaced by 𝐺𝐴 with 𝐺 invertible: for example, the kernel ker𝑇𝐴 (Corollary 3.2.23), the linear relations among the columns (Corollary 3.2.17), and, for square 𝐴, invertibility. To decide such a property, replace 𝐴 by rref(𝐴)=𝐺𝐴 (Theorem 3.3.10), where the answer can be read off the pivots and the zero rows. Two things have to be checked: that the property really is unchanged by left multiplication by invertible matrices, and what the property says about a matrix in RREF.

Reach for it whenever a question about 𝐴 is really about ker𝑇𝐴, about relations among the columns of 𝐴, or about solutions of 𝐴𝐱=𝐲 (where 𝐲 must be replaced by 𝐺𝐲, Proposition 3.2.14). The canonical example is Theorem 3.3.23. It is the method of Section 3.4 and Section 3.5, and later of rank–nullity (Section 4.2) and of the equality of row rank and column rank (Section 4.3).

First example. Theorem 3.3.23

Uniqueness gives existence

Technique 3.4.21

To show that a linear problem has a solution for every choice of data, it can be much easier to show that it has at most one. This works whenever the problem is a square linear system, with as many conditions as unknowns: by Corollary 3.4.20, if the homogeneous problem has only the zero solution, then every instance of the problem has exactly one solution. Uniqueness is usually the easier half because it is a statement about the homogeneous problem, where all data vanish, and it amounts to showing that some object is zero, often by a structural argument (a polynomial with too many roots, a maximum principle) rather than by computation. Existence then comes for free, without ever constructing a solution.

The setup has two requirements: the conditions are linear in the unknowns, and the number of conditions equals the number of unknowns. With those in place, the one thing left to prove is uniqueness itself, namely that the homogeneous problem has only the zero solution. Counting conditions and unknowns alone proves nothing (Exercise 3.6.14). Reach for it when existence looks hard and uniqueness looks easy, typically for interpolation-type problems (find an object of a given size with prescribed values) and for discrete boundary value problems such as Exercise 3.1.47. The canonical example is polynomial interpolation (Theorem 3.4.24). Section 4.2 extends it from square matrices to linear maps 𝑉→𝑊 with dim𝑉=dim𝑊.

First example. Theorem 3.4.24

4Dimension

Extend a basis of a subspace

Technique 4.1.18

To study a subspace 𝑈 of a finite-dimensional space 𝑉, choose a basis 𝐮1,…,𝐮𝑘 of 𝑈 and extend it to a basis 𝐮1,…,𝐮𝑘,𝐰1,…,𝐰𝑟 of 𝑉 (Theorem 4.1.16). The new vectors are independent of 𝑈 in a strong sense: a combination of them lies in 𝑈 only if it is 𝟎. Since a linear map may be prescribed freely on a basis (Theorem 2.2.1), the extension lets us define maps that do one thing on 𝑈 and anything we like on the 𝐰𝑗. Since the extended list is a basis, it also lets us count: dim𝑉−dim𝑈 is the number 𝑟 of new vectors.

Reach for it when you need a linear map with prescribed behavior on a subspace, when you need to compare a subspace with the whole space, or when you want coordinates in which a subspace looks like the span of the first few standard basis vectors. The canonical example is Proposition 4.1.19. Later the same move proves rank–nullity (Section 4.2), produces complements and the dimension formula for sums (Section 4.4), and starts the proof of triangularization (Section 7.5).

First example. Proposition 4.1.19

Apply an operator to a relation to kill terms

Technique 4.1.25

To show that 𝐯1,…,𝐯𝑘 is independent, take a relation 𝑎1𝐯1+⋯+𝑎𝑘𝐯𝑘=𝟎 and apply a linear map 𝐿 that sends all but a few of the 𝐯𝑖 to 𝟎. Since 𝐿(𝟎)=𝟎, the result is a shorter relation, ideally a single term 𝑎𝑗𝐿(𝐯𝑗)=𝟎 with 𝐿(𝐯𝑗)≠𝟎, which forces 𝑎𝑗=0. Then repeat with another map, or on the shorter relation that remains.

Reach for it when the vectors come with an operator that acts on them in simple and distinguishable ways: a power of 𝑇 along a chain 𝐯,𝑇𝐯,𝑇2𝐯,…; differentiation or a shift on exponentials and geometric sequences (Example 1.5.27, Exercise 1.5.44); evaluation at a point for functions that vanish at all but one point; a dot product with one of the vectors when they are mutually orthogonal (Exercise 1.5.46). The canonical example is Proposition 4.1.26. The same move shows that eigenvectors for distinct eigenvalues are independent (Section 7.2), and it organizes the Jordan chains of Section 10.3.

First example. Proposition 4.1.26

Too many vectors force a dependence

Technique 4.1.30

If a list of more than 𝑛 vectors lies in a space of dimension at most 𝑛, it is linearly dependent (Theorem 4.1.10(a)), so it has a nontrivial linear relation. The relation is the output: it is a statement about the vectors that we did not have to guess. Natural sources of many vectors in a space of known dimension are powers 𝐼,𝐴,𝐴2,… of a matrix, iterates 𝐯,𝑇𝐯,𝑇2𝐯,… of a vector, and powers 1,𝛼,𝛼2,… of a number inside a space spanned by a few known quantities. Often the relation is then refined, for instance by choosing one with the smallest index of a nonzero coefficient (Technique 1.5.9).

Reach for it when you need an identity or an equation of a given shape and have no formula for it, but can count. The canonical example is Proposition 4.1.31. The iterates 𝐯,𝑇𝐯,…,𝑇𝑛𝐯 give eigenvalues without determinants in Section 7.3; the powers of 𝑇 lead to the minimal polynomial (Section 7.6); and the powers of a number lead to algebraic numbers (Section 14.2).

First example. Proposition 4.1.31

Double counting

Technique 4.1.36

To count a set 𝑋 that is hard to list, find a second set 𝑃 of pairs (𝑥,𝑦) with 𝑥∈𝑋 that is easy to count in another way. If every 𝑥∈𝑋 occurs in the same number 𝑑 of pairs, then |𝑃|=|𝑋|⋅𝑑, and |𝑋|=|𝑃|/𝑑. Its cousin, the pigeonhole principle, compares two sets through a one-to-one assignment: the proof by exchange of Lemma 4.1.2 assigns to each 𝐮 a different 𝐰, which is why 𝑚≤𝑛.

Reach for it when the objects to be counted are hard to enumerate but each one is described by many easy-to-count objects, such as subspaces by their bases. The canonical example is Proposition 4.1.37. Counting over finite fields returns in Section 14.3.

First example. Proposition 4.1.37

Restrict to a subspace

Technique 4.2.5

To study a linear map on part of its domain, restrict it. For a subspace 𝑈 of 𝑉, the map 𝑇↾𝑈:𝑈→𝑊 is linear, its kernel is 𝑈∩ker𝑇, and its image is the set of values of 𝑇 on 𝑈 (Proposition 4.2.3). Everything known about linear maps then applies to 𝑇↾𝑈, which is often better behaved than 𝑇: it can be injective when 𝑇 is not, and its domain is smaller. The most common entry point is the identity im(𝑇𝑆)=im(𝑇↾im𝑆), which says that the composite 𝑇𝑆 sees 𝑇 only on the subspace im𝑆.

Reach for it when a composite is involved, when a hypothesis concerns only part of 𝑉 (an image, a kernel, a subspace that 𝑇 maps into itself), or when 𝑇 is injective on a subspace you care about. The canonical example is the proof of Theorem 4.2.7, which restricts 𝑇𝐺−1 to im𝑇𝐴𝑟. Later the same move bounds the rank of a product (Section 4.3) and turns an operator into a smaller operator on an invariant subspace (Section 7.2).

First example. Theorem 4.2.7

Dimension counting

Technique 4.2.24

To show that a subspace is nonzero, that two subspaces are equal, or that a linear map is injective or surjective, compute dimensions instead of vectors. The tools are rank–nullity, which ties dimker𝑇 to dimim𝑇; Proposition 4.1.21(b), which turns one containment and equal dimensions into equality; and Theorem 4.1.10, which makes long lists dependent. A typical argument computes whichever of dimker𝑇 and dimim𝑇 is easier and reads off the other. Often the image is easy because it obviously contains a basis of the target, or the kernel is easy because a structural reason (degrees, a top coefficient) forces it to be small.

Reach for it when a direct computation would mean solving equations you would rather not solve, or when you need a nonzero vector with some properties (in an intersection, in a kernel) and only its existence matters. The canonical example is that two 3-dimensional subspaces of ℝ5 meet in a nonzero vector (Proposition 4.2.26, Example 4.2.27). Later the same counting gives the rank inequalities (Section 4.3), the dimension formula for sums (Section 4.4), the bounds on eigenspaces (Section 7.4), and the min–max principles (Section 12.3).

First example. Proposition 4.2.26

Study a linear map on a space of matrices

Technique 4.2.29

Many questions about matrices ask which 𝑋 satisfy a linear condition, such as 𝐴𝑋=𝑋𝐴, 𝐴𝑋=𝑋𝐵, or 𝑋𝖳=−𝑋, or which matrices can be written in a given linear form, such as 𝐴𝑋−𝑋𝐴. Treat 𝑋↦(𝐴𝑋−𝑋𝐴), or whatever the expression is, as a linear map on 𝐹𝑛×𝑛 (or 𝐹𝑚×𝑛), a space of dimension 𝑛2 (or 𝑚𝑛) by Example 4.1.7. The first kind of question asks for its kernel and the second for its image, and rank–nullity relates the two. So an easy description of the kernel gives the dimension of an image that is hard to describe, and with one easy containment the dimension often identifies the image completely.

Reach for it when a matrix equation is linear in the unknown matrix. The canonical example is Example 4.2.30. The trace argument that 𝐴𝐵−𝐵𝐴≠𝐼𝑛 when 𝑛⋅1≠0 in 𝐹 (Technique 2.4.29) is an instance: the image of 𝑋↦𝐴𝑋−𝑋𝐴 lies in the trace-zero matrices. Later instances are Sylvester equations 𝐴𝑋−𝑋𝐵=𝐶 (Section 10.3) and transposition as an operator with eigenvalues ±1 (Section 7.4).

First example. Example 4.2.30

Write a rank-one matrix as 𝐮𝐯𝖳

Technique 4.3.17

A matrix of rank one is 𝐮𝐯𝖳 with 𝐮,𝐯≠𝟎 (Proposition 4.3.16). In this form products collapse to scalars, because 𝐯𝖳𝐰 is a 1×1 matrix and can be moved out of the way:

(𝐮𝐯𝖳)𝐱=(𝐯𝖳𝐱)𝐮,(𝐮𝐯𝖳)(𝐰𝐳𝖳)=(𝐯𝖳𝐰)𝐮𝐳𝖳,(𝐮𝐯𝖳)2=(𝐯𝖳𝐮)𝐮𝐯𝖳.

Reach for it when a hypothesis says that a matrix has rank one, when a matrix differs from a known one by a rank-one matrix (as 𝐼𝑛+𝐮𝐯𝖳 or 𝐴+𝐮𝐯𝖳 do), and when a matrix is to be split into simple pieces. The canonical example is Proposition 4.3.16, and Example 4.3.18 shows the collapse at work. Later instances are the matrix determinant lemma for det(𝐴+𝐮𝐯𝖳) (Theorem 5.5.27) and the singular value decomposition, which writes every matrix as a sum of rank-one pieces in the best possible way (Section 9.1).

First example. Proposition 4.3.16

Compare components

Technique 4.4.8

In a direct sum, an equation between decompositions splits into one equation per summand. If 𝐮1+⋯+𝐮𝑘=𝐮1′+⋯+𝐮𝑘′ with 𝐮𝑖,𝐮𝑖′∈𝑈𝑖 and the sum is direct, then 𝐮𝑖=𝐮𝑖′ for every 𝑖. This is the analogue of comparing coefficients with respect to a basis. To use it, sort every term of an equation into the summand it belongs to, then read off the components one at a time.

Proving that a sum is direct runs the same move backwards. Take two decompositions of one vector, subtract them, and move terms across so that the two sides of the resulting equation lie in different subspaces. Then both sides lie in the intersection, and if the intersection is {𝟎}, both sides vanish. For two subspaces this is the whole argument: 𝐮+𝐰=𝐮′+𝐰′ gives 𝐮−𝐮′=𝐰′−𝐰∈𝑈∩𝑊.

Reach for it whenever a vector is given as a sum of pieces from known subspaces. The canonical example is Theorem 4.4.7. Later uses include orthogonal decompositions (Section 6.4), the independence of eigenvectors with distinct eigenvalues (Section 7.2), and the generalized eigenspace decomposition (Section 10.2).

First example. Theorem 4.4.7

Induction on the number of summands

Technique 4.4.10

To prove a statement about 𝑘 subspaces 𝑈1,…,𝑈𝑘, group the first 𝑘−1 of them into 𝑆=𝑈1+⋯+𝑈𝑘−1 and treat 𝑆+𝑈𝑘 as a sum of two subspaces. Proposition 4.4.2(a) says that 𝑆+𝑈𝑘 is the whole sum, and Proposition 4.4.9 says that it is direct exactly when 𝑆 is direct and 𝑆∩𝑈𝑘={𝟎}. So the two-subspace case and the inductive hypothesis for 𝑆 combine into the case of 𝑘 subspaces.

Reach for it when the statement for two subspaces is easy, typically because it reduces to 𝑈∩𝑊={𝟎}, and the general case looks messy. Watch the hypothesis in the inductive step: it needs 𝑆∩𝑈𝑘={𝟎}, an intersection with a sum, and not just 𝑈𝑖∩𝑈𝑘={𝟎} for each 𝑖<𝑘 (Non-example 4.4.6(b)). The canonical example is the second proof of Theorem 4.4.7. The same induction shows that eigenspaces for distinct eigenvalues are independent (Section 7.2).

First example. Theorem 4.4.7

Glue bases of the summands

Technique 4.4.14

When 𝑉=𝑈1⊕⋯⊕𝑈𝑘, choose a basis of each 𝑈𝑖 and concatenate. The result is a basis of 𝑉 (Theorem 4.4.13) adapted to the decomposition: each basis vector lies in one summand, so the coordinates of a vector split into blocks, one block for each component. In the other direction, to show that subspaces are independent, it suffices to check that bases of them concatenate to an independent list, or just to compare dimensions.

Reach for it to compute the dimension of a direct sum, or to turn a statement about subspaces into one about lists. The canonical example is Theorem 4.4.13. Later, a basis glued from bases of eigenspaces is an eigenbasis (Section 7.4), and Jordan bases are glued from chains (Section 10.3).

First example. Theorem 4.4.13

Split the space with an idempotent

Technique 4.4.28

To decompose 𝑉 as a direct sum, look for an operator 𝑃 with 𝑃2=𝑃. Then 𝑉=im𝑃⊕ker𝑃, every vector splits as 𝐯=𝑃(𝐯)+(𝐯−𝑃(𝐯)), and im𝑃 is the set of vectors that 𝑃 fixes (Theorem 4.4.27). In the other direction, every decomposition 𝑉=𝑈⊕𝑊 comes with its projections, and statements about decompositions become algebra of operators: 𝑃2=𝑃, 𝑃+𝑄=id𝑉, 𝑃𝑄=𝑄𝑃=0.

Reach for it when a formula suggests “the part of 𝐯 that …”, such as the symmetric part (𝐴+𝐴𝖳)/2 of a matrix, or more generally the average of 𝐯 and 𝑇(𝐯) for an operator with 𝑇2=id𝑉 (Exercise 4.4.43). Each is 𝑃(𝐯) for an idempotent 𝑃. The canonical example is Theorem 4.4.27. Later, idempotent matrices over ℚ, ℝ, ℂ have trace equal to rank (Exercise 4.3.43), and orthogonal projections are the idempotents that are self-adjoint (Section 6.6).

First example. Theorem 4.4.27

Transport along an isomorphism

Technique 4.5.7

An isomorphism 𝑇:𝑉→𝑊 carries every statement about 𝑉 that is phrased in terms of the vector space operations (independence, span, bases, subspaces and their dimensions, kernels and images of linear maps) to the corresponding statement about 𝑊, and back. So to answer such a question about an unfamiliar space, transport it along an isomorphism to a space where it is easier, answer it there, and transport the answer back.

Reach for it when the space is made of polynomials, matrices, functions, or linear maps, and the question only involves linear structure. The usual target is 𝐹𝑛, through coordinates: Proposition 1.6.20 was an early instance, and Theorem 4.5.6 says that every 𝑛-dimensional space can be transported to 𝐹𝑛. The canonical example is the computation of dimL(𝑉,𝑊) below, which transports the question to matrices. Be careful to transport only statements made of the linear operations: a property such as “every entry is positive” or “the polynomial has a root” is not preserved by isomorphisms.

First example. Theorem 4.5.8

Rule out similarity with an invariant

Technique 4.5.29

To show that 𝐴 and 𝐵 are not similar, find a similarity invariant on which they differ: trace, rank, rank of a power 𝐴𝑘, rank of 𝐴−𝑐𝐼𝑛 for a well-chosen 𝑐, and later the determinant and the characteristic polynomial. To show that they are similar, invariants are not enough: produce an 𝑆 with 𝐴𝑆=𝑆𝐵, usually by finding a basis in which the operator 𝑇𝐴 has matrix 𝐵 (Theorem 4.5.25).

Reach for the cheapest invariants first. Trace and rank take seconds. If they agree, look for a structural difference: is one matrix nilpotent, or a scalar multiple of 𝐼𝑛, or does 𝐴−𝑐𝐼𝑛 drop rank for some 𝑐 where 𝐵−𝑐𝐼𝑛 does not? The canonical example is Remark 4.5.28.

First example. Remark 4.5.28

Choose a convenient basis

Technique 4.5.33

Many statements about a linear map 𝑇 (or a matrix 𝐴) are invariant under change of basis: they hold for one matrix of 𝑇 if and only if they hold for all of them, or for 𝐴 if and only if they hold for 𝐺𝐴𝐻 (or for 𝑆−1𝐴𝑆). To prove such a statement, first check this invariance, then choose bases in which the matrix is as simple as possible, prove the statement there, and transport the conclusion back.

For maps between two spaces, the best possible matrix is the rank normal form 𝑁𝑟 (Corollary 4.5.22), and in matrix language this says: to prove something about 𝐴 that survives 𝐴↦𝐺𝐴𝐻, assume 𝐴=𝑁𝑟. For operators, the bases must agree on both sides, and the convenient bases come from the operator itself: bases adapted to a subspace that 𝑇 preserves (below), bases of the form 𝐯,𝑇𝐯,𝑇2𝐯,… (Exercise 4.5.50, Exercise 4.5.43), and later bases of eigenvectors (Section 7.4) and triangularizing bases (Section 7.5).

First example. Corollary 4.5.22

Choose a basis adapted to a preserved subspace

Technique 4.5.36

If 𝑇 maps a subspace 𝑈 into itself, take a basis of 𝑈 and extend it to a basis of 𝑉 (Theorem 4.1.16). In this basis the matrix of 𝑇 is block upper triangular (Proposition 4.5.35), the top left block is the matrix of 𝑇 on 𝑈, and a question about 𝑇 splits into a question about 𝑇 on 𝑈 and one about the bottom right block. If 𝑉 is assembled from several preserved subspaces, list bases of each in turn, and the matrix becomes block diagonal.

Reach for it when you can see a subspace that 𝑇 preserves: a kernel or image of something commuting with 𝑇, the span of a vector fixed or scaled by 𝑇, or the span of 𝐯,𝑇𝐯,…,𝑇𝑘𝐯. It is the first step of triangularization (Section 7.5) and of the Jordan form (Section 10.3).

First example. Example 4.5.37

Check that a definition does not depend on the representative

Technique 4.6.18

Objects such as cosets are handled through representatives: a coset is named by any one of its elements, and a function on cosets is defined by a formula in that element, 𝑓(𝐯+𝑈)=𝑔(𝐯). Such a formula defines a function only if every name of the same coset gives the same value. So the first thing to prove about it is

𝐯+𝑈=𝐯′+𝑈⇒𝑔(𝐯)=𝑔(𝐯′),

which by Lemma 4.6.14 means: if 𝐯−𝐯′∈𝑈, then 𝑔(𝐯)=𝑔(𝐯′). One says that 𝑓 is well defined.

Mind the direction. Equal inputs must give equal outputs. The converse, that equal outputs force equal inputs, is injectivity, which is a different property that 𝑓 may or may not have (Exercise 4.6.43).

Reach for it whenever an object is defined through a choice: of a representative, a basis, a preimage, an extension. The canonical example is Theorem 4.6.22. The same check appeared in Exercise 2.6.43, where a map was defined on preimages, and in Proposition 4.2.15, which shows that the rank of a matrix of 𝑇 does not depend on the bases. It returns when the determinant of an operator is defined through any one of its matrices (Section 5.4).

First example. Theorem 4.6.22

Pass to a quotient

Technique 4.6.31

When a construction only depends on vectors up to elements of a subspace 𝑈, replace 𝑉 by 𝑉/𝑈. By Theorem 4.6.30, a linear map that kills 𝑈 is the same as a linear map on 𝑉/𝑈, and by Theorem 4.6.27 and Proposition 4.6.28, dimensions split as dim𝑉=dim𝑈+dim(𝑉/𝑈). Two typical uses:

  • Make a map injective. Dividing out exactly the kernel turns 𝑇 into an injective map with the same image. This is the first isomorphism theorem (Theorem 4.6.34), and it is the standard way to show that some space is isomorphic to an image.
  • Split a problem in two. If an operator 𝑇 maps 𝑈 into itself, it acts on 𝑈 and on 𝑉/𝑈 (Proposition 4.6.32), and a statement about 𝑇 often follows from the same statement for these two smaller operators, by induction on dim𝑉. Section 7.5 triangularizes operators this way.

The price is the well-definedness check (Technique 4.6.18) for every map defined on cosets.

First example. Theorem 4.6.34

Choose a base point

Technique 4.7.4

An affine subspace has no origin of its own, but by Proposition 4.7.3(b) any of its points can serve as one. Once a point 𝐚∈𝐸 is fixed, 𝐱↦𝐱−𝐚 carries 𝐸 onto the subspace 𝑈=𝐸−𝐚, and statements about 𝐸 become statements about 𝑈, where linear algebra applies. Every point of 𝐸 works equally well, so choose the most convenient one, such as a point that two affine subspaces have in common, or a fixed point of a map.

Reach for it whenever an affine question has a linear counterpart that you already know how to answer. The canonical example is Proposition 4.7.10. The same move drives Theorem 4.7.14, Proposition 4.7.17, and Theorem 4.7.37.

First example. Proposition 4.7.10

Homogenize: add a coordinate 1

Technique 4.7.21

To turn an affine problem into a linear one without choosing a base point, replace each point 𝐯 by its lift 𝐯̂=(𝐯,1) in 𝑉×𝐹, or in 𝐹𝑛+1 if 𝑉=𝐹𝑛. Then

∑𝑖𝑐𝑖𝐯̂𝑖=(∑𝑖𝑐𝑖𝐯𝑖,∑𝑖𝑐𝑖),

so the last coordinate records the coefficient sum. Affine combinations of points are the linear combinations of their lifts that land in the hyperplane “last coordinate 1”, and affine dependences are the linear relations among the lifts. Row reduction, rank, and matrices then apply directly.

Reach for it when you want to treat all points symmetrically, or when you want affine maps to become matrix multiplication. The canonical example is the second approach to Proposition 4.7.20. Homogeneous coordinates (Section 4.7.6) apply the same idea to maps.

First example. Proposition 4.7.20

Slide along a dependence

Technique 4.7.33

Suppose 𝐩=∑𝑖𝑐𝑖𝐯𝑖, where the coefficients are subject to constraints, such as 𝑐𝑖≥0 and ∑𝑖𝑐𝑖=1, and the 𝐯𝑖 satisfy a relation ∑𝑖𝑑𝑖𝐯𝑖=𝟎 that respects the equality constraints (here ∑𝑖𝑑𝑖=0). Then 𝐩=∑𝑖(𝑐𝑖−𝜆𝑑𝑖)𝐯𝑖 for every scalar 𝜆, and the equality constraints still hold. Increase 𝜆 from 0 until the first inequality constraint becomes tight. At that extremal 𝜆 some coefficient is 0, and its vector can be dropped. Repeat as long as a relation exists.

Reach for it to show that a representation can be chosen short, for instance using independent vectors only. It refines the argument of Theorem 1.6.10, where a redundant vector is simply discarded, to situations where the coefficients must keep their signs. The canonical example is Carathéodory’s theorem (Theorem 4.7.34).

First example. Theorem 4.7.34

5Determinants

Expand by multilinearity

Technique 5.1.7

If an argument of a multilinear function is a sum, split it: linearity in slot 𝑗 turns 𝐷(…,∑𝑘𝑐𝑘𝐱𝑘,…) into ∑𝑘𝑐𝑘𝐷(…,𝐱𝑘,…). Doing this in several slots turns one value of 𝐷 into a sum over all ways of choosing one term in each slot, so 𝑚 terms in each of 𝑟 slots give 𝑚𝑟 terms. Usually the terms are standard basis vectors, or other vectors on which 𝐷 is known, and the expansion reduces 𝐷(𝐴) to finitely many known values. When 𝐷 is also alternating, every term that uses the same vector in two slots vanishes, and typically most of the sum disappears.

Reach for it when you need a value of a multilinear function on general inputs and you know its values on special ones, much as a linear map is determined by its values on a basis (Technique 2.2.7). The canonical example is the 2×2 determinant (Theorem 5.1.13). In Section 5.3 the same expansion, carried out in all 𝑛 columns, produces a formula for 𝐷 on 𝐹𝑛×𝑛.

First example. Theorem 5.1.13

Strong induction and well-ordering

Technique 5.2.12

To prove a statement 𝑃(𝑚) for every integer 𝑚≥0, it suffices to prove 𝑃(𝑚) for each 𝑚 under the assumption that 𝑃(𝑘) holds for every 𝑘<𝑚. When 𝑚=0 there is nothing to assume, so the argument must handle that case outright, but no separate base case is needed. Reach for strong induction when a reduction step replaces an object by a smaller one but you cannot say by how much it shrinks, so that induction from 𝑚−1 to 𝑚 does not apply. Often the main decision is the measure of size, such as the number of points a permutation moves or the degree of a polynomial.

An equivalent form is the well-ordering principle: every nonempty set of nonnegative integers has a least element. It justifies arguments that begin “let 𝑘 be the least positive integer such that …”, and proofs by minimal counterexample. The canonical example is Proposition 5.2.13, by induction on the number of moved points. Section A.2 compares the forms of induction, and Section 7.1 uses strong induction on the degree to divide polynomials.

First example. Proposition 5.2.13

Parity via an invariant

Technique 5.2.19

To show that the number of steps in a process has a determined parity, attach to each state a quantity that every step changes in a controlled way: it is multiplied by −1, or it changes by an odd integer. After 𝑟 steps the quantity has been multiplied by (−1)𝑟, or has changed by an amount of the same parity as 𝑟, so the parity of 𝑟 is determined by the initial and final states, whichever steps were taken. The same idea shows that a state cannot be reached: find a quantity that every allowed move preserves and that differs between the two states.

Reach for it when a statement is about parity, or about which configurations can be reached by repeating moves of one kind: swaps, slides, rotations. The canonical example is Lemma 5.2.20, where a product of differences 𝑥𝑗−𝑥𝑖 changes sign under every transposition of the variables. Exercise 5.2.47 applies it to a classic puzzle, and Section 8.4 uses the sign of the determinant to separate rotations from reflections.

First example. Lemma 5.2.20

Cancel terms in pairs

Technique 5.3.5

To show that a finite sum ∑𝑥∈𝑋𝑡(𝑥) is 0, find a bijection 𝜑:𝑋→𝑋 with 𝜑(𝜑(𝑥))=𝑥 and 𝜑(𝑥)≠𝑥 for every 𝑥, such that 𝑡(𝜑(𝑥))=−𝑡(𝑥). Then 𝑋 splits into two-element sets {𝑥,𝜑(𝑥)}, and the two terms in each set cancel. To write this down, choose a set 𝑃⊆𝑋 containing exactly one element of each pair, so that 𝜑 maps 𝑃 bijectively onto 𝑋∖𝑃; then ∑𝑥∈𝑋𝑡(𝑥)=∑𝑥∈𝑃(𝑡(𝑥)+𝑡(𝜑(𝑥)))=0. If 𝜑 has fixed points, and 𝑡(𝜑(𝑥))=−𝑡(𝑥) holds for the other 𝑥, the same argument shows that the sum equals the sum over the fixed points, which is often easy to evaluate.

This is not the same as the shortcut “reindexing by 𝜑 shows 𝑆=−𝑆, so 𝑆=0”. The shortcut divides by 1+1, which is impossible in characteristic 2, while pairing never divides. Reach for pairing when the terms of a sum come with signs and a natural operation flips the sign: for sums over 𝑆𝑛, composing with a fixed transposition. The canonical example is the alternation of the Leibniz formula in Theorem 5.3.4. Counting is a special case: an involution with no fixed points shows that a finite set has an even number of elements, and in general |𝑋| has the same parity as the number of fixed points of 𝜑 (Exercise 5.3.40).

First example. Theorem 5.3.4

Read structure off the Leibniz expansion

Technique 5.3.12

A term of the Leibniz formula is sgn(𝜎) times 𝑛 entries of 𝐴, one in each column and one in each row, and it vanishes if one of these entries is 0. So to evaluate or analyze det𝐴 for a matrix with a pattern of zeros, ask which permutations 𝜎 satisfy 𝑎𝜎(𝑗)𝑗≠0 for every 𝑗. Often the pattern confines 𝜎 to a small, explicit set, and only those terms need to be computed. The same question asked about entries that depend on a parameter, instead of entries that vanish, tells you how det𝐴 depends on the parameter (Technique 5.3.18).

Reach for it when the matrix is sparse or structured (triangular, block-diagonal, banded, mostly zeros), or when a question asks which products of entries can occur in det𝐴. Expect to prove a small lemma about permutations along the way, such as Lemma 5.3.14. The canonical example is Proposition 5.3.15, where only the identity survives.

First example. Proposition 5.3.15

det is a polynomial in the entries

Technique 5.3.18

By the Leibniz formula, det𝐴 is a polynomial in the 𝑛2 entries of 𝐴 with integer coefficients ±1, each of whose monomials has degree 𝑛 and uses one entry from each row and each column. So if the entries of a matrix depend polynomially on a parameter 𝑡, then so does its determinant, and the degree and the leading coefficients can be read off the formula with Technique 5.3.12. Similarly, any map that respects sums and products can be applied to det𝐴 entry by entry: for example, complex conjugation (Exercise 5.3.28) and reduction modulo a prime (Technique 5.3.21).

Reach for it when a question asks how det varies with a parameter, as for det(𝐴+𝑡𝐼𝑛) or det(𝐴+𝑡𝐵), for how many values of 𝑡 a matrix can fail to be invertible, or how det interacts with an operation on the entries. The canonical example is Proposition 5.3.19.

First example. Proposition 5.3.19

Reduce modulo 𝑝

Technique 5.3.21

To show that a matrix with integer entries has nonzero determinant, and hence is invertible (Corollary 5.1.18), it is enough to find one prime 𝑝 for which det𝐴≠0 in 𝔽𝑝: then (det𝐴)mod𝑝≠0 by Proposition 5.3.20, so det𝐴≠0. Choose 𝑝 so that 𝐴 is simple, for instance triangular with nonzero diagonal entries or a permutation matrix, and there is no need to compute det𝐴 itself. The converse inference is not available: det𝐴=0 only says that 𝑝 divides det𝐴.

Reach for it when an integer matrix has a recognizable pattern modulo a small prime, most often modulo 2, where the entries are just their parities and sgn(𝜎)=1 for every 𝜎. The canonical example is Example 5.3.22.

First example. Example 5.3.22

Reduce to elementary matrices

Technique 5.4.6

Every invertible matrix is a product of elementary matrices (Theorem 3.5.19). So to prove a statement about all invertible matrices, it is often enough to

  1. prove it for the three types of elementary matrices, by a direct computation; and
  2. show that it survives multiplication: if it holds for 𝐴 and 𝐸 is elementary, then it holds for 𝐴𝐸 (or for 𝐸𝐴).

Induction on the number of factors then gives the statement for every invertible matrix. A statement about all square matrices needs a separate argument for the matrices that are not invertible. Often both sides of the claimed identity are 0 there. Otherwise, write 𝐴=𝐺−1rref(𝐴) (Theorem 3.3.10) and use that rref(𝐴) has a zero row.

Reach for it when a statement involves products, inverses, or transposes, and is easy to check on elementary matrices, which differ from 𝐼𝑛 in at most four entries. The fullest example is the first proof of Theorem 5.4.10; the first proof of Theorem 5.4.14 has the same shape. Remember the case split: a matrix that is not invertible is never a product of elementary matrices, since such products are invertible (Corollary 3.2.11). Forgetting this is a common error (Exercise 5.4.35).

First example. Theorem 5.4.10

Recognize the determinant by its axioms

Technique 5.4.11

By Theorem 5.3.4, every multilinear alternating function 𝐷:𝐹𝑛×𝑛→𝐹 equals 𝐷(𝐼𝑛)det. So to prove an identity of the form 𝐷(𝐵)=𝑐det𝐵, where 𝐷(𝐵) is some expression built from 𝐵, check two things about 𝐷 as a function of the columns of 𝐵: that it is linear in each column, and that it vanishes when two columns are equal. Then evaluate at 𝐼𝑛 to find 𝑐=𝐷(𝐼𝑛). No formula for det and no case analysis is needed.

Reach for it when an expression is visibly linear in each column of a matrix: det(𝐴𝐵) for a fixed 𝐴, det(𝑋00𝐵) for a fixed 𝐵, or a function of 𝑛 vectors in a space with a basis. The canonical example is the second proof of Theorem 5.4.10. The same move proved Proposition 5.3.17, and Section 13.4 uses it to define the determinant of an operator without choosing a basis.

First example. Theorem 5.4.10

Block elimination

Technique 5.4.28

Row reduction works with blocks in place of entries, as long as the order of the factors in each product is respected. By Theorem 2.4.34, multiplying (𝐴𝐵𝐶𝐷) on the left by (𝐼0𝑋𝐼) adds 𝑋 times the first block row to the second, giving (𝐴𝐵𝑋𝐴+𝐶𝑋𝐵+𝐷). Multiplying on the right by (𝐼𝑌0𝐼) adds the first block column times 𝑌 to the second, giving (𝐴𝐴𝑌+𝐵𝐶𝐶𝑌+𝐷). Both multipliers have determinant 1 by Theorem 5.4.26, so these operations do not change the determinant. Choose 𝑋 or 𝑌 to create a zero block, and finish with Theorem 5.4.26.

Reach for it when you want the determinant or the inverse of a 2×2 block matrix and one of the blocks is invertible, or when two block matrices are related by such operations. The canonical example is Proposition 5.4.29.

First example. Proposition 5.4.29

Induction on matrix size

Technique 5.5.17

Suppose a family of matrices 𝑀1,𝑀2,𝑀3,…, with 𝑀𝑛∈𝐹𝑛×𝑛, has the property that expanding 𝑀𝑛 along a well-chosen row or column produces minors that are earlier members of the family, or are triangular, or are otherwise known. Then the expansion gives a recurrence for 𝑑𝑛=det𝑀𝑛. Expand along the row or column with the fewest nonzero entries, identify each minor that appears, and write down the recurrence. Then either solve it, or compute 𝑑1,𝑑2,𝑑3, guess a closed form, and prove it by induction on 𝑛.

Reach for it when a matrix has a pattern that repeats along the diagonal, so that deleting the last (or first) row and column gives the same kind of matrix. The canonical example is Proposition 5.5.18. Proposition 5.5.20 and the first proof of Theorem 5.5.21 induct in the same way, and Exercise 5.5.34 reproves Proposition 5.3.15.

First example. Proposition 5.5.18

Expose a factor with row and column operations

Technique 5.5.22

When the entries of a matrix are polynomial expressions in some parameters and the determinant is expected to have a factor such as 𝑐1−𝑐0, look for replacements that make this factor appear in every entry of one row (or column). Replacements do not change the determinant (Corollary 5.4.15, Lemma 5.1.8), and linearity in that row then pulls the factor out. Choose the replacements so that they also create zeros, so that a cofactor expansion reduces the size at the same step. Repeating this, usually by induction on the size, peels off the factors one at a time.

Reach for it when consecutive columns (or rows) are related by a common multiplier, as the powers 𝑐𝑘 and 𝑐𝑘+1 are related by 𝑐, or when all rows have a common sum. The canonical example is the first proof of Theorem 5.5.21. Example 5.4.24 and Exercise 5.4.44 used the same idea with row sums.

First example. Theorem 5.5.21

Polynomial identity arguments

Technique 5.5.24

To prove that two quantities depending on a scalar 𝑡 are equal, show that both are values 𝑃(𝑡) and 𝑄(𝑡) of polynomials 𝑃,𝑄∈𝐹[𝑥]≤𝑛, and then show 𝑃=𝑄 by counting. Two polynomials of degree at most 𝑛 that agree at 𝑛+1 distinct points are equal, since their difference has 𝑛+1 roots (Lemma 3.4.23). When zeros are easier to find than values, use Lemma 5.5.23 instead: a polynomial of degree at most 𝑛 with 𝑛 known distinct roots is determined by its coefficient of 𝑥𝑛. Then the proof splits into independent checks: a bound on the degree, the roots, and one coefficient.

Determinants are a rich source of such polynomials. If a parameter 𝑡 occurs in only one row, the expansion along that row (Theorem 5.5.3) shows that the determinant is a polynomial in 𝑡; if the top power of 𝑡 occurs in only one entry of that row, as in (1,𝑡,…,𝑡𝑛), its coefficient is a single cofactor. More generally, see Technique 5.3.18. Roots come from coincidences: a value of 𝑡 that makes two rows equal, or the rows dependent, is a root.

Reach for it when the expected answer is a product of linear factors, or when an identity is easy to check for many special values of a parameter. Two pitfalls: forgetting the leading coefficient (roots determine a polynomial only up to a scalar factor; see Exercise 5.5.42), and counting roots that are not distinct. Over an infinite field, an identity between polynomials in 𝑡 that holds for all but finitely many 𝑡 holds for all 𝑡. This extends identities from invertible matrices to all matrices by way of 𝐴+𝑡𝐼𝑛 (Exercise 5.5.41). The canonical example is the second proof of Theorem 5.5.21. The technique returns in Section 7.3.

First example. Theorem 5.5.21

Factor the matrix

Technique 5.6.1

To compute det𝑀, write 𝑀 as a product of matrices whose determinants are known, and multiply (Theorem 5.4.10). There are two common sources of factorizations. If every entry is a sum of products, 𝑚𝑖𝑗=∑𝑘𝑥𝑖𝑘𝑑𝑘𝑦𝑘𝑗, then 𝑀=𝑋𝐷𝑌 with 𝐷=diag(𝑑1,…,𝑑𝑟), and 𝑋 and 𝑌 are often triangular or Vandermonde matrices. If 𝑀 is a block matrix, block row and column operations (Theorem 2.4.34) multiply it by matrices of determinant 1 until it is block triangular. When the inner size 𝑟 is smaller than the size of 𝑀, the same factorization shows det𝑀=0 instead (Exercise 5.4.38). For instance, the matrix with entries 1+𝑥𝑖𝑦𝑗 is 𝑋𝑌 with rows (1,𝑥𝑖) in 𝑋 and columns (1,𝑦𝑗) in 𝑌. For two rows this gives (𝑥2−𝑥1)(𝑦2−𝑦1), and for three or more rows it gives 0.

Reach for it when the entries are power sums, binomial expansions, or sums over divisors, or when one block of a block matrix can be cleared. The chapter used it in Exercise 5.4.43, Exercise 5.4.46, and Exercise 5.5.47. The canonical example is the Hankel matrix of power sums, which is 𝑉𝖳𝑉 for a Vandermonde matrix 𝑉 (Problem 5.9).

First example. Problem 5.9

6Inner product spaces

A sum of nonnegative terms

Technique 6.1.9

A sum of nonnegative real numbers is 0 only if every term is 0: if 𝑡1,…,𝑡𝑛≥0 and some 𝑡𝑗>0, then 𝑡1+⋯+𝑡𝑛≥𝑡𝑗>0. So to show that many quantities vanish, it suffices to exhibit them as squares, or squared moduli |𝑧𝑘|2, in a single sum, and to show that the sum is 0.

Reach for it when a positivity or definiteness axiom must be verified for a concrete formula, and whenever one equation should force many. The canonical example is definiteness of the dot product (Proposition 6.1.10), where ∑𝑘|𝑣𝑘|2=0 forces every 𝑣𝑘=0. Integrals of nonnegative continuous functions behave the same way (Lemma 6.1.14), and Technique 6.1.18 applies the idea to the entries of a matrix.

First example. Proposition 6.1.10

The trace of 𝐴∗𝐴

Technique 6.1.18

For every 𝐴∈𝔽𝑚×𝑛, tr(𝐴∗𝐴)=∑𝑖,𝑗|𝑎𝑖𝑗|2 (Proposition 6.1.16). So tr(𝐴∗𝐴)≥0, with equality only for 𝐴=0, and one scalar equation controls every entry of 𝐴. To show that a matrix 𝐴 is zero, it suffices to show tr(𝐴∗𝐴)=0; in particular, it suffices to show 𝐴∗𝐴=0.

Reach for it when a matrix identity involves 𝐴∗𝐴 or 𝐴𝐴∗ (or 𝐴𝖳𝐴 over ℝ) and the goal is a conclusion about 𝐴 itself. It is Technique 6.1.9 applied to the entries of a matrix. The canonical example is Corollary 6.1.19.

First example. Corollary 6.1.19

Polarization

Technique 6.1.33

An inner product is determined by its values ⟨𝐯,𝐯⟩ on single vectors: by Proposition 6.1.32, ⟨𝐱,𝐲⟩ is a combination of the numbers ‖𝐱+𝑐𝐲‖2 with 𝑐∈{±1,±𝑖}. So a statement about all pairs (𝐱,𝐲) can often be reduced to a statement about single vectors, applied to 𝐱+𝑐𝐲 for a few scalars 𝑐.

Reach for it when the hypothesis or the conclusion involves only lengths, or only “quadratic” quantities such as ⟨𝑇𝐯,𝐯⟩, and you need information about two different vectors at once. The canonical example is Proposition 6.1.32 itself. Over ℝ there is a caveat: a symmetric function 𝐵(𝐱,𝐲) that is linear in each slot is determined by its diagonal values 𝐵(𝐯,𝐯), but without symmetry this fails. For instance, 𝐵(𝐱,𝐲)=𝑥1𝑦2−𝑥2𝑦1 on ℝ2 satisfies 𝐵(𝐯,𝐯)=0 for all 𝐯 without being 0. Over ℂ no symmetry is needed (Proposition 6.1.41).

First example. Proposition 6.1.32

Show a vector is zero via its norm

Technique 6.1.36

By definiteness, 𝐯=𝟎 as soon as ⟨𝐯,𝐯⟩=0. So to prove that a vector is zero, compute ⟨𝐯,𝐯⟩, or ‖𝐯‖2, and show that it vanishes. Often one knows that ⟨𝐯,𝐱⟩=0 for many 𝐱, and the move is to take 𝐱=𝐯. To prove 𝐯=𝐰, apply this to 𝐯−𝐰, expanding ‖𝐯−𝐰‖2 with Proposition 6.1.29 if necessary.

Reach for it when the hypotheses are statements about inner products and the conclusion is an equation between vectors. The canonical example is Proposition 6.1.37. In Section 6.5 the same move shows that 𝐴∗𝐴𝐱=𝟎 implies 𝐴𝐱=𝟎.

First example. Proposition 6.1.37

Plug in clever test vectors

Technique 6.1.40

A hypothesis that holds for all vectors holds in particular for sums and multiples of the vectors you care about. Applying it to 𝐯=𝐱+𝐲, 𝐱−𝐲, 𝐱+𝑖𝐲, or to the very vector you want to control, turns one identity into a system of equations, which can then be solved for the quantity you want.

Reach for it when a hypothesis is quantified over all vectors but involves each vector only quadratically, like ‖𝐯‖ or ⟨𝑇𝐯,𝐯⟩, and you need information about pairs of vectors. Over ℂ, the pair 𝐱+𝐲 and 𝐱+𝑖𝐲 is usually the right choice, because together they separate real and imaginary parts. The canonical example is Proposition 6.1.41. The polarization identities (Proposition 6.1.32) and the choice 𝐱=𝐯−𝐰 in Proposition 6.1.37 are instances of the same move.

First example. Proposition 6.1.41

Orthogonal decomposition

Technique 6.2.4

To compare a vector 𝐱 with a nonzero vector 𝐲, split 𝐱 into a part along 𝐲 and a part perpendicular to 𝐲:

𝐱=𝑐𝐲+𝐰,𝑐=⟨𝐱,𝐲⟩‖𝐲‖2,𝐰=𝐱−𝑐𝐲.

This choice of 𝑐 is exactly the one that makes ⟨𝐰,𝐲⟩=0. Then the cross term in Proposition 6.1.29 vanishes, and ‖𝐱‖2=|𝑐|2‖𝐲‖2+‖𝐰‖2. So the length of 𝐱 splits into a contribution from the direction 𝐲 and a contribution from everything else. Dropping ‖𝐰‖2≥0 gives a lower bound for ‖𝐱‖ that is sharp exactly when 𝐰=𝟎.

Reach for it when a statement compares 𝐱 with one fixed direction, or asks how close 𝐱 comes to the line through 𝐲. The canonical example is the first proof of Theorem 6.2.1. In Section 6.4 the line is replaced by an arbitrary subspace, the part along 𝐲 becomes the orthogonal projection, and the same computation solves best-approximation problems (Theorem 6.4.33) and least squares (Section 6.5).

First example. Theorem 6.2.1

A nonnegative quadratic has nonpositive discriminant

Technique 6.2.7

If a real quadratic 𝑎𝑡2−2𝑏𝑡+𝑐 with 𝑎>0 is nonnegative for every real 𝑡, then 𝑏2≤𝑎𝑐, with equality exactly when the quadratic has a real root (Lemma 6.2.6). So to prove an inequality of the shape 𝑏2≤𝑎𝑐, look for an expression that is nonnegative for every real 𝑡 for an obvious reason, usually a squared norm ‖𝐱−𝑡𝐲‖2 or a sum of squares, and that expands to 𝑎𝑡2−2𝑏𝑡+𝑐. The equality case comes for free: it says that the nonnegative expression vanishes for some 𝑡.

Reach for it when the target has the shape 𝑏2≤𝑎𝑐 with 𝑎,𝑐≥0, especially when no geometric picture suggests a decomposition. The parameter 𝑡 must be real; over ℂ, first make the middle coefficient real (Technique 6.2.8). The canonical example is the second proof of Theorem 6.2.1.

First example. Theorem 6.2.1

Rotate the phase

Technique 6.2.8

Every 𝑧∈ℂ can be written 𝑧=|𝑧|𝜇 with |𝜇|=1: take 𝜇=𝑧/|𝑧| if 𝑧≠0, and 𝜇=1 if 𝑧=0. Then 𝜇𝑧=|𝑧|, so multiplying by 𝜇 rotates 𝑧 onto the nonnegative real axis without changing its modulus. In an inner product space, replacing 𝐱 by 𝜇𝐱 changes no norm, since |𝜇|=1, and it turns ⟨𝐱,𝐲⟩ into 𝜇⟨𝐱,𝐲⟩. So in a statement that involves only ‖𝐱‖, ‖𝐲‖, and |⟨𝐱,𝐲⟩|, we may assume that ⟨𝐱,𝐲⟩ is a nonnegative real number, and real-variable arguments apply. The same observation gives

|𝑧|=max|𝜆|=1Re(𝜆𝑧),

since Re(𝜆𝑧)≤|𝜆𝑧|=|𝑧| for |𝜆|=1, with equality at 𝜆=𝜇.

Reach for it when a real-variable argument, such as a discriminant argument, must be run over ℂ, or when Re⟨𝐱,𝐲⟩ and |⟨𝐱,𝐲⟩| must be compared. The canonical example is the second proof of Theorem 6.2.1.

First example. Theorem 6.2.1

Apply Cauchy–Schwarz to a well-chosen inner product

Technique 6.2.21

To prove an inequality between sums or integrals, recognize one side as |⟨𝐱,𝐲⟩| and the other as ‖𝐱‖‖𝐲‖ for some inner product. The work is in the choices. Pick the space and the inner product (the dot product, a weighted dot product, an integral, the Frobenius inner product), and split each term of the quantity to be bounded as a product of two factors, one belonging to 𝐱 and one to 𝐲. A useful move is to insert weights: write 𝑎𝑘𝑏𝑘 as (𝑤𝑘𝑎𝑘)(𝑏𝑘/𝑤𝑘) with 𝑤𝑘>0 chosen so that the resulting norms are quantities you control.

Then check the equality case. Equality holds exactly when one of 𝐱,𝐲 is a multiple of the other, so it tells you whether the bound is sharp and which data attain it. If the data that would attain it violate your constraints, the bound is not sharp, and a different split may do better.

Reach for it when the target has the shape (∑𝑘𝑎𝑘𝑏𝑘)2≤(∑𝑘𝑎𝑘2)(∑𝑘𝑏𝑘2) after renaming, when a linear quantity such as ∑𝑘𝑎𝑘 or ∫𝑓 must be bounded by a quadratic one such as ∑𝑘𝑎𝑘2 or ∫𝑓2, or when a quadratic quantity must be minimized subject to a linear constraint. The canonical example is Proposition 6.2.22.

First example. Proposition 6.2.22

Take an inner product to isolate a coefficient

Technique 6.3.12

If a vector is written as a combination 𝐰=𝑎1𝐯1+⋯+𝑎𝑘𝐯𝑘 of an orthogonal list, take the inner product of both sides with 𝐯𝑗. Linearity in the first slot distributes it over the sum, and orthogonality removes every term except the 𝑗th:

⟨𝐰,𝐯𝑗⟩=∑𝑙=1𝑘𝑎𝑙⟨𝐯𝑙,𝐯𝑗⟩=𝑎𝑗‖𝐯𝑗‖2.

So each coefficient is determined by one inner product, with no reference to the other coefficients. Put 𝐯𝑗 in the second slot; in the first slot it produces ⟨𝐯𝑗,𝐰⟩=𝑎𝑗‖𝐯𝑗‖2, the conjugate.

Reach for it when a vector or a linear relation is expressed through an orthogonal list and you need the coefficients, or need to show that they vanish. It is the inner-product form of Technique 4.1.25: the linear map 𝐱↦⟨𝐱,𝐯𝑗⟩ from 𝑉 to 𝔽 kills every 𝐯𝑙 with 𝑙≠𝑗. The canonical example is Proposition 6.3.13. The coordinate formula Proposition 6.3.18, the Fourier inversion formula (Proposition 6.3.41), and Gram–Schmidt (Algorithm 6.4.14) use it again.

First example. Proposition 6.3.13

Gram matrices

Technique 6.3.31

To study a list 𝐯1,…,𝐯𝑘 in an inner product space, record all the inner products ⟨𝐯𝑗,𝐯𝑖⟩ in its Gram matrix 𝐺. Questions about the list become questions about one matrix: the list is orthonormal if and only if 𝐺=𝐼, orthogonal if and only if 𝐺 is diagonal, and independent if and only if 𝐺 is invertible, and the combination with coefficient vector 𝐜 has squared length 𝐜∗𝐺𝐜. When the vectors are the columns of 𝐴∈𝔽𝑚×𝑛, 𝐺=𝐴∗𝐴, so these become statements about 𝐴∗𝐴.

Reach for it when the hypotheses are about inner products among the vectors of a list (lengths, angles, orthogonality) and the conclusion is about the list itself, or when the product 𝐴∗𝐴 appears. The canonical example is Proposition 6.3.30. In Section 6.5 the normal equations have the coefficient matrix 𝐴∗𝐴, and Proposition 6.3.30 shows that they have a unique solution exactly when the columns of 𝐴 are independent.

First example. Proposition 6.3.30

Projections shrink norms

Technique 6.4.5

Suppose 𝐱=𝐩+𝐪, where 𝐩 lies in a subspace 𝑊 and 𝐪⟂𝑊, as for 𝐩=Pr𝒪︀(𝐱) and 𝐪=𝐱−Pr𝒪︀(𝐱). By Pythagoras,

‖𝐱‖2=‖𝐩‖2+‖𝐪‖2.

So each piece is at most as long as 𝐱. Moreover ‖𝐩‖=‖𝐱‖ exactly when 𝐪=𝟎, that is, when 𝐱∈𝑊, and ‖𝐪‖=‖𝐱‖ exactly when 𝐩=𝟎.

Reach for it when you need an upper bound for a sum ∑𝑗|⟨𝐱,𝐮𝑗⟩|2 over an orthonormal list, which is ‖Pr𝒪︀(𝐱)‖2, or more generally when the quantity to be bounded is the length of one orthogonal piece of a vector whose length you know. The equality case turns the bound into a test for membership in 𝑊. The canonical example is Bessel’s inequality (Theorem 6.3.24). In Theorem 6.4.33 the error 𝐯−Pr𝑊(𝐯) turns out to be the piece of 𝐯−𝐰 orthogonal to 𝑊, for every 𝐰∈𝑊; and in infinite dimensions (Section 15.3) Bessel’s inequality survives where Parseval’s identity needs more work.

First example. Theorem 6.3.24

Recognize a projection by its two conditions

Technique 6.4.7

To show that a vector 𝐩 is the projection of 𝐯 onto 𝑊, do not compute the projection. Check the two conditions of Theorem 6.4.6: 𝐩∈𝑊, and 𝐯−𝐩⟂𝑊. By Proposition 6.3.9(c), the second condition only has to be checked against a spanning list of 𝑊. Uniqueness then does the rest, much as a two-sided inverse is recognized by checking two products (Technique 2.5.16).

Reach for it when a formula or a vector is proposed as a projection, when projections onto related subspaces are compared, and when you need to know that a projection does not depend on the choices made to compute it. The canonical example is Corollary 6.4.8. Later examples are the projection onto 𝑊⟂ (Proposition 6.4.29), the recognition of orthogonal projections among all linear maps (Proposition 6.4.30), and the projection formula of Section 6.5.

First example. Corollary 6.4.8

Perturb a minimizer

Technique 6.5.6

Suppose 𝐱̂ minimizes a real-valued quantity 𝑓(𝐱) over a vector space. Then for every direction 𝐡, the function 𝑡↦𝑓(𝐱̂+𝑡𝐡) of a real variable 𝑡 has a minimum at 𝑡=0. When 𝑓 is the squared norm of a vector that depends linearly (or affinely) on 𝐱, this function is a quadratic polynomial 𝛼+𝛽𝑡+𝛾𝑡2 with 𝛾≥0, and a minimum at 𝑡=0 forces the linear coefficient 𝛽 to vanish: if 𝛽≠0, a small 𝑡 of the opposite sign makes 𝛽𝑡+𝛾𝑡2<0. Doing this for every 𝐡 gives an equation that 𝐱̂ must satisfy. Choosing 𝐡 cleverly, usually equal to the vector you want to show is zero, turns “𝛽=0” into a statement ‖𝐬‖2=0 (Technique 6.1.36). In the other direction, if the linear coefficient vanishes for every 𝐡, the expansion shows that 𝑓(𝐱̂+𝐡)≥𝑓(𝐱̂), so 𝐱̂ is a minimizer.

This is “the derivative vanishes at a minimum” without derivatives, and with the converse built in. Reach for it when a vector is defined as the minimizer (or maximizer) of something and you need an equation it satisfies. The canonical example is the second proof of Theorem 6.5.5. The same move gives the minimal-norm solution in Section 6.5.7, and in Section 12.3 it shows that a maximizer of ⟨𝑇𝐯,𝐯⟩ over unit vectors is an eigenvector.

First example. Theorem 6.5.5

Find the adjoint by isolating the input

Technique 6.6.11

To compute 𝑇∗𝐰, start from ⟨𝑇𝐯,𝐰⟩, substitute the formula for 𝑇, and rearrange until the expression reads ⟨𝐯,𝐮⟩, with 𝐯 alone in the first slot and 𝐮 built from 𝐰 only. Then 𝑇∗𝐰=𝐮 by Proposition 6.6.9. Scalars that move into the second slot pick up a bar. The same move proves identities: to show that a given map 𝑆 is 𝑇∗, check ⟨𝑇𝐯,𝐰⟩=⟨𝐯,𝑆𝐰⟩ for all 𝐯 and 𝐰, without ever writing a formula for 𝑇∗. This is the analogue for adjoints of Technique 2.5.16 and Technique 6.4.7.

Reach for it when computing the adjoint of an explicit map, and when proving identities such as (𝑅𝑇)∗=𝑇∗𝑅∗. The canonical example is Example 6.6.13.

First example. Example 6.6.13

Move an operator across the inner product

Technique 6.6.20

When a map acts on one argument of an inner product, move it to the other argument as its adjoint: ⟨𝑇𝐯,𝐰⟩=⟨𝐯,𝑇∗𝐰⟩ and ⟨𝐰,𝑇𝐯⟩=⟨𝑇∗𝐰,𝐯⟩. Do this so that the map lands on the vector you know more about, or so that two vectors you want to compare end up in the same inner product. Typical outcomes:

  • “𝐰 is orthogonal to 𝑇𝐯 for every 𝐯” becomes “𝑇∗𝐰 is orthogonal to every vector”, so 𝑇∗𝐰=𝟎;
  • ⟨𝑇∗𝑇𝐯,𝐯⟩ becomes ⟨𝑇𝐯,𝑇𝐯⟩=‖𝑇𝐯‖2, which is where Technique 6.1.36 takes over;
  • a hypothesis on 𝑇 becomes a statement about 𝑇∗, or, for a self-adjoint 𝑇, about 𝑇 itself acting on the other vector.

Reach for it whenever an inner product contains 𝑇𝐯 and the hypotheses or the goal concern 𝑇∗, or concern the vector in the other slot. The canonical example is part (a) of Theorem 6.6.21. In Chapter 8 the same move shows that the eigenvalues of a self-adjoint operator are real and that its eigenvectors for different eigenvalues are orthogonal.

First example. Theorem 6.6.21

Pass to orthonormal coordinates

Technique 6.7.2

A statement about finitely many vectors 𝐯1,…,𝐯𝑘 of an inner product space 𝑉 involves only 𝑊=span(𝐯1,…,𝐯𝑘), which is finite-dimensional even when 𝑉 is not. Choose an orthonormal basis 𝒪︀ of 𝑊 (Theorem 6.4.20). By Theorem 6.3.22, the coordinate map 𝐯↦[𝐯]𝒪︀ preserves inner products, so 𝑊 behaves exactly like 𝔽𝑟 with the dot product, where 𝑟=dim𝑊≤𝑘. The list becomes the columns of a matrix 𝐵∈𝔽𝑟×𝑘 with 𝐵∗𝐵=𝐺, the Gram matrix of the list, and the statement can be checked with entries, sums of squares, and determinants.

Reach for it when a statement about a fixed finite list is easy to verify in 𝔽𝑟 but awkward without coordinates, or when you need a matrix whose Gram matrix is prescribed. The canonical example is the second formula of Example 6.7.1. It also shows that Gram determinants are nonnegative (Exercise 6.7.11) and produces the matrix 𝐵 in Problem 6.17. It does not apply as stated to a map on an infinite-dimensional 𝑉, since the map need not preserve 𝑊.

First example. Example 6.7.1

7Eigenvalues and diagonalization

Compare degrees and leading coefficients

Technique 7.1.6

To show that a polynomial is zero, or that an identity between polynomials cannot hold, compare the degrees of the two sides, and when the degrees agree, their leading coefficients. Over a field the degree of a product is the sum of the degrees (Proposition 7.1.4), and a sum has degree at most the larger of the two degrees, with equality when they differ (Proposition 1.2.18). The typical use: if 𝑠𝑔=ℎ with 𝑠≠𝟎 and degℎ<deg𝑠, then 𝑔=𝟎, because a nonzero multiple of 𝑠 has degree at least deg𝑠.

Reach for it in uniqueness statements about polynomials (quotients and remainders, greatest common divisors, and later minimal polynomials), and to show that a polynomial is constant or zero. Leading coefficients settle what degrees alone cannot, for instance that two monic polynomials that divide each other are equal. The canonical example is the uniqueness half of Theorem 7.1.14. Proposition 1.5.24 was an earlier instance.

First example. Theorem 7.1.14

Look for invariant subspaces among kernels and images of commuting operators

Technique 7.2.31

To find subspaces that 𝑇 maps into themselves, look for operators 𝑆 with 𝑆𝑇=𝑇𝑆: the kernel and the image of each such 𝑆, and each eigenspace of 𝑆, are 𝑇-invariant. Polynomials in 𝑇 always commute with 𝑇 (Proposition 7.2.27), so ker(𝑇−𝜆id)𝑘, im(𝑇−𝜆id)𝑘, and ker𝑝(𝑇) are always available. Conversely, if the operators at hand commute, an eigenspace of one is a space on which the others act, and the problem can often be reduced to that smaller space.

Reach for it when a problem involves two operators that commute, or when you need an invariant subspace of 𝑇 and have a polynomial identity for 𝑇. The canonical example is Proposition 7.2.30. Generalized eigenspaces ker(𝑇−𝜆id)𝑘 (Section 10.1) and common eigenvectors of commuting operators (Section 7.6) rest on the same observation.

First example. Proposition 7.2.30

Compare 𝐴𝐵 and 𝐵𝐴

Technique 7.3.21

The products 𝐴𝐵 and 𝐵𝐴 are close relatives. If 𝐴 is invertible, they are similar: 𝐵𝐴=𝐴−1(𝐴𝐵)𝐴. In general they are not necessarily similar, but they still share the characteristic polynomial (when square) and the nonzero eigenvalues (always). Three ways to transfer information between them are useful. Conjugate by 𝐴 when 𝐴 is invertible, and reduce the general case to it by a polynomial identity in a perturbation parameter. Or embed both products in block matrices of twice the size that are similar. Or transport eigenvectors directly: if 𝐴𝐵𝐯=𝜆𝐯 with 𝜆≠0, then 𝐵𝐯≠𝟎 and 𝐵𝐴(𝐵𝐯)=𝜆𝐵𝐯.

Reach for it whenever a question involves a product in both orders, such as 𝐴𝖳𝐴 and 𝐴𝐴𝖳, or 𝐮𝐯𝖳 and 𝐯𝖳𝐮. The canonical example is Proposition 7.3.22.

First example. Proposition 7.3.22

Krylov sequences must become dependent

Technique 7.3.28

In a finite-dimensional space, the sequence 𝐯,𝑇𝐯,𝑇2𝐯,… eventually becomes dependent, and the first dependence is a monic polynomial 𝑝 with 𝑝(𝑇)𝐯=𝟎 and no nonzero polynomial of smaller degree killing 𝐯 (Proposition 7.2.35). This converts a question about 𝑇 into a question about one polynomial: factor 𝑝, and use the factors to build vectors. If 𝑝=𝑓𝑞 with deg𝑓≥1, then 𝐰=𝑞(𝑇)𝐯 is nonzero and 𝑓(𝑇)𝐰=𝟎, so a factor 𝑓=𝑥−𝜆 produces an eigenvector, and a quadratic factor produces a two-dimensional invariant subspace (Theorem 7.3.31).

Reach for it when you need an eigenvector or a small invariant subspace and want to avoid determinants, or when 𝑉 is infinite-dimensional but some Krylov subspace is not. The canonical example is the second proof of Theorem 7.3.27.

First example. Theorem 7.3.27

Complexify, then take real and imaginary parts

Technique 7.3.35

To prove something about an operator 𝑇 on a real vector space, pass to 𝑇ℂ on 𝑉ℂ, where the FTA is available, use a complex result (an eigenvector, later a triangular form), and then split the conclusion into real and imaginary parts. A complex eigenvector 𝐮+𝑖𝐯 for 𝑎+𝑏𝑖 becomes the pair of real equations (7.3.3), and conjugation exchanges 𝜆 with 𝜆.

Reach for it when a statement about real operators is easy over ℂ, and the obstruction over ℝ is only that 𝑝𝑇 may have nonreal roots. The canonical example is the second proof of Theorem 7.3.31.

First example. Theorem 7.3.31

Diagonalize, solve, conjugate back

Technique 7.4.22

If 𝐴=𝑆𝐷𝑆−1 with 𝐷 diagonal, then 𝐴𝑘=𝑆𝐷𝑘𝑆−1, and more generally every expression built from 𝐴 by sums, products, and scalar multiples is 𝑆(⋯)𝑆−1 with 𝐷 in place of 𝐴. Diagonal matrices are computed entry by entry, so a problem about 𝐴 splits into 𝑛 problems about scalars. The recipe: diagonalize; solve the problem for 𝐷, one diagonal entry at a time; conjugate back by 𝑆. In operator language, pass to eigenbasis coordinates, where 𝑇 is 𝑛 independent scalings, solve there, and translate back.

Reach for it when a problem involves powers or polynomials of a matrix (closed forms for 𝐴𝑘, square roots, 𝑝(𝐴)), a linear recurrence 𝐱𝑘+1=𝐴𝐱𝑘, or a linear differential equation 𝐱′=𝐴𝐱. If 𝐴 is not diagonalizable, the same recipe works with a triangular or Jordan form in place of 𝐷 (Section 7.5, Section 10.3), at the price of harder computations with that form. The canonical example is Proposition 7.4.23.

First example. Proposition 7.4.23

Test an identity on eigenvectors

Technique 7.4.25

To show that two operators built from a diagonalizable 𝑇 are equal, such as 𝑝(𝑇)=0 or 𝑆=𝑞(𝑇), it is enough to show that they agree on each vector of an eigenbasis. On an eigenvector 𝐯 with eigenvalue 𝜆, every polynomial in 𝑇 acts as the scalar 𝑝(𝜆) (Proposition 7.2.28), so the check becomes an identity between scalars, one eigenvalue at a time. This is Technique 2.2.7 with the most convenient basis.

Reach for it when the hypothesis says “diagonalizable” and the claim is an identity between polynomials in 𝑇, or between 𝑇 and another operator with the same eigenvectors. The canonical example is Proposition 7.4.26. Without diagonalizability the method fails: the shear 𝐽 satisfies 𝑝(𝐽)𝐯=𝑝(1)𝐯 on its only eigenvector line, but (𝐽−𝐼) kills that line without being 0.

First example. Proposition 7.4.26

Build a flag of invariant subspaces

Technique 7.5.4

To find a basis in which 𝑇 is upper triangular, look for nested invariant subspaces of every dimension instead of for matrix entries (Proposition 7.5.2). The flag can be built from the bottom (first an eigenvector, then a vector sent into the span of it and itself, and so on) or from the top (a large invariant subspace, then invariant subspaces inside it). Any basis adapted to the flag will do, so the vectors can afterwards be changed freely within the flag, for instance orthonormalized.

Reach for it whenever a statement is about triangular matrices of an operator, both to produce them and to use them: “[𝑇]ℬ︀ is upper triangular” is the statement “𝑇 maps span(𝐛1,…,𝐛𝑗) into itself for every 𝑗”, which survives any operation that preserves these spans. The canonical example is the second proof of Theorem 7.5.13. Later uses: Schur’s theorem (Theorem 7.5.18), where Gram–Schmidt keeps the flag, and simultaneous triangularization of commuting operators (Section 7.6).

First example. Theorem 7.5.13

Induction on dimension via an invariant subspace

Technique 7.5.12

To prove that every operator on every finite-dimensional space (of some kind) has a property, induct on dim𝑉. In the inductive step, find a 𝑇-invariant subspace 𝑈 with {𝟎}≠𝑈≠𝑉, apply the induction hypothesis to an operator on a smaller space built from 𝑈, and glue the pieces with the block triangular form of Proposition 4.5.35. The smaller operator can be

  • the restriction 𝑇↾𝑈, an operator on 𝑈 because 𝑈 is invariant;
  • the compression of 𝑇 to a complement 𝑊 of 𝑈 (Lemma 7.5.11), or to 𝑈⟂ when there is an inner product;
  • the quotient operator 𝑇/𝑈 on 𝑉/𝑈 (Proposition 4.6.32), if quotients are available.

The hypothesis applies only to operators, so whatever is passed down must map the smaller space into itself; a restriction to a subspace that is not invariant does not qualify (Exercise A.2.13). The invariant subspace usually comes from an eigenvector, which is why such inductions tend to need ℂ, or from a kernel or image of a polynomial in 𝑇 (Technique 7.2.31).

Reach for it for existence statements about bases adapted to an operator: triangular, block triangular, orthonormal and triangular, diagonal. The canonical example is Theorem 7.5.13. Later uses: Schur’s theorem (Theorem 7.5.18), the spectral theorems (Section 8.2), and the structure of nilpotent operators (Section 10.3).

First example. Theorem 7.5.13

Prove it for triangular matrices first

Technique 7.5.23

If a statement about an operator 𝑇 (or a square matrix 𝐴) does not change under change of basis (or similarity), it is enough to prove it for an upper-triangular matrix of 𝑇, which exists over ℂ (Theorem 7.5.13), or over any field once the characteristic polynomial splits. Triangular matrices are easy to compute with: products, powers, inverses, and polynomials of upper-triangular matrices are upper triangular, and their diagonals are computed entry by entry (Proposition 2.4.36, Exercise 7.5.34), while the diagonal itself is the list of eigenvalues.

Reach for it for identities that involve eigenvalues together with similarity invariants: trace, determinant, the characteristic polynomial, tr(𝐴𝑘), invertibility, nilpotence. It is a special case of Technique 4.5.33. Over ℝ, either check that the characteristic polynomial splits, or regard the real matrix as a complex one first. The canonical example is Theorem 7.5.22. Later it proves the Cayley–Hamilton theorem (Section 7.6).

First example. Theorem 7.5.22

Lagrange interpolation in 𝑇

Technique 7.6.13

If 𝑞(𝑇)=0 for 𝑞=(𝑥−𝑐1)⋯(𝑥−𝑐𝑘) with distinct 𝑐𝑖, evaluate the Lagrange polynomials 𝐿𝑖 of the nodes 𝑐𝑖 at 𝑇. The operators 𝑃𝑖=𝐿𝑖(𝑇) satisfy ∑𝑃𝑖=id, 𝑃𝑖𝑃𝑗=0 for 𝑖≠𝑗 (as 𝑞∣𝐿𝑖𝐿𝑗), and 𝑃𝑖2=𝑃𝑖, and 𝑃𝑖 is the projection onto 𝐸𝑐𝑖 along the other eigenspaces. More generally, for any values 𝑑1,…,𝑑𝑘, the interpolating polynomial 𝑝=∑𝑑𝑖𝐿𝑖 gives an operator 𝑝(𝑇) that acts as 𝑑𝑖 on 𝐸𝑐𝑖.

Reach for it to write spectral projections as polynomials in 𝑇, to build operators with a prescribed action on each eigenspace (square roots, inverses, operators commuting with 𝑇), or to decompose a vector along the eigenspaces without finding an eigenbasis. The canonical example is the first proof of Proposition 7.6.12. Later: the spectral decomposition (Section 8.2).

First example. Proposition 7.6.12

Use an annihilating polynomial

Technique 7.6.17

When an operator satisfies a polynomial identity 𝑞(𝑇)=0, factor 𝑞 and read off:

  • every eigenvalue of 𝑇 is a root of 𝑞 (Proposition 7.2.28), and the minimal polynomial divides 𝑞;
  • if 𝑞 is a product of distinct linear factors, 𝑇 is diagonalizable (Theorem 7.6.15);
  • if 𝑞(0)≠0, then 𝑇 is invertible and 𝑇−1 is a polynomial in 𝑇 (Corollary 7.6.9);
  • powers 𝑇𝑘 reduce to polynomials of degree less than deg𝑞, by dividing 𝑥𝑘 by 𝑞.

Reach for it whenever the hypothesis is an identity such as 𝐴2=𝐴, 𝐴3=𝐴, 𝐴𝑘=𝐼, or 𝑇2=3𝑇−2id, and whenever the characteristic polynomial is available, since it always annihilates 𝑇 (Theorem 7.6.20). Watch the field: 𝑥2−1=(𝑥−1)(𝑥+1) has distinct roots only if 1+1≠0, and 𝑥2+1 splits over ℂ and over 𝔽5 but not over ℝ or 𝔽3. The canonical example is Theorem 7.6.15.

First example. Theorem 7.6.15

Perturbation and density

Technique 7.6.23

To prove an identity for every matrix, first prove it for matrices in general position (diagonalizable, invertible, with distinct eigenvalues), where it is easy. Then move an arbitrary matrix 𝐴 into general position along a path 𝐴𝑡 that depends polynomially on a parameter 𝑡, with 𝐴0=𝐴 and 𝐴𝑡 in general position for all but finitely many 𝑡. If both sides of the identity are polynomials in the entries, the difference is a polynomial in 𝑡 that vanishes at infinitely many points, hence identically, and in particular at 𝑡=0. With analysis available, the same idea reads: the general-position matrices are dense, and both sides are continuous.

Reach for it when a statement is clear for diagonalizable or invertible matrices and both sides are polynomial in the entries, over ℂ or another infinite field. It fails over finite fields, where there is no room to perturb. The canonical example is the fourth proof of Theorem 7.6.20. Compare Technique 5.3.18, which is the same move with 𝐴+𝑡𝐼𝑛 to reach invertible matrices.

First example. Theorem 7.6.20

Look at the largest coordinate

Technique 7.6.37

To bound an eigenvalue 𝜆 with 𝐴𝐯=𝜆𝐯, look at the row of this equation belonging to a coordinate 𝑣𝑖 of largest absolute value. After dividing by 𝑣𝑖, every other coordinate enters only through the ratio |𝑣𝑗/𝑣𝑖|≤1, so the row becomes an inequality involving the entries of 𝐴 alone.

Reach for it when you need a bound on eigenvalues in terms of entries, or to show that a matrix with a dominant diagonal, or with nonnegative rows summing to 1, is invertible or has its eigenvalues in a given region. The canonical example is Theorem 7.6.36. Later: |𝜆|≤1 for stochastic matrices (Section 11.1) and the Perron–Frobenius theorem (Section 11.2).

First example. Theorem 7.6.36

8The spectral theorems

Shift by a scalar

Technique 8.1.15

A statement about the kernel of an operator becomes a statement about eigenvectors once it is applied to 𝑇−𝜆id, because 𝐸𝜆(𝑇)=ker(𝑇−𝜆id) (Definition 7.2.13). So prove the statement for kernels, check that the hypotheses survive the shift 𝑇↦𝑇−𝜆id, and apply it to the shifted operator. Hypotheses that survive include being normal, being self-adjoint when 𝜆 is real, commuting with a fixed operator, and being upper triangular in a fixed basis.

Reach for it when you want a fact about every eigenvalue and the case 𝜆=0 is easier to see. The canonical example is Theorem 8.1.16, which is ker𝑇=ker𝑇∗ applied to 𝑇−𝜆id.

First example. Theorem 8.1.16

Apply a function to the eigenvalues

Technique 8.2.25

To build an operator that does to 𝑇 what a scalar function does to a number (a square root, an inverse, an exponential, the sign, a cutoff that keeps only large eigenvalues), keep the eigenspaces of 𝑇 and apply the function to the eigenvalues: 𝑓(𝑇)=∑𝑗𝑓(𝜆𝑗)Pr𝐸𝜆𝑗, or 𝑓(𝐴)=𝑈𝑓(𝐷)𝑈∗. Identities between such operators reduce to identities between numbers, one eigenvalue at a time (Proposition 8.2.24), which is Technique 7.4.25 in its strongest form.

Reach for it when the hypothesis says normal or self-adjoint and the problem asks for an operator with prescribed algebraic behavior: “find 𝑆 with 𝑆2=𝑇”, “show that 𝑇 has a self-adjoint inverse square root”, “solve 𝐱′=𝐴𝐱”. For a diagonalizable but not normal operator the same recipe works with 𝑆𝐷𝑆−1 in place of 𝑈𝐷𝑈∗ (Technique 7.4.22), but the result is not normal in general. The canonical example is the square root (Example 8.2.26); Section 8.3 shows that this square root is the only self-adjoint square root with nonnegative eigenvalues.

First example. Example 8.2.26

Sandwich between square roots

Technique 8.3.19

Two positive operators 𝐴 and 𝐵 do not commute in general, so 𝐴𝐵 need not be positive. Split 𝐴=𝐴𝐴 and move one factor to the other side: the operator 𝐴𝐵𝐴 is always positive, since ⟨𝐴𝐵𝐴𝐯,𝐯⟩=⟨𝐵𝐴𝐯,𝐴𝐯⟩≥0, and it is close to 𝐴𝐵. It has the same characteristic polynomial (by Proposition 7.3.22, applied to 𝐴 and 𝐴𝐵), and if 𝐴 is invertible it is similar to 𝐴𝐵. In the same way, when 𝐵 is positive definite, the congruence 𝑋↦𝐵−1/2𝑋𝐵−1/2 turns the pair (𝐴,𝐵) into (𝐶,id) with 𝐶=𝐵−1/2𝐴𝐵−1/2 positive, and a question about two operators becomes a question about the eigenvalues of one.

Reach for it when a statement involves two positive operators (a product, a comparison 𝐴⪯𝐵, det(𝐴+𝐵), tr(𝐴𝐵)) and the case of a single operator is easy by Technique 8.2.25. The canonical example is Proposition 8.3.20.

First example. Proposition 8.3.20

ASets, functions, and proofs

Pigeonhole

Technique A.1.21

If a function goes from a finite set to a smaller one, two inputs share a value (Theorem A.1.17). In practice: more than 𝑛 objects in 𝑛 boxes put two objects in one box. The skill is in choosing the boxes, which are often the values of some quantity that can take only 𝑛 values, such as a remainder mod 𝑛 or an element of a finite field or of a finite set of matrices.

Reach for it when a statement claims that some coincidence or repetition must occur, but gives no way to find it. A typical consequence is that a sequence in a finite set repeats, so an invertible operation applied repeatedly eventually returns to the start. The canonical example is Example A.1.22; the cycle decomposition of permutations (Section 5.2) uses the same idea.

First example. Example A.1.22

Strengthen the induction hypothesis

Technique A.2.5

If the induction step fails because 𝑃(𝑛) is too weak to imply 𝑃(𝑛+1), replace 𝑃(𝑛) by a stronger statement 𝑃′(𝑛) that implies it and that does carry from 𝑛 to 𝑛+1. The stronger statement is harder to prove, but the hypothesis you get to use is stronger too, and often the step becomes easy.

Reach for it when an induction step needs information about the smaller case that 𝑃(𝑛) does not record. Typical strengthenings: replace a bound by a sharper one that depends on 𝑛; carry along an extra property of the object being built, as Gram–Schmidt carries the equality of the spans of the first 𝑘 inputs and outputs (Section 6.4); or prove a statement for all objects of size 𝑛 rather than for one. The canonical example is Example A.2.6.

First example. Example A.2.6

Classify by a complete invariant

Technique A.3.13

To decide when two objects are equivalent, find a quantity that equivalent objects share (an invariant), and then prove that it is complete. To prove that 𝑥 and 𝑥′ are not equivalent, one invariant on which they differ is enough (Technique 4.5.29). To prove that they are equivalent, completeness is needed, and it is usually proved by reducing every object to a normal form that depends only on the invariant: if both 𝑥 and 𝑥′ are equivalent to the same normal form, they are equivalent to each other by symmetry and transitivity.

Reach for it whenever a question asks “when are these the same up to …?” or “how many essentially different … are there?”. The canonical example is Theorem 3.5.27, where row and column operations reduce every matrix to (𝐼𝑟000) with 𝑟 the rank.

First example. Theorem 3.5.27

Apply Zorn’s lemma

Technique A.4.5

To prove that an object with some property exists in a possibly infinite-dimensional setting:

  1. Let 𝑃 be the set of partial objects (independent sets, subspaces meeting 𝑈 only in 𝟎, maps defined on part of the space, …), ordered by inclusion or by extension. Check that 𝑃≠∅.

  2. Show that every nonempty chain in 𝑃 has an upper bound in 𝑃. The candidate is almost always the union. The work is to show that the union is still in 𝑃, and Lemma A.4.6 does most of it.

  3. Let 𝑚 be a maximal element. Show that 𝑚 is a complete object, by contradiction: if it were not, enlarge it by one vector (or one point), and check that the enlargement is still in 𝑃.

Reach for it whenever a finite-dimensional proof proceeds by “add one more until done”. The canonical example is Theorem A.4.7; Section 15.1 applies it to linearly independent sets.

First example. Theorem A.4.7

BComplex numbers

Conjugate the equation

Technique B.1.3

Conjugation respects sums, products, and inverses, and it fixes real numbers (Proposition B.1.2). So conjugating both sides of a true equation gives another true equation, in which each complex number is replaced by its conjugate and each real number is unchanged. Two uses come up again and again.

  • To get a second solution of an equation with real coefficients from a first one, conjugate the first. The canonical example is Proposition B.1.4: the nonreal roots of a real polynomial come in pairs 𝑧,𝑧.
  • To show that a complex quantity 𝑞 is real, show that 𝑞=𝑞; to show that it is purely imaginary, show that 𝑞=−𝑞 (Proposition B.1.2(c)).

Reach for it when real coefficients meet complex unknowns, as when a real matrix acts on ℂ𝑛, or when a quantity built symmetrically from 𝑧 and 𝑧 ought to be real. The second use shows that the eigenvalues of a self-adjoint operator are real (Proposition 8.1.1).

First example. Proposition B.1.4

Square the modulus

Technique B.1.9

The modulus is a square root, and square roots do not expand. Its square does: |𝑧|2=𝑧𝑧 is a product, which can be multiplied out with the field axioms and conjugated term by term with Proposition B.1.2. Nothing is lost by squaring, since moduli are nonnegative: for real 𝑠,𝑡≥0, 𝑠=𝑡 if and only if 𝑠2=𝑡2, and 𝑠≤𝑡 if and only if 𝑠2≤𝑡2. So to prove an identity or an inequality between moduli, square both sides, write each |𝑢|2 as 𝑢𝑢, and expand.

Reach for it whenever moduli of sums or products appear. The canonical example is |𝑧𝑤|=|𝑧||𝑤| in Proposition B.1.8, where |𝑧𝑤|2=𝑧𝑤𝑧𝑤=|𝑧|2|𝑤|2. With ‖𝐯‖2=⟨𝐯,𝐯⟩ in place of |𝑧|2=𝑧𝑧, the same move expands norms in inner product spaces (Proposition 6.1.29).

First example. Proposition B.1.8

Use polar form for products, powers, and roots

Technique B.1.21

Addition is easy in the form 𝑎+𝑏𝑖. Multiplication is easy in polar form, where moduli multiply and arguments add (Proposition B.1.17). So when a problem is about products, quotients, powers, or roots of complex numbers, or about rotations of the plane, write the numbers as 𝑟𝑒𝑖𝜃. The problem then splits into a question about positive real numbers (the moduli) and a question about angles modulo 2𝜋 (the arguments), and each is usually easy. Converting back to the form 𝑎+𝑏𝑖 costs a cosine and a sine.

Reach for it to compute a high power, to solve 𝑧𝑛=𝑤, or to see what a product does geometrically. The canonical example is the solution of 𝑧𝑛=𝑤 in Theorem B.1.26.

First example. Theorem B.1.26