Skip to Content.
Sympa Menu

coq-club - [Coq-Club] not_ex_all_not seems to have trouble with multiple identifiers

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] not_ex_all_not seems to have trouble with multiple identifiers


Chronological Thread 
  • From: Vincent Siles <vincent.siles AT ens-lyon.org>
  • To: Coq Club <coq-club AT inria.fr>, j.alglave AT ucl.ac.uk
  • Subject: [Coq-Club] not_ex_all_not seems to have trouble with multiple identifiers
  • Date: Sun, 14 Oct 2012 17:51:19 +0200

Hi List,

Using the lemma of Classical_Pred_Set.v,  Lemma not_ex_all_not : forall P:U -> Prop, ~ (exists n : U, P n) -> forall n:U, ~ P n.
I wanted to prove  (a more complicated lemma but it boils down to)

Lemma foo (A:Set) (P : A -> Prop) : ~(exists x, exists y, exists z, (P x /\ P y  /\ P z)) -> forall x y z, ~(P x /\ P y  /\ P z).

I was surprised that
intros A P H.
apply not_ex_all_not in H.

didn't work, the error is "Error: Unable to find an instance for the variable n."

If I try with eapply, I get a new H of the shape  "~ (exists y, exists z, (P ?3498 /\ P y /\ P z))"  instead of a
"forall x, ~ (exists y, exists z, (P x /\ P y /\ P z))"  as I expected.

I don't understand why Coq doesn't produce a forall and wants to instantiate
it directly.

I managed to prove it by doing one "forall" at a time with the following script:

intros A P H x y.
apply not_ex_all_not.
revert y.
apply not_ex_all_not.
revert x.
apply not_ex_all_not.

Is this a bug or did I do something wrong ?

Best,
V (using Coq 8.3pl4 (June 2012))




Archive powered by MHonArc 2.6.18.

Top of Page