This coming semester I will be teaching a couple of sections of Math 312, which is the introductory real analysis course at Penn State. The only prerequisite for this course is Calculus II (Math 141) and, in particular, students are not required to have taken an “introduction to proofs” course; though, in practice, many of them will have done so.

I have long thought that in teaching a first or second proof-based course, especially in analysis with lots of quantifiers floating about, one should try to emphasize the “block structured” nature of proofs, analogous to the block-structured nature of a programming language like C. I had the impression that I came up with this idea for myself, but Dan Velleman wrote a whole beautiful book (*How to Prove It*) from this perspective, and I know I read the first edition of that book when I was in Oxford, so probably that is where I became aware of this point of view.

Anyhow, I spent a day writing some TeX macros to format “block structured” proofs. Follow this link for a few examples.

One of the pleasing things about structuring proofs this way is that one can describe how a proof is constructed, by compressing the lower-level data. Here for example are compressed versions of the three proofs above.

The symbol \( \require{AMSsymbols}\blacktriangle\quad\blacksquare\quad\blacktriangledown \) for the omitted material is supposed to remind students that there are three ways to look: “up” for the givens at this point in the proof, “down” for the goals for which this part of the proof is reaching, and “across” to construct some argument linking the local givens to the local goals.

Does anyone have experience using this sort of explicitly structured proof in Analysis I? How did it work out?