Coq:证明一个没有非递归构造函数的归纳类型是不可居住的

Coq:证明一个没有非递归构造函数的归纳类型是不可居住的,coq,dependent-type,theorem-proving,Coq,Dependent Type,Theorem Proving,我不熟悉它的基本理论。假设有一个归纳类型没有非递归构造函数。这是不可能产生一个实例。但这能被证明吗 Inductive impossible : Type := | mk (x : impossible). Theorem indeed_impossible : forall (x : impossible), False. 如果否-这是Coq的缺点还是CoC的特征?这很容易通过x上的归纳来证明。你只得到一个荒谬的归纳假设的归纳步骤,而没有要求你实际产生荒谬的基本情况 Theorem i

我不熟悉它的基本理论。假设有一个归纳类型没有非递归构造函数。这是不可能产生一个实例。但这能被证明吗

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

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

如果否-这是Coq的缺点还是CoC的特征?

这很容易通过
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.

非常感谢。我试着用倒装法,但毫无结果。@HTNW谢谢你提供的校对脚本。我证明它有点不同(见我的编辑)。你能解释一下归纳法1是什么意思吗?嗯,我的编辑还不可见,因为它需要同行评审。这就是证据:介绍。诱导x。假设。Qed.@simpadjo
inclution 1
intros x相同。感应x
具有新名称
x
Trial
auto
的一个变体,只是它更不努力解决目标<代码>自动始终首先检查假设。实际上,现在我想起来了,你可以说
现在归纳1