Coq:承认断言

时间:2017-03-14 16:28:21

标签: haskell coq theorem-proving

有没有办法在Coq中承认断言?

假设我有一个这样的定理:

Theorem test : forall m n : nat,
    m * n = n * m.
Proof.
  intros n m.
  assert (H1: m + m * n = m * S n). { Admitted. }
Abort.

上述断言对我来说似乎不起作用。

我收到的错误是:

Error: No focused proof (No proof-editing in progress).

我想要的是Haskell中的undefined。在一般情况下,我稍后会再回过头来证明这一点。在Coq中有类似的东西来实现吗?

1 个答案:

答案 0 :(得分:4)

一般来说,战术admit(小写首字母)承认当前的子目标。因此assert <your assertion>. admit.适用于您的情况。

或完全荣耀如下。

Theorem test : forall m n : nat,
  m * n = n * m.
Proof.
  intros n m.
  assert (H1: m + m * n = m * S n). admit.
Abort.

编辑:;的版本是无稽之谈,因为您不想接纳所有子目标。