我想使用由set
引入的变量的提示数据库。例如,
Example foo : forall n : nat, n + n = n + n.
Proof.
intro.
set (m := n + n).
Hint Unfold m.
但是,Coq说:
错误:在当前环境中找不到引用
m
。
有没有办法实现这一目标,还是不可能?
我正在使用Coq 8.7。
答案 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.