如何在 Coq 中证明 ~~(P \/ ~P)

How to prove in Coq ~~(P \/ ~P)

我想在 Coq 中证明 ~~(P \/ ~P),这听起来有点微不足道......但是我不知道去哪里,因为没有任何单一的假设。 我编写了以下无效的代码,因为它给出了以下异常 [ltac_use_default] expected after [tactic] (in [tactic_command]).

Parameter P: Prop.

Section r20.
Lemma regra1: ~~(P \/ ~P).
Proof.
  intro.
   - cut P.
   - cut ~P
Qed.
End r20.

这是一个小技巧。这是证明它的一种方法。

Parameter P : Prop.

Section r20.
Lemma regra1: ~~(P \/ ~P).
Proof.
  unfold not. intros H1.
  apply H1. right.
  intros H2.
  apply H1. left.
  exact H2.
Qed.
End r20.