证明一个假设是在Coq中否定另一个假设

时间:2015-10-01 08:23:27

标签: coq proof

例如,我有这两个假设(一个是否定其他假设)

H : forall e : R, e > 0 -> exists p : X, B e x p -> ~ F p
H0 : exists e : R, e > 0 -> forall p : X, B e x p -> F p

目标

False

如何证明?

1 个答案:

答案 0 :(得分:2)

你不能,因为H0不是H的否定。正确的陈述是

Definition R := nat.
Parameter X: Type.
Parameter T: Type.
Parameter x: T.
Parameter B : R -> T -> X -> Prop.
Parameter F : X -> Prop.

Lemma foobar: forall (H: forall e : R, e > 0 -> exists p : X, B e x p -> ~ F p)
  (H0:  exists e: R, e > 0 /\ forall p: X, B e x p /\ F p), False.
Proof.
intros H H0.
destruct H0 as [e [he hforall]].
destruct (H e he) as [p hp].
destruct (hforall p) as [hB hF].
exact (hp hB hF).
Qed.