Isabelle 求解器:"auto" 或 "fastforce"? (求解器强度对比)
Isabelle solvers: "auto" or "fastforce"? (comparison of solver strength)
在 Isabelle 中,我经常发现我可以使用不同的求解器成功地证明一个目标。
一般来说,我更愿意使用最弱的求解器来证明目标。根据我目前对伊莎贝尔的经验,我目前的理解是,按照增加强度和降低速度的顺序,常见的逻辑求解器排名如下(即当 rule
和 simp
都有效时,应使用 rule
等):
rule < simp < auto < fastforce < force
这是正确的吗? blast
放在什么地方?
我检查了 Programming and Proving in Isabelle/HOL (PDF) and Concrete Semantics with Isabelle/HOL 但找不到答案。
根据证明方法的强度,通常没有线性排序,您的话 "weakest" 假设有一个。尽管如此,我们仍然可以说 "auto" 通常至少具有 "simp" 或 "rule" 的能力,但由于它更强大,它也可以做一些可能使其失败的无用工作。 fastforce、bestsimp 和 slowsimp 具有相同的功率,但具有不同的证明搜索策略。
我真的不能说更多细节,但也许其他人可以。
在 Isabelle 中,我经常发现我可以使用不同的求解器成功地证明一个目标。
一般来说,我更愿意使用最弱的求解器来证明目标。根据我目前对伊莎贝尔的经验,我目前的理解是,按照增加强度和降低速度的顺序,常见的逻辑求解器排名如下(即当 rule
和 simp
都有效时,应使用 rule
等):
rule < simp < auto < fastforce < force
这是正确的吗? blast
放在什么地方?
我检查了 Programming and Proving in Isabelle/HOL (PDF) and Concrete Semantics with Isabelle/HOL 但找不到答案。
根据证明方法的强度,通常没有线性排序,您的话 "weakest" 假设有一个。尽管如此,我们仍然可以说 "auto" 通常至少具有 "simp" 或 "rule" 的能力,但由于它更强大,它也可以做一些可能使其失败的无用工作。 fastforce、bestsimp 和 slowsimp 具有相同的功率,但具有不同的证明搜索策略。
我真的不能说更多细节,但也许其他人可以。