Prove p from ¬¬p I'm stuck on question 2 of these lecture notes on propositional logic:
"2. Propositional Proof. Give a formal proof of the sentence p from the single premise ¬¬p using only Modus Ponens and the standard axiom schemata. Warning: This is surprisingly difficult. Though it takes no more than about ten steps, the proof is non-obvious. This problem illustrates the difficulties of working with proof methods devised more for minimality than ease of use."
As the question states, it is surprisingly difficult, for a newbie like me at least.
Could anyone give me a hint on how to begin? I've tried a few approaches but nothing.
For example:
premise: ¬¬p
1) ¬¬p -> p            to prove    
2) ¬¬p -> (p -> ¬¬p)   II, 1    
3) p -> ¬¬p            premis, 2

Clearly not the right start, and (1) looks obviously wrong :(
Thanks in advance.
 A: I'll give only a few hints, as you asked. First, observe that only the contradiction realization schema uses the negation, so we have to use it somehow in our proof. If we used only the other two, we'd have no information about how the negation behaves.
Now, let's have a look at it:
$$(\lnot\phi \Rightarrow \psi) \Rightarrow ((\lnot\phi \Rightarrow \lnot\psi) \Rightarrow \phi) $$
we'd like to somehow introduce the double negation. Let's guess and substitute $\lnot\phi$ for $\psi$ to get
$$(\lnot\phi \Rightarrow \lnot\phi) \Rightarrow ((\lnot\phi \Rightarrow \lnot\lnot\phi) \Rightarrow \phi) $$
This looks promising. We are able to prove $\lnot\phi \Rightarrow \lnot\phi$ (which is also somewhat nontrivial), after which we can apply MP to deduce
$$(\lnot\phi \Rightarrow \lnot\lnot\phi) \Rightarrow \phi$$
Now if we have the assumption $\lnot\lnot\phi$, we can prove $(\lnot\phi \Rightarrow \lnot\lnot\phi)$ using the implication introduction schema. Putting it together, we prove $\phi$ from $\lnot\lnot\phi$.

Update: How to prove $\phi\Rightarrow\phi$:
\begin{align}
[1] & (\phi\Rightarrow (\underbrace{(\phi\Rightarrow\phi)} \Rightarrow\phi)) ⇒ ((\phi\Rightarrow\underbrace{(\phi\Rightarrow\phi)}) \Rightarrow (\phi\Rightarrow\phi))
& \mbox{substitute $\phi$, $\phi\Rightarrow\phi$ and $\phi$ into ID} \\
[2] & \phi\Rightarrow (\underbrace{(\phi\Rightarrow\phi)} \Rightarrow\phi)
& \mbox{substitute $\phi$, $\phi\Rightarrow\phi$ into II} \\
[3] & (\phi\Rightarrow\underbrace{(\phi\Rightarrow\phi)}) \Rightarrow (\phi\Rightarrow\phi)
& \mbox{Modus Ponens [1] and [2]} \\
[4] & \phi\Rightarrow (\phi\Rightarrow\phi)
& \mbox{substitute $\phi$, $\phi$ into II} \\
[5] & \phi\Rightarrow\phi
& \mbox{Modus Ponens [3] and [4]} \\
\end{align}
A: My proof, version 2:
$$ premise: \lnot\lnot p $$
\begin{array}{ll}
  1) &   \lnot\lnot p                                            & : p_1    \\
  2) &   (\lnot \phi \Rightarrow \psi) \Rightarrow ((\lnot\phi \Rightarrow \lnot\psi) \Rightarrow \phi) & : CR  \\
  3) &   (\lnot p \Rightarrow \lnot p) \Rightarrow ((\lnot p \Rightarrow \lnot\lnot p) \Rightarrow p) & : 2, \phi=p, \psi=\lnot p  \\
  4) & (\lnot p \Rightarrow \lnot p) = (\lnot p \lor p) = \top                                         & : valid  \\
  5) & (\lnot p \Rightarrow \lnot\lnot p) \Rightarrow p)         & : 3,4    \\
  6) & (\phi \Rightarrow (\psi \Rightarrow \phi)                 & : II     \\
  7) & (\lnot\lnot p \Rightarrow (\lnot p \Rightarrow \lnot\lnot p) & : 6, \phi=\lnot\lnot p, \psi=\lnot p     \\
  8) & (\lnot p \Rightarrow \lnot\lnot p)                        & : p_1,7 \\
  9) & p                                                         & : 8,5    \\
  \therefore \lnot\lnot p \Rightarrow p 
\end{array} 
Is this correct, in terms of steps and explanations on the right?
Thank you.
My proof, version 1 (Incorrect)
p1 (premise): ¬¬p
1) ¬¬pp                                      : p1
2) (¬p => ¬¬p) => ((¬p => ¬(¬¬p)) => p)      : 1, CR
3) (¬p => ¬¬p) => ((¬p => ¬p) => p)          : 2, double negation
4) (¬p => ¬¬p) => p                          : 3, (¬p => ¬p) is valid
5) ¬¬p => (¬p => ¬¬p)                        : II, 4
6) (¬p => ¬¬p)                               : p1, MP, 5
7) p                                         : 6, MP, 6
∴ ¬¬p => p

