我有Isabelle / HOL理论,我该如何处理它的应用?

时间:2017-06-15 20:19:12

标签: isabelle

我试图了解Isabelle / HOL理论的使用。我写了并保存了一个理论文件:

theory MonoidalLogic
  imports sequents
begin
consts
  Test :: "test"
axiomatization where
  identity "φ⊢φ" and
  cut "φ⊢ψ;ψ⊢ρ⟹φ⊢ρ"
  l "φ⊢⊤⨂ψ⟺φ⊢ψ"
  r "φ⊢ψ⨂⊤⟺φ⊢ψ"
end

现在我想得到一些关于这个理论的反馈 - Isabelle是否接受了它,以某种方式编译它 - 我怎么能这样做?在此之后 - 我想使用这个理论 - 例如写一些引理并为此调用交互式证明会话。我怎样才能做到这一点?我可以在jEdit对话框中输入理论但我没有收到任何反馈。我不明白我应该如何关闭这个理论文件并开始我可以使用这个理论文件的交互式会话?

据我了解,我应该:

  1. 写初始理论文件;

  2. 调用交互式会话,我可以找到这个理论的一些引理的证据

  3. 如果我设法找到了引理证据,那么我可以在理论文件中添加这些引理,以便在其他证明中进一步立即使用(无需重复证明它们)。

  4. 我正在阅读Concrete Semantics,LNCS教程和其他教程,但我没有看到这个基本工作流程的示例 - 如何执行此工作流程以及我是否正确理解。

    我的意图是采用这个逻辑http://www.sciencedirect.com/science/article/pii/S1570868314000573并在Isabelle / HOL中为这个逻辑创建定理证明器,即将这个逻辑自动化为Isabelle中的对象逻辑。

    据我所知 - 主要的jEdit窗口用于编辑你的理论文件。所以 - 我应该寻找一些控制台(附加窗口),我可以运行lemmas,针对这个理论的引理证明命令?

2 个答案:

答案 0 :(得分:2)

  

我可以在jEdit对话框中输入理论,但我没有收到任何反馈。

这听起来好像你可能没有安装Isabelle。在工作安装中,任何扩展名为.thy的文件都会在Isabelle / jEdit中进行检查。例如,错误以红色突出显示,您将在“输出”和“状态”面板中看到证明器输出,您可以按住Ctrl键单击实体以跳转到它们的定义。

  

所以 - 我应该寻找一些控制台(附加窗口),我可以运行lemmas,针对这个理论的引理证明命令?

你不必,但你可以。在system manual中,描述了如何运行一组理论的“批量构建”(在Isabelle术语中:“一个会话”)。在最简单的情况下,归结为使用适当的标志运行isabelle mkroot后跟isabelle build。有关自包含示例,请参阅该手册中的§3.2。

  

在此之后 - 我想使用这个理论 - 例如写一些引理并为此调用交互式证明会话。

在同一个Isabelle / jEdit窗口中,您可以创建一个新的理论文件,为其命名,并按如下方式导入您的理论:

theory Test
imports MonoidalLogic
begin

答案 1 :(得分:1)

确保将您的理论(.thy)文件保存在jEdit路径中的一个文件夹中。我相信最好使用$ ISABELLE_HOME_USER作为文件的根目录。您可以在“文件保存”弹出窗口的“收藏夹”下找到它。那解决了我的类似问题。