库克:他承认
Coq : Admit assert
有没有办法在 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
。 Baiscally,我稍后会回来证明这一点。 Coq 中是否有类似的东西来实现它?
一般来说,策略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.
编辑:带有;
的版本是废话,因为你不想承认所有的子目标。
有没有办法在 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
。 Baiscally,我稍后会回来证明这一点。 Coq 中是否有类似的东西来实现它?
一般来说,策略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.
编辑:带有;
的版本是废话,因为你不想承认所有的子目标。