6
當我在Isabelle中聲明一個引理時,我經常輸入nitpick
,如果這樣不能給我一個反例。 然後,我輸入sledgehammer
以嘗試自動找到證明。在Isabelle中一起調用Nitpick和大錘
我想知道:是否有可能調用雞蛋裏挑骨頭和大錘讓他們同時運行? 由於大錘已經將我的引理髮送給一堆自動證明者,那麼這些證明者中的哪一個實際上不能成爲反例子查找者,如Nitpick?
當我在Isabelle中聲明一個引理時,我經常輸入nitpick
,如果這樣不能給我一個反例。 然後,我輸入sledgehammer
以嘗試自動找到證明。在Isabelle中一起調用Nitpick和大錘
我想知道:是否有可能調用雞蛋裏挑骨頭和大錘讓他們同時運行? 由於大錘已經將我的引理髮送給一堆自動證明者,那麼這些證明者中的哪一個實際上不能成爲反例子查找者,如Nitpick?
您可以嘗試在Isabelle中使用try
命令;它會並行運行sledgehammer
,nitpick
,quickcheck
和其他一些解算器(如auto
,simp
,force
等),爲您提供第一個結果的結果。
例如,運行以下:
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
將大錘返回結果。
一個更輕量級的變體是'try0',它只嘗試證明方法,但忽略了更重的'sledeghammer','nitpick','quickcheck'調用。 – 2013-03-01 15:33:00