如何将set tactic引入的变量添加到Hint DB?

时间:2018-01-05 13:52:11

标签: coq

我想使用由set引入的变量的提示数据库。例如,

Example foo : forall n : nat, n + n = n + n.
Proof.
  intro.
  set (m := n + n).
  Hint Unfold m.

但是,Coq说:

  

错误:在当前环境中找不到引用m

有没有办法实现这一目标,还是不可能?

我正在使用Coq 8.7。

1 个答案:

答案 0 :(得分:2)

不可能像您建议的那样执行此操作,因为在使用foo完成Qed后,本地变量m将超出范围,但提示会直接进入一些全球数据库。

但是,您可以使用Section机制,因为在该部分中声明的提示是 local 到该部分:

Section LocalHints.

  Variable n : nat.
  Let m := n + n.
  Hint Unfold m.

  Example bar : m = m.
  Proof.
    autounfold with core.
    reflexivity.
  Qed.
End LocalHints.