在伊莎贝尔一起召集Nitpick和Sledgehammer

时间:2013-02-28 10:51:33

标签: theorem-proving isabelle

当我在 Isabelle 中说明一个引理时,我经常输入nitpick,如果这不能给我一个反例。 然后我输入sledgehammer以尝试自动查找证明。

我想知道:是否可以调用 Nitpick Sledgehammer 以便它们同时运行? 由于 Sledgehammer 已经将我的引理发送给一堆自动证明器,这些证明中的一个实际上不是像 Nitpick 这样的反例调查器吗?

1 个答案:

答案 0 :(得分:8)

您可以尝试在Isabelle中使用try命令;它并行运行sledgehammernitpickquickcheck和其他一些求解器(例如autosimpforce等) ,给你第一个完成的结果。

例如,运行以下命令:

lemma "(a * (b + 1)) = (a * b + a)"
  try

将从nitpick返回一个反例,表明该定理一般不正确。添加类型约束:

lemma "((a :: nat) * (b + 1)) = (a * b + a)"
  try

现在会返回一条消息,告诉您simp能够解决目标。

最后,将类型约束更改为更具挑战性的32 word类型(可从Word中的HOL-Word获取):

lemma "((a :: 32 word) * (b + 1)) = (a * b + a)"
  try

将从大锤返回结果。