Coq 命令 Require Import Ltac 有什么作用?

What does the Coq command Require Import Ltac do?

我在看QuickChick项目的时候遇到一句话Require Import Ltac. I don't know what this does and where the Ltac module is。我找到了一个文件 plugins/ltac/Ltac.v,但这不可能是那个文件,因为这个文件是空的(顺便说一下,包含一个空文件的目的是什么?)。我尝试了 Locate Ltac. 但我得到了 Error: Syntax error: [constr:global] expected after 'Ltac' (in [locatable]).,这更令人困惑。

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

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.v,而 Print Module Ltac 显示一个空模块。然而,第二位是误导性的,因为看起来像空模块的东西仍然可以有符号(这里不是这种情况,仅供参考)。