对于Coq来说,我是一个新手。假设有一个归纳类型,它没有非递归构造函数。不可能产生它的一个实例。但是可以证明吗?
Inductive impossible : Type :=
| mk (x : impossible).
Theorem indeed_impossible : forall (x : impossible), False.
如果没有-是Coq的缺点还是CoC的功能?
答案 0 :(得分:3)
这很容易通过在x
上的归纳证明。您只会获得带有荒谬归纳假设的归纳步骤,而没有需要您实际产生荒谬的基本情况。
Theorem indeed_impossible : forall (x : impossible), False.
Proof.
induction 1.
(* just need to show [False |- False] *)
trivial.
Qed.
编辑者:@simpadjo: 对于我个人而言更清楚的替代证明:
Theorem indeed_impossible : forall (x : impossible), False.
Proof.
intros. induction x. assumption. Qed.