我在我的Windows电脑上安装了最新的Isabelle / jEdit软件包。我使用了Isabelle网站上的官方软件包。然后我打开了Isabelle网页上的教程,开始了计算机实验。我立刻意识到这些教程中提供的许多示例在我的安装中根本不起作用! 例如,在第5页的tutorial中,提供了以下Isabelle程序的基本示例:
theory Test imports Main begin
lemma "[a]=[b] ⟹ a=b"
sledgehammer
我的装置中没有任何效果!
当我用一个"(A& B)⟹A"命令' sledgehammer'不工作。我收到了目标字段中的消息
目标(1个子目标)
所以,我向社区提出的问题。有没有Isabelle的工作教程和Sledgehammer,最新版本?或者至少是初学者级别的一组WORKING示例。
答案 0 :(得分:2)
这两个例子在我安装Isabelle 2015时都没有任何问题(如果在Isabelle 2014或2013上有任何不同,我会非常惊讶)。
Isabelle在[a]═[b] ⟹ a=b
上给出词汇错误的原因是,该公式中的第一个等号是不是等号,而是男孩绘画角色。我不知道你是如何设法在那里获得该角色的,但是如果你用等号替换它,它就可以工作。
在第二个例子中,似乎不知何故,'sledgehammer'被解析为一个术语,而不是一个命令。我不知道它是怎么回事(特别是没有看到你输入的确切代码),但以下在我的安装上工作正常:
theory Scratch
imports Main
begin
lemma "(A & B) ⟹ A"
sledgehammer
编辑:啊,我没有看到你使用Isabelle for Windows。我没有使用Isabelle for Windows的经验,但我猜想在你的情况下,Sledgehammer和Isabelle在Windows上存在一些问题。如果我之前打印的示例在您的安装上不起作用,我建议您在邮件列表中写一封电子邮件并报告问题,因为它绝对应该工作。
无论如何,从我所听到的情况来看,Windows上的Isabelle有点痛苦,理想情况下应该使用Linux或Mac OS。
另一方面,Sledgehammer绝不是Isabelle的必要组件。你可以轻松地使用和学习Isabelle而不需要Sledgehammer。作为教程,我可以推荐这本书Concrete Semantics。 (免费PDF版)
答案 1 :(得分:2)
更新:为Isabelle用户列表添加了屏幕截图和相关链接。
Sledgehammer教程中示例的目的是确保您的设置正常运行。问题是你的设置不起作用,而不是教程不是"工作"。
我复制并粘贴了以下内容:
lemma "[a]=[b] ⟹ a=b"
sledgehammer
有效。
我已经在Windows 7中大量使用Sledgehammer超过3年了。它现在可以使用了。它从一开始就适用于我。我刚刚开始使用Isabelle2015,但我在下面显示的内容表明一切正常。
我粘贴在这里:
lemma "(A & B) ⟹ A" sledgehammer
有效。它返回
Try this: by simp (0.0 ms)
代表z3
,spass
,cvc4
,e
,remote_vampire
和remote_e_sine
。
对我来说,为什么人们说Sledgehammer不能在Windows上工作,这是个谜。我的猜测是他们的反病毒。我使用Norton,它有时会关闭Isabelle的安装,甚至关闭polyml
,但绝不会关闭Sledgehammer。
然而,Sledgehammer启动外部ATP证明:z3,spass,cvc4和e,所以反病毒关闭它们并不令人惊讶。
这是一个截图:
一位拥有计算机科学博士学位的巴西人在使用Windows时没有使用Sledgehammer存在问题。
以下是2015年5月线程的链接:https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2015-May/thread.html。
搜索" Alfio Martini"在浏览器中查看他在不同帖子中要说的内容。他在这里开始:Re: [isabelle] Isabelle2015-RC3 available for testing。
(注意:这不是他与Sledgehammer报道问题的完美例子。在另一篇文章中,可能不是在5月,他谈到Sledgehammer根本不工作。)
有关候选发布版本问题的帖子可能难以理解,因为多个问题会在同一标题下发布。
基本上,他说Sledgehammer从未在Windows上为他工作过。这与我的经历相反。大锤总是在合理的范围内为我工作,也就是说,给出正常的错误"现代软件的一部分。
在列表的不同帖子中,他说了几件事,比如他使用的是Windows 8.1。看起来他有几个反病毒程序正在运行,其中一个就是一个旧的反病毒程序。
最终结果是看起来他已经开始运行,但从未详细解释他为了让它运行而做了什么。
他提到了Sledgehammer的一些问题,我确定与#34; Sledgehammer根本不工作有关,例如与cvc4
相关的问题。
如果Sledgehammer 从不返回一个简单的引理,正如他所描述的那样,这是一个需要通过设置来解决的主要问题。
我在Windows 7上从未遇到过Sledgehammer的主要问题。我已经让诺顿关闭poly.exe
并且没有通知我这件事,这让我感到非常悲痛,直到我弄明白。