« Catenate | Main | Abstraction and Variation »

The 'Attempt' Environment

If you're like me, you often try to prove things and don't finish the same day.

Perhaps you start by writing the word "Proof" at the beginning of a paragraph, and then start writing some of the bits of your proof, as you work them out. Perhaps you even use the nice LaTeX proof environment from the amsmath package, which puts a pretty, italic "Proof." at the beginning and finishes with a tidy square "tombstone" (modern shorthand for "that's all!"). This makes your work look very pretty while you're working on it, helping to motivate you.

Then, invariably, while you're working on the proof, someone else will come along and say, "What are you working on?" Keen about your latest ideas, you'll say, "Oh, I'm trying to show that foo equals bar, for suitable notions of 'foo' and 'bar.'" And then your interlocutor, someone far smarter than you, will start reading and soon find an error, or perhaps will find that some cases of a proof-by-cases are not filled in.

"That's not a proof!" this person will say.

"Oh, well, I didn't say it was a proof. It's just what I'm working on."

"But it says "proof" write there!" this person will say, pointing to that pretty italic Proof at the top of your paragraph.

"Oh, well..." you'll say, and start making sorry excuses for yourself.

If you're often in that situation, then I can help! I've developed a new LaTeX environment called attempt. It's for writing out proof attempts.

Here's how you use it. Paste this into your TeX file:

  {{\parindent 0pt \textit{Proof attempt.}}}
  {{\parindent 0pt \hfill \textit{End of proof attempt.}}}

Then, when you start writing a new proof, before doing anything else, put down this boilerplate and write inside it:

% "proof" goes here

Now when that pesky expert peers over your shoulder, he or she'll see something like this:

Proof attempt. By induction on t. Case λx. N. I don't know what goes here. End of proof attempt.

That's setting expectations where they belong!

No need to pay me for the attempt environment! It's just one small contribution I'm happy to make to the field of CS research.

UPDATE: The amsthm package provides a better way to do this. Its proof environment admits optional text to begin the proof, as with \begin{proof}[Proof attempt]. And also, the \qedhere command (see my recent praise for it) gives a way to move the tombstone inside other environments, such as itemize, which would otherwise push the tombstone a couple lines down the page. So, herewith a newer, sleeker, attempt environment, for those using amsthm:

  {\begin{proof}[Proof attempt]
    \let\realqed=\qed \def\qed{\textit{\hfill End~of~proof~attempt.}}}


Or you could do it like me and use paper and pen. (And skip proofs if they are obvious :p)

Radu said, "Skip proofs if they are obvious."

I guess they have pretty lax standards over there in Ireland, eh?

Post a comment