当我查看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
命令在这种情况下不起作用?谢谢!
答案 0 :(得分:4)
Require Import Ltac.
确实是Coq.ltac.Ltac
,是您找到的空文件!我不确定为什么那里有一个空文件,但它是在Ltac was moved to a plugin时引入的。也许它可以作为一个占位符,如果一些Ltac实现被转移到Coq而不是OCaml插件。无论如何,我认为QuickChick导入它的理由不大,除非他们预计会对我不知道的Coq做一些改变。
由于与白话命令Locate Ltac
发生冲突(这会给您一个语法错误),您需要明确使用Locate Module
。 Print Module
也是如此。
Locate Module Ltac
报告Module Coq.ltac.Ltac
,它告诉您,您确实在查看theories/ltac/Ltac.v
,Print Module Ltac
显示空模块。然而,第二位是误导性的,因为看起来像空模块的东西仍然可以有符号(这里不是这种情况,但只是FYI)。