不使用GUI与Isabelle交互

不使用GUI与Isabelle交互,isabelle,proof,isar,Isabelle,Proof,Isar,我正在尝试实现Isabelle/JEdit的命令行版本,以便 在另一台docker/机器上运行Isabelle服务器 允许集成更多编辑器,如Vim或Emacs 允许自动化代理检查和编写证据 从这一点来看,似乎没有办法将杰迪特与伊莎贝尔过程分开。我也读过《伊莎贝尔手册》,手册中没有太多关于协议的信息。e、 g $ isabelle server # On another machine/terminal $ isabelle client help OK ["cancel"

我正在尝试实现Isabelle/JEdit的命令行版本,以便

  • 在另一台docker/机器上运行Isabelle服务器
  • 允许集成更多编辑器,如Vim或Emacs
  • 允许自动化代理检查和编写证据
  • 从这一点来看,似乎没有办法将杰迪特与伊莎贝尔过程分开。我也读过《伊莎贝尔手册》,手册中没有太多关于协议的信息。e、 g

    $ isabelle server # On another machine/terminal
    
    $ isabelle client
    
    help
    OK ["cancel","echo","help","purge_theories","session_build","session_start","session_stop","shutdown","use_theories"]
    session_start
    ERROR {"kind":"error","message":"Bad argument for command 'session_start'","argument":""}
    

    另一个提供此类功能的库是,但我不清楚它是否能够执行此类交互。

    这是一项重大任务

    官方工具 从编辑的角度来看,我认为最简单的答案是使用LSP协议。Isabelle中已有一台服务器,因此您不必重新发明轮子

    也可以直接在Isabelle/ML或Isabelle/scala中编写工具,特别是如果您希望最终在Isabelle中包含您的工具。这也避免了启动Isabelle和基本会话等整个过程

    我相信伊莎贝尔的过程是在更高的层次上。它适用于课程和理论,而不是个人目标

    外部工具
    免责声明:在我的空闲时间,所以我倾向于相信它比PG好。我以前在SSH上使用过Isabelle