在大多数IDE或文本编辑器中,您可以右键单击术语,然后转到定义该术语的文件。 CoqIDE似乎没有那个,所以我一直在做coqdoc myfile.v --html
,然后转到生成的HTML文档。但该文件中唯一可点击的术语是Coq标准库。由ssreflect定义的术语(例如)不可单击。
在Coq文件中,是否有一种标准方法可以快速查找定义某些术语/标识符(以及它的源代码)的位置?无论是在CoqIDE还是在emacs + ProofGeneral中(我正在使用CoqIDE,但如果emacs / ProofGeneral具备此功能,我会切换。)
或者是为每个Coq项目和您使用的依赖项生成文档的标准方法吗?
答案 0 :(得分:5)
如果您突出显示某个字词,请执行查询 - >找到,或者您评估Locate some_identifier.
,您将获得常量的全名。如果您知道依赖项的安装位置,这将告诉您在哪里查找标识符。
编辑:如果您想要标识符的定义,可以Print
。如果您只想要它的类型,可以使用About
或Check
(它也接受表达式,而不仅仅是标识符)。
答案 1 :(得分:2)
在Proof General之上有一个工具,名为company-coq。默认情况下,它具有绑定到M-.
键盘快捷键的跳转定义功能。
只有当Require
命令或其变体需要包含定义的模块时,它才能跳转到光标下的定义(甚至是标准库)。