いまいち見づらいので、
プログラミング風にして文字数を削減。

if(¬¬¬P){ (H1)
.  Pと¬Pで場合分け。
.
.  if(P){ (H2)
.    ¬Pと¬¬Pで場合分け
.
.    if(¬P){
.      H1,H2により矛盾。
.    }
.    if(¬¬P){ (L)
.      H1,Lにより矛盾。
.    }
.
.    どちらも矛盾なので、このケースは矛盾。
.  }
.
.  if(¬P){
.    このケースだけ生存。
.  }
.
}

よって、¬¬¬P ⇒ ¬P である。