从外部软件调用 Isabelle (Java, Scheme)
Calling Isabelle from external software (Java, Scheme)
是否可以从外部程序调用 Isabelle (Java, Scheme/Guile)?我没有设法找到关于 API
的文档
类似的问题不时出现,例如 and there。 None 他们谈论的是 Java 或 Scheme,所以这里是 "Java" 部分的稍微改编的答案。
正在从 Java
呼叫伊莎贝尔
Isabelle 本身没有可以从外部工具调用的 "API"。一般的理念是应用程序应该存在于 Isabelle 或 Archive of Formal Proofs 中。大多数时候,这意味着您的应用程序需要在 Isabelle/ML.
中实施
不过,如果想把伊莎贝尔当作外挂工具使用,就得玩点花样了。我将这些技巧打包成一个 Scala 库 (libisabelle). An overview of how this works is given in a paper.
libisabelle 本身作为一个独立的库提供,包括一些应该允许您入门的基本文档。有关详细信息,请参阅 the repository。本质上,它可以让你
- 在 Scala 中管理 Isabelle 安装(下载、解压)
- 不同 Isabelle 版本的摘要(目前支持:2016 和 2016-1)
- Isabelle 会话的生命周期管理(构建、启动、停止)
- 将 Isabelle/ML 函数视为 Scala 函数
- 像 Scala 中的 Isabelle 术语语法这样的好东西 (
term"$n > 0 --> ($b & ${HOLogic.True})"
)
没有内置例程来设置目标状态和应用一些证明步骤,但必要的基础设施都在那里。
libisabelle 是在 Scala 中实现的,但是您也可以使用 Java API。我知道有一个用户成功地使用了那个。您可以查看存储库中的 an example。
是否可以从外部程序调用 Isabelle (Java, Scheme/Guile)?我没有设法找到关于 API
的文档类似的问题不时出现,例如
正在从 Java
呼叫伊莎贝尔Isabelle 本身没有可以从外部工具调用的 "API"。一般的理念是应用程序应该存在于 Isabelle 或 Archive of Formal Proofs 中。大多数时候,这意味着您的应用程序需要在 Isabelle/ML.
中实施不过,如果想把伊莎贝尔当作外挂工具使用,就得玩点花样了。我将这些技巧打包成一个 Scala 库 (libisabelle). An overview of how this works is given in a paper.
libisabelle 本身作为一个独立的库提供,包括一些应该允许您入门的基本文档。有关详细信息,请参阅 the repository。本质上,它可以让你
- 在 Scala 中管理 Isabelle 安装(下载、解压)
- 不同 Isabelle 版本的摘要(目前支持:2016 和 2016-1)
- Isabelle 会话的生命周期管理(构建、启动、停止)
- 将 Isabelle/ML 函数视为 Scala 函数
- 像 Scala 中的 Isabelle 术语语法这样的好东西 (
term"$n > 0 --> ($b & ${HOLogic.True})"
)
没有内置例程来设置目标状态和应用一些证明步骤,但必要的基础设施都在那里。
libisabelle 是在 Scala 中实现的,但是您也可以使用 Java API。我知道有一个用户成功地使用了那个。您可以查看存储库中的 an example。