Coq:证明没有非递归构造函数的归纳类型是无人居住的

时间:2019-05-11 19:37:35

标签: coq dependent-type theorem-proving

对于Coq来说,我是一个新手。假设有一个归纳类型,它没有非递归构造函数。不可能产生它的一个实例。但是可以证明吗?

Inductive impossible : Type :=
  | mk (x : impossible).

Theorem indeed_impossible : forall (x : impossible), False.

如果没有-是Coq的缺点还是CoC的功能?

1 个答案:

答案 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.