【问题标题】:Prove that one hypothesis is negation of another in Coq在 Coq 中证明一个假设是对另一个假设的否定
【发布时间】:2023-05-04 00:24:01
【问题描述】:

例如我有这两个假设(一个是对另一个的否定)

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

如何证明?

【问题讨论】:

  • 如果e 假设H0 说存在是否定的怎么办?

标签: coq proof


【解决方案1】:

你不能,因为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.

【讨论】:

    最近更新 更多