请参阅Ltac中的提示词

时间:2018-03-25 22:03:52

标签: coq coq-tactic

在我的项目中,我试图维护小的提示词以加快校样。但是,当我为这种架构编写Ltac支持时,我找不到引用各种提示词的方法。基本上,我想做以下事情:

Tactic Notation "myauto" ???(db) := auto with db.

比这更复杂。但是,Coq解析器似乎急切地将db解析为提示库的具体名称,因此将抛出这样的错误消息:

Error: No such Hint database: db.

任何方式我都可以参数化auto系列的提示库选项?

1 个答案:

答案 0 :(得分:2)

编辑:

您正在尝试做的事情目前不适用于Ltac。

https://github.com/coq/coq/issues/2417

您可以通过

解决您的问题
  • 将您的问题重新解释为一个单独的问题,您可以解释为什么需要这种自动化,有人可能能够以不同的方式帮助您解决初始问题(不使用自动和数据库参数)

  • 尝试使用其中一个较新的Coq战术库,例如Ltac2

旧(破)回答:

在Coq 8.7.2中,您要查找的是startFabric.sh参数类型。 根据定义,Hint数据库由ident引用:

ident

(有关定义,请参阅https://coq.inria.fr/distrib/current/refman/tactics.html#Hints-databases

Create HintDb ident [discriminated] 

对我来说很好。

https://coq.inria.fr/distrib/current/refman/syntax-extensions.html#hevea_command236包含允许的修饰符列表。