是否可以从外部程序(Java,Scheme / Guile)调用Isabelle?我还没有设法找到有关API的文档
答案 0 :(得分:2)
类似的问题时不时出现,例如here和there。尽管如此,他们都没有谈到Java或Scheme,所以这里是“Java”部分的一个稍微适应的答案。
Isabelle本身没有可以从外部工具调用的“API”。一般的理念是应用程序应该存在于Isabelle或Archive of Formal Proofs中。大多数情况下,这意味着您的应用程序需要在Isabelle / ML中实现。
但是,如果你想使用Isabelle 作为外部工具,你必须玩一些技巧。我将这些技巧捆绑为Scala库(libisabelle)。 a paper中提供了有关其工作原理的概述。
libisabelle本身可作为独立库提供,其中包含一些基本文档,可让您开始使用。有关详细信息,请参阅the repository。从本质上讲,它允许你
term"$n > 0 --> ($b & ${HOLogic.True})"
)没有内置例程来设置目标状态并应用一些证明步骤,但必要的基础设施就在那里。
libisabelle在Scala中实现,但您也可以使用Java API。我知道有一个用户成功使用了那个。您可以查看存储库中的an example。