isabelle - 如何在 Windows 10 上将 MMT 注册为 Isabelle 组件(调用 isabelle mmt_build)?
问题描述
我已经在 C:\Homes\Isabelle2021\Isabelle2021 中安装了 Isabelle2021,在 C:\Homes\MMT21 中安装了 MMT(来自https://uniformal.github.io//doc/setup/ )并且我在 C: \Homes\Isabelle2021\Isabelle2021\etc\Components 文件:
/cygdrive/c/Homes/MMT21
/cygdrive/c/Homes/MMT21/systems/MMT/deploy
但是我的 cygwin-terminal.bat 命令给出了找不到组件的错误:
C:\Homes\Isabelle2021\Isabelle2021>cygwin-terminal
This is the GNU Bash interpreter of Cygwin.
Use command "isabelle" to invoke Isabelle tools.
tomr@DESKTOP /cygdrive/c/Homes/Isabelle2021/Isabelle2021
$ isabelle mmt_build
*** Unknown Isabelle tool: "mmt_build"
tomr@DESKTOP /cygdrive/c/Homes/Isabelle2021/Isabelle2021
我试图关注https://drops.dagstuhl.de/opus/volltexte/2020/13065/pdf/LIPIcs-TYPES-2019-1.pdf:
如果 Mmt 目录作为组件注册到 Isabelle,它提供了一个工具 isabelle mmt_build(shell 脚本)来构建启用了 Isabelle 支持的 MMT。生成的 mmt.jar 将提供更多工具 isabelle mmt_import 和 isabelle mmt_server(在 Scala 中)来执行导入并查看其结果。用户只需要调用,例如,isabelle mmt_import -B ZF。
我的努力有什么问题?Isabelle 组件的注册是否需要额外的活动?mmt.jar 真的非常适合 Isabelle(与 MMT 相对的一个特定工具是非常通用的系统),mmt.jar 真的包含这样的 mmt_build 命令吗?
我将阅读https://isabelle.in.tum.de/dist/Isabelle2021/doc/system.pdf第 7.2 章“管理 Isabelle 组件”,也许它会有所帮助,也许它会在 Windows 上运行......
解决方案
这是部分答案。由于错误消息,无法简单添加 MMT 目录:
tomr@ /cygdrive/c/Homes/Isabelle2021/Isabelle2021
$ isabelle components -x /cygdrive/c/Homes/MMT21
*** Bad component directory: "/cygdrive/c/Homes/MMT21"
我在 Isabelle 源代码https://isabelle-dev.sketis.net/file/data/ldiwqhsxa4d5zojczqye/PHID-FILE-2yuwbxlojqunqpdcqvqg/file中找到了这样做的原因:
def update_components(add: Boolean, path0: Path, progress: Progress = new Progress): Unit =
{
val path = path0.expand.absolute
if (!(path + Path.explode("etc/settings")).is_file &&
!(path + Path.explode("etc/components")).is_file) error("Bad component directory: " + path)
因此,MMT 目录必须包含 etc/settings 文件(对于用作 Isabelle 组件的目录)。MMT 没有,因此,我从现有的 Isabelle 组件中抓取了一个这样的文件,并将其修改为:
# -*- shell-script -*- :mode=shellscript:
classpath "C:/Homes/MMT21/mmt.jar"
isabelle_scala_service "isabelle.FlatLightLaf"
isabelle_scala_service "isabelle.FlatDarkLaf"
在 MMT21 目录中拥有该文件后,我设法将 MMT21 添加为组件:
tomr@DESKTOP /cygdrive/c/Homes/Isabelle2021/Isabelle2021
$ isabelle components -u /cygdrive/c/Homes/MMT21
Added component "/cygdrive/c/Homes/MMT21"
但是,不幸的是,它并没有解决我最初的问题,我仍然收到一个错误:
tomr@DESKTOP /cygdrive/c/Homes/Isabelle2021/Isabelle2021
$ isabelle mmt_build
*** Unknown Isabelle tool: "mmt_build"
所以,知道我要深入到谷歌和各自的项目网站去挖掘这个......
补充:关于这个 有很好的材料https://sketis.net/2019/mmt-as-component-for-isabelle2019和https://github.com/UniFormal/MMT/tree/master/src/mmt-isabelle,因此,似乎有一个特殊的 jar,而不是主要的 mmt.jar。我现在正在阅读这个。我将看看它是否适用于 Isabelle2021,或者我应该将它与我的旧 Isabelle2020 一起使用。
推荐阅读
- windows - Tensorflow CPU版本安装错误(DLL加载失败) Win7, Python 3.5.0
- c - C中的广度优先搜索代码,可能的堆栈溢出
- javascript - 试图理解绑定方法的底层代码
- git - Github 在自述文件中保留链接到最新版本的资产文件
- text - Julia 从文本文件中读取并在评论后跳过
- c# - 如何定义一个自定义 getter,它使用从同一类的另一个接口显式定义的字段?
- html - 如何让这些 id 标签正确设置样式?
- python - 如何修改我的垃圾箱包装算法,以使一件物品不会被分配到多个垃圾箱?
- c++ - 将最高有效设置位以下的所有位归零的最有效方法是什么?
- graph-algorithm - 当 RRT 用于没有解决方案的配置空间时会发生什么?