我将Isabelle 2013-2安装到已经拥有2012版本的Windows机器上。
尝试从名义上的Isabelle发行版中读取Lambda.thy(已在其邮件列表中对此进行了讨论)我得到了
Outer syntax error: command expected,
but identifier atom_decl was found
在
theory Lambda
imports
"../Nominal2"
begin
atom_decl name
版本冲突会导致这种情况吗?我该如何解决呢?
Isabelle是否在某些文件或注册表中存储状态?
答案 0 :(得分:1)
注意:这与同时安装不同的Isabelle版本无关。此外,我认为它是正确的行为,因为除非您加载相应的理论文件(见下文),否则未定义atom_decl
。
答案:我试图重现相同的情况(在我的linux机器上)。于是我下载了
Isabelle2013-2和Nominal2以及已安装(即,将tar
- 文件解压缩)到本地目录~/tmp/
。
然后,通过点击Windows中的图标模仿启动 Isabelle / jEdit ,我是通过
开始的$ ~/tmp/Isabelle2013-2/Isabelle2013-2
获得一个空缓冲区(Scratch.thy
)。然后我打开了
~/tmp/Nominal2-Isabelle2013-1/Nominal/Ex/Lambda.thy
通过文件 - >打开...... 。 (一般说明:目录不应该重命名为Nominal2-Isabelle2013-2
?)
此时我会弹出一个询问自动加载所需文件的弹出窗口。只要我没有“回答”这个弹出窗口(或通过回答 No 来关闭它),我就会得到你上面描述的错误信息,即
Outer syntax error: command expected,
but identifier atom_decl was found
如果我回答是,则会加载所有必需的理论,因此将定义命令atom_decl
并且一切正常。
atom_decl
在nominal_atoms.ML
中定义,由Nominal2_Base.thy
使用,因此仅在加载此理论后定义。