パースの定理

パースの法則からcoqで排中律を導く。

Theorem Peirce : forall A B : Prop, ((A -> B) -> A) -> A.
Admitted.
Theorem classic : forall p : Prop, ~~p -> p.
Proof.
 unfold not.
 intros.  apply (Peirce p False).
 intro.  exfalso. apply H.  apply H0.
Qed.

SoftwareFoundation読み返したら、そのものずばりの問題があった。

でも、

Definition peirce := ∀ P Q: Prop,
  ((P→Q)->P)->P.

Theorem cl2 : forall P : Prop, ~~P -> P.
unfold not.
intros. apply (peirce P False).
-----------------------------------------------------
Toplevel input, characters 7-15:
Error: Illegal application (Non-functional construction): 
The expression "peirce" of type "Prop"
cannot be applied to the term
 "P" : "Prop"

書いてあるDefinitionでのPeirceだと、applyが使えない?なんで?