我最近开始学习Isabelle,但我找不到一个非常重要的问题的答案:人们如何才能一步一步地推理Isabelle找到的“证明”?当然,我了解了Isar的“证明”,但1.这样的Isar证明并不总是能被Sledgehammer找到,2.即使Isar证明也不总是给出一步一步的推理。例如,我的一个定理的Isar证明是由Sledgehammer生成的,如下所示: have "... here is my formula ..
我一直在努力学习如何利用2016年伊莎贝尔。虽然原则上我喜欢异步验证检查的想法,但我不喜欢Isabelle/jEdit,原因很多,其中最严重的原因是它占用了太多内存(对我来说)。我将变量isa-isabelle-command设置为指向伊莎贝尔分发目录下的文件bin/isabelle。当我使用C-g的菜单启动Isabelle时,Emacs会挂起,当我通过C-g中断它时,我会在*isabelle*缓冲区中得到以下内容。val it = (): unit
在Isabelle中,我可以使用arbitrary关键字来概括归纳证明中的变量。这无疑适用于普通的归纳,比如在apply (induction n arbitrary: m)中。我也可以进行规则归纳,比如在apply (induction rule: R.induct)中。但是,在使用规则归纳时,如何泛化变量呢?在我的特殊用例中,我需要证明R x ⟹ S y ⟹ ⟨…⟩形式的一个定理</e
在证明语句时,Isabelle是否支持自定义大小写区分?假设我想证明一个关于所有自然数n的声明,但证明完全不同,这取决于n是偶数还是奇数。是否可以在证明中进行大小写区分,例如 assume "n mod 2 = 0" next assume "n mod 2 = 1"<proof>到目前为止,我将引理/定理</e
我试图在Isabelle中手动做一些证明,但我正在努力解决以下证明:lemma "(A ∩ B) ∪ C ⊆ A ∪ C " 我试着把它转化成命题逻辑,然后证明它。Un_iff)+ apply(subst Inter_iff) (*not working*) 我被困在最后一步了,谁能帮我完成这个证明,并解释一下应该如何找到正确的定理,直到最后?我使用find_th