我最近开始学习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
我只想用命题逻辑(如notI、notE、impI、impE)中的基本自然演绎规则(ND)将这一证明转化为ab练习(供我学习)。等)。我可以很容易地在应用脚本中做到这一点: apply (rule impI) (* A ⟹ A ∨ B *) apply (rule disjI1) (* A ⟹ A *)但我试图证明Isar失败了:
我在Isabelle src/HOL中复制了一个理论文件Test_Func.thy,它定义了函数add_123: theory Test_Funcbegin
fun没有关于未定义函数或不可见函数的错误信息,但是当函数定义和关于它的引理被分成两个文件时,这种简单的证明不知何故不起作用。我在伊莎贝尔2021年的jEdit中观察到了这一点,但在不同的背景下,我可以看到同样的事情也发生在伊莎贝尔2020中。
在将证明语句键入到Isabelle (2020)理论文件中时,例如, from ‹prime p › have p: "1 < p " 当我输入一个引号时,jEdit界面应用程序会弹出一个工具提示,提示我插入一个打开的正如您在上面的代码行中所看到的,我一直在允许这样做,而且它似乎是被允许的。Isabelle文档似乎将内部语法视为嵌入的类别,这似乎允许使用引号或cartouche封装\<open ...\<close>.进行描述