假设我有一个目录isabelle_afp
,其中存储了很多理论。该目录是一个库,我不打算更改其中的文件。我想加快Isabelle / jEdit的启动时间(默认情况下,isabelle_afp
我当前理论所依赖的所有理论都会重新处理。)
如何跳过此步骤? system manual告诉我构建持久堆映像。最简单的方法是什么?
我怎么能告诉Isabelle / jEdit加载这个堆映像?
答案 0 :(得分:2)
Isabelle2013中的Isabelle / jEdit已经通过内部使用isabelle build_dialog
工具的相对基本机制(在引用的文档中有一个单独的条目)来负责构建堆映像。
在没有手动使用isabelle build_dialog
或isabelle build
电动工具的情况下,您有两种主要的可能性:
jEdit对话框“Utilities / Options / Plugin Options / Isabelle / General”提供了“Logic”的选项,其中包含一个小工具提示,说明您必须在更改后重新启动应用程序。这样做,堆图像将在重新启动时生成。
命令行选项-l
,例如isabelle jedit -l HOL-Word
对于AFP会话,您需要分别告知系统有关会话目录的信息。这可以通过isabelle jedit -d DIR1 -d DIR2
或$ISABELLE_HOME_USER/ROOTS
文件在命令行中完成(在单独的行中列出每个目录)。
纯命令行解决方案如下所示:
isabelle jedit -d isabelle_afp -l Simpl
请注意,在此示例中,isabelle_afp
是(相对或绝对)目录名称,而Simpl
是逻辑会话名称。
答案 1 :(得分:1)
首先,您需要为isabelle_afp
目录设置“会话”。这是通过创建一个文件ROOT
(在isabelle_afp
内)来完成的,该文件包含以下形状的条目(另请参阅isabelle doc system
第3章:Isabelle会话和构建管理)
session session_name = HOL +
theories
Theory1
Theory2
Theory3
这大致意味着堆图像session_name
应该基于HOL
堆图像,并且还包含理论Theory1
,Theory2
,...
现在调用isabelle jedit -d isabelle_afp -l session_name
。第一次完成时,这会构建会话session_name
的堆映像。只要isabelle_afp
中的任何内容都没有变化,任何进一步的调用都会直接在预构建的堆映像session_name
之上启动Isabelle / jEdit。