在Isabelle中加载预编译的堆映像
根据以下建议和其他建议,我为名义上的伊莎贝尔创建了一个形象:在Isabelle中加载预编译的堆映像,isabelle,Isabelle,根据以下建议和其他建议,我为名义上的伊莎贝尔创建了一个形象: isabelle build -v -b -d . Nominal2 堆映像是在~/.isabelle下创建的: .isabelle/Isabelle2013-2/heaps/polyml-5.5.1_x86-linux/Nominal2 然后我开始 isabelle jedit -d /path/to/Nominal-distribution -l Nominal2 我希望系统能很快加载一个理论,导入一部分标称值,但这几乎花了
isabelle build -v -b -d . Nominal2
堆映像是在~/.isabelle下创建的:
.isabelle/Isabelle2013-2/heaps/polyml-5.5.1_x86-linux/Nominal2
然后我开始
isabelle jedit -d /path/to/Nominal-distribution -l Nominal2
我希望系统能很快加载一个理论,导入一部分标称值,但这几乎花了一分钟。这是否正常?构建堆映像的过程看起来是正确的。事实上,您实际上不需要执行
isabelle build
步骤,因为如果堆不存在或不是最新的,则isabelle jedit
将自动触发生成
您可以根据两个事实确定isabelle jedit是否正在使用堆:
- 如果需要构建堆,您将看到一个对话框弹出,显示您首次启动jEdit时的构建进度。这通常需要10秒到数小时,具体取决于需要构建的堆的大小。下面的屏幕截图显示了构建对话框的示例;在本例中,我正在构建
堆:Main
- 如果它根本不使用堆(例如,如果您忘记指定
),则需要在jEdit中打开-l Nominal2
包含的所有理论,您将在jEdit“理论”面板中看到它们 例如,在下图中,Nominal2
导入一个文件Scratch
,该文件依次导入AutoCorres
,MapExtra
,填充
,等等。如果我使用的是正确的位操作
堆,则不需要加载这些文件,因为它们已经预编译到堆中:AutoCorres
即使Isabelle正在使用堆,它也必须在启动时将其加载到内存中。这通常需要几秒钟,再加上杰迪特本身的启动时间并不特别惊人,这可能就是你所经历的。我明白了。我的默认理论不是主要的,而是名义上的,所以你的最后一段一定是这样。我测量的50秒是在Jedit启动之后:我从打开导入标称理论的理论文件开始测量时间。重复我在理论面板中看到的实验,从标称处理Lambda.thy需要很长时间。然后我意识到Lambda.thy不是根文件中的标称映像的一部分。很抱歉耽误了你的时间,我从你的回答中学到了很多。现在,创建一个包含Lambda.thy的新的标称图像,并确保连续检查,我在几秒钟内得到理论文件的输出。@Gergely:很高兴你解决了你的问题!对于第一张图片的混乱表示抱歉;我只是构建了
Main
来获取构建对话框的屏幕截图,而不是因为您自己应该构建Main。我会更新答案,让它更清楚。这一点我一点也不困惑,对于任何第一次开始伊莎贝尔/杰迪特的人来说,这是一个熟悉的窗口。