Coq命令要求导入Ltac有什么作用?

时间:2018-03-30 20:33:46

标签: coq coq-tactic coq-extraction

当我查看QuickChick项目时,我遇到了句子Require Import Ltac.我不知道这是什么以及Ltac模块在​​哪里。我找到了一个文件plugins/ltac/Ltac.v,但由于这个文件是空的,所以不可能是这个文件(顺便说一下,包含空文件的目的是什么?)。我尝试了Locate Ltac.,但我得到Error: Syntax error: [constr:global] expected after 'Ltac' (in [locatable]).,这更令人困惑。

Ltac模块做了什么,Ltac.v文件在哪里,为什么Loacte命令在这种情况下不起作用?谢谢!

1 个答案:

答案 0 :(得分:4)

Require Import Ltac.确实是Coq.ltac.Ltac,是您找到的空文件!我不确定为什么那里有一个空文件,但它是在Ltac was moved to a plugin时引入的。也许它可以作为一个占位符,如果一些Ltac实现被转移到Coq而不是OCaml插件。无论如何,我认为QuickChick导入它的理由不大,除非他们预计会对我不知道的Coq做一些改变。

由于与白话命令Locate Ltac发生冲突(这会给您一个语法错误),您需要明确使用Locate ModulePrint Module也是如此。

Locate Module Ltac报告Module Coq.ltac.Ltac,它告诉您,您确实在查看theories/ltac/Ltac.vPrint Module Ltac显示空模块。然而,第二位是误导性的,因为看起来像空模块的东西仍然可以有符号(这里不是这种情况,但只是FYI)。