In this article, I want to explain how I’ve been turning mathematical proofs into flashcards that you can review with spaced repetition to keep them fresh in your memory over time. We'll cover the theory behind flashcard formulation, mistakes I made when I was starting out and more!
If you find this topic interesting, consider watching my video and interview with Paul Raymond-Robichaud. He's a mathematician working at the foundations of theoretical physics and all of these ideas about how to structure math flashcards originate with him, not me!
Spaced Repetition for Mathematics: A Quick Summary - YouTube
Learning Math with Spaced Repetition: A Discussion with Paul Raymond-Robichaud - YouTube
While this article stands alone, it's part of a series I wrote called Mathematics for the 21st Century: An Introduction to Logic and Proof which you might be interested in.
What's Wrong with Textbook Proofs?
17th Century math proofs and formulas were written in prose. They were difficult to read and it was easy to make mistakes when writing them. Here's an example from Isaac Newton's Principia side-by-side with a proof of the irrationality of the square root of two you might find in a typical modern textbook.
Notice that they are very similar in terms of style - both are written in prose interspersed with some variables and equations.
In his paper How to Write a 21st Century Proof computer scientist Leslie Lamport criticises this style of writing proofs.
They are hard to understand because when reading a sentence in a proof it often isn't immediately clear whether it is justifying a previous statement or introducing a new one. Sometimes you have to read the entire proof just to understand the first sentence!
They encourage sloppiness that leads to errors. Leslie gives an example from Spivak's Calculus which is intended to be an introductory calculus textbook, but contains mistakes and confuses the reader with ambiguous assertions. “Mathematicians think that the logic of the proofs they write is completely obvious, but our examination of Spivak’s proof shows that they are wrong. Students are expected to learn how to write logically correct proofs from examples that, when read literally, are illogical.”
There is a tradeoff between making proofs more detailed and increasing complexity. Reducing ambiguity and making sure all of your statements are justified requires making your proof longer and consequently harder to understand.
Common Proof Flashcard Mistakes
A common mistake people make is to copy and paste prose proofs like the ones above directly from their textbook into a flashcard and try to memorise it line by line using cloze deletions.
The problem is that textbook proofs are quite inconvenient to remember with SRS. In addition to the problems pointed out by Leslie Lamport:
Prose is complex and hard to remember.
Clozing sentences in prose paragraphs doesn't support proof reuse.
Textbook proofs tend to be long and don't break things down into enough sub-theorems.
Textbooks can't have the best proof for your specific prior knowledge because they are generally intended to be self-contained and targeted at a particular area. You might prefer more general proofs, or proofs which reuse knowledge from other mathematical areas you've learned.
How to Write a Memorable Proof
We want to write proofs for the 21st Century so we will write hierarchically structured formal proofs in RemNote instead.
If you follow these two principles your proofs will be:
More rigorous and correct.
Modular and reusable.
Shorter and easier to memorise.
Formal
By formal I mean: concise, unambiguous, inspired by formal logic. Here's a simple example from set theory.
I like borrowing the names of so-called "proof tactics" (like by contra
) from Lean because they are concise and keep the language I use across proofs consistent. I have some other random style choices I use too like using the word suppose
instead of assume
for negation introduction. It's just personal choice. As you learn more math you'll also have to contend with notation overlaps and choose your own notation for consistency.
Every step in the proof should be something proven previously or the application of a rule of inference you have already mastered. The goal is to create new knowledge by reasoning about the implications of facts you already know. If you are familiar with language learning theory, this is similar to the i+1 part of Stephen Krashen's Input hypothesis where i refers to your prior knowledge and the +1 part refers to the new knowledge you are creating or learning in the flashcard. The point is that you are only adding one unknown per flashcard.
You can refine your style over time. Once you get familiar with these kinds of proofs you can add shortcuts, eg. skipping over simple assumptions and omitting extra details. You might prefer the following if you really want to keep things concise:
The goal is to train ourselves to think in terms of logic and natural deduction rules, but express ideas to other mathematicians in plain English. This allows us to reason precisely without sacrificing our ability to express ideas using higher-level explanations. In my experience so far, if you can write a proof formally like this, expressing it in plain English to share with another mathematician is no trouble.
“The best way I know to eliminate errors is to imagine that there is a curious child sitting next to us. Every time we write an assertion, the child asks: Why?” - Leslie Lamport
Hierarchical structure
“Computer science offers a standard way to handle complexity: hierarchical structure.” - Leslie Lamport
Inspired by Leslie Lamport's emphasis on Hierarchical Structure, we will use RemNote's graph structure and references to break down proofs into chunks and structure them as trees of bullets.
Instead of trying to memorise extremely long and complex proofs with lots of duplication, we'll use a divide and conquer strategy - we'll split them up into theorems and sub-theorems which are reusable chunks we can use as reasoning shortcuts in other proofs. The key to this is the ability to abstract the sub-theorems so that they are reusable. Reusability is valuable to us because it reduces our review burden significantly - we only need one proof flashcard to memorise a sub-theorem, then we can just make references to it in other proofs without needing to spell out in detail every time why it's true.
Notice in the proof above how the second line is a reference to another proof from first order logic. Set theory builds directly on top of first order logic, so all of those proofs can be reused to justify the proofs in set theory. If every step of the proof is just a trivial application of something you have already learned, it gives your brain no choice but to understand it. New knowledge slots in effortlessly to what you already know.
It's exactly like the DRY ("Don't Repeat Yourself") principle in software development. In the same way that programmers try to write programs composed of reusable functions rather than an enormous list of statements, we want to write proofs that are divided into small self-contained sub-theorems that we can keep referring back to in our higher-level proofs.
More Involved Example
A proof of part of one of De Morgan's laws. The negation of a conjunction implies the disjunction of the negations.
Here is the first attempt. It will look strange and ugly if you are reading this without having gone through my Mathematics for the 21st Century: An Introduction to Logic and Proof series because the way I like to write my proofs is inspired by the interactive theorem proving language Lean (a programming language for math). In general this works well, but as soon as you start nesting assumptions the proof becomes a mess!
🚫 The steps feel like symbol-shuffling rather than meaningful
🚫 It looks like code to be read by a machine rather than a human
🚫 There is quite a bit of nesting which adds complexity
🚫 It's too long
Here is my revised proof. Immediately you can tell it's much shorter. Extra details are tucked away inside references. If I need more detail I can hover over the hyperlinks to inspect the details of those proofs. Otherwise they remain hidden and I just have a high level overview.
✅ It’s very short
✅ Each step feels meaningful making it easier to remember
✅ It reuses other proofs I have in my collection rather than duplicating
Proof Reuse
Line 1. contains a reference to my proof of the contrapositive theorem.
Line 3. contains a reference to my proof of:
See how that proof then references other more fundamental proofs. Because each subproof is its own independent flashcard, we assume that we can recall the details if necessary and just rely on the abstraction in higher level proofs to make them shorter and easier to remember.
Proof Reformulation
Your proofs should always be evolving in the light of new knowledge. The proof above is a perfect example - it wasn't immediately clear to me that I could use the Contrapositive theorem to create a better proof. It was only after reviewing my other cards for a while and chatting with Paul that I realised I could shorten it.
One thing I found very interesting about how Paul uses SRS is that 90% of his new cards are created by rewriting his old cards. An important part of this process for him is constantly asking the question: "How can I generalise this?". An example of generalising your math knowledge could be recognising that many of the proofs in propositional logic and set theory are effectively the same. You could generalize those proofs by expressing them in terms of boolean algebra instead. Now you have a set of proofs with a wider "reach" than your original proofs because they apply to any mathematical domain which satisfies the criteria to be a boolean algebra.
Community
A fully comprehensive text on mathematics and SRS is not really possible. I cannot cover and discuss all cases because I don't have much knowledge beyond the basics. You need to try on your own and become a part of a community of people interested in using SRS for math to bounce ideas off of.
I personally benefitted a lot from being able to interview Paul (Learning Math with Spaced Repetition: A Discussion with Paul Raymond-Robichaud - YouTube) and send him questions about flashcard formulation when I got stuck. If you are interested in using spaced repetition and flashcards for math and want to join a community, then I recommend checking out the math channel in the RemNote Discord server.
Next Steps
Send me ideas and questions in the comments or on Twitter!