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
。