策略instantiate
可以采用ident
或num
作为:
instantiate (ident:= term)
instantiate (num := term)
现在,我想在战术定义中使用第二个。例如:
Ltac my_instantiate n x:=
instantiate(n:=x).
不幸的是,这给出了以下错误:
Ltac变量n绑定到1,该变量不能强制为新变量 标识符。
我怀疑ltac正在尝试使用instantiate
的首次使用。如何告诉coq按位置实例化,或者如何正确传递argumetn?
这是一个最小的示例:
Ltac my_instantiate n x:=
instantiate(n:=x).
Goal exists x, x = 2.
eexists.
my_instantiate 1 2.
(* Fails with: Ltac variable n is bound to 1 which
cannot be coerced to a fresh identifier. *)
注意:我知道不建议按位置实例化,但是我只是出于探索目的而使用战术。