### 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:

```
\newenvironment{attempt}
{{\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:

```
\begin{attempt}
% "proof" goes here
\end{attempt}
```

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

Proof attempt. By induction ont. 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:

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

## Comments

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

Posted by: Radu Grigore | August 30, 2007 11:01 PM

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

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

Posted by: ezra | September 1, 2007 7:36 PM