I’m going to prove the much easier theorem (sorry):

\[\sim p \supset (p \supset q)\]

If you proved \(p \supset (\sim p \supset q)\), then good for you! I struggled with this proof for quite a while before finding out that the formulation of propositional logic given by Nagel and Newman’s “Godel’s Proof” was incomplete [see long thread]. So, by the time I was actually able to complete the proof (by augmenting the formal system with an additional definition), my enthusiasm had waned. To my reading, this statement has the same semantic consequence as the original, namely, if both \(p\) and \(\sim p\) are theorems, then you can derive \(q\) (anything).

\[\begin{align*} p \supset (p \lor q) \tag{Axiom} \\ \sim p \supset (\sim p \lor q) \tag{Rule of substitution [~p/p]} \\ \sim p \supset (p \supset q) \tag{Definition of $\supset$} \end{align*}\]