如何使用在给定库中验证的结果?例如,我想使用库Lemma peano_ind
中的BinInt
。我在CoqIDE中写道:
Require Import BinInt.
Check peano_ind.
并获得"当前未找到参考peano_ind
。环境#&34;错误。在证明期间,我也无法将其与apply
一起使用。
然而,它应该存在,因为使用Locate Library BinInt.
我看到Coq可以找到文件BinInt.vo,当我打开文件BinInt.v时,我可以看到Lemma peano_ind
。
我在Debian 9.0 + CoqIDE 8.5pl2和Windows 10 + CoqIDE 8.6上都存在这个问题。
所有这一切都是因为我想对整数进行归纳。一个不同的解决方案也很不错,但我仍然因为缺乏使用以前证明的结果的能力而感到沮丧。
答案 0 :(得分:5)
BinInt
库在不同子模块中有不同类型的几个 peano_ind
定义之一。您可以使用Locate peano_ind
找到这些:
Constant Coq.NArith.BinNat.N.peano_ind
(shorter name to refer to it in current context is BinNat.N.peano_ind)
Constant Coq.PArith.BinPos.Pos.peano_ind
(shorter name to refer to it in current context is Pos.peano_ind)
Constant Coq.ZArith.BinInt.Z.peano_ind
(shorter name to refer to it in current context is Z.peano_ind)
然后您可以使用这些限定名称,例如:
Check Z.peano_ind.
Z.peano_ind
: forall P : Z -> Prop,
P 0%Z ->
(forall x : Z, P x -> P (Z.succ x)) ->
(forall x : Z, P x -> P (Z.pred x)) -> forall z : Z, P z
您也可以Import Z
允许使用非限定名称peano_ind
。