0

I installed Isabelle 2013-2 onto a Windows machine that already had a 2012 version.

Trying to read Lambda.thy from the Nominal Isabelle distribution (already discussed this on its mailing list) I get

Outer syntax error: command expected,
but identifier atom_decl was found

at

theory Lambda
imports
  "../Nominal2"
begin

atom_decl name

Could a version conflict cause this? How can I fix it then?

Does Isabelle store a state in some files or in the registry?

Gergely
  • 6,879
  • 6
  • 25
  • 35
  • Do you use Isabelle/jEdit or Isabelle/ProofGeneral? How did you start the interface? I'm a linux-user myself, but I guess the following is the same on windows (since Isabelle makes use of cygwin): user relevant data is stored in $HOME/.isabelle/, which makes sure that different versions do not interfere (since they are "living" in different directories. – chris Jan 18 '14 at 10:10
  • @chris, I use the jEdit version. Indeed there were separate version-named directories under cygwin's $HOME/.isabelle. I started it by clicking on the Isabelle icon deployed on my desktop. Is this atom_decl defined after the 2012 release? – Gergely Jan 18 '14 at 17:18
  • Could you give more details? From where exactly did you obtain the Nominal Isabelle distribution and how did you "install" it as well as Isabelle2013-2. Moreover, what is written in the title bar of Isabelle/jEdit? (Isabelle2012 or Isabelle2013-2?) – chris Jan 20 '14 at 08:09
  • From the official sources, both Nominal and Isabelle. The title bar says 2013-2. How can I check which version does it use? – Gergely Jan 20 '14 at 08:17
  • I installed Nominal Isabelle by untarring to my Windows home directory. – Gergely Jan 20 '14 at 08:18
  • The title bar should be valid as a check. As for "from the official sources". Could you be more specific (which url and which tar file exactly)? Otherwise it is hard for me to reproduce your exact setup. – chris Jan 20 '14 at 08:23
  • Sorry for not being precise. [Isabelle](http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/Isabelle2013-2.exe) and [Nominal](http://www.inf.kcl.ac.uk/staff/urbanc/Publications/Nominal2-2013-2.tgz) I am using Windows 7. – Gergely Jan 20 '14 at 08:27

1 Answers1

1

Note: This has nothing to do with having different Isabelle versions installed at the same time. Moreover, I would consider it correct behaviour, since atom_decl is not defined unless you load the corresponding theory file (see below).

Answer: I tried to reproduce the same situation (on my linux machine). Thus I downloaded Isabelle2013-2 and Nominal2 and installed (i.e., unpacked the tar-files) it into the local directory ~/tmp/.

Then, imitating starting Isabelle/jEdit by clicking on an icon in windows, I started it via

$ ~/tmp/Isabelle2013-2/Isabelle2013-2

getting an empty buffer (Scratch.thy). Then I opened

~/tmp/Nominal2-Isabelle2013-1/Nominal/Ex/Lambda.thy

via File -> Open .... (General note: shouldn't the directory be renamed to Nominal2-Isabelle2013-2?)

At this point I get a popup asking about Auto loading of required files. As long as I do not "answer" this popup (or close it by answering with No), I get exactly the error message you describe above, i.e.,

Outer syntax error: command expected,
but identifier atom_decl was found

If I answer with Yes, all required theories are loaded and thus the command atom_decl will be defined and everything is fine.

atom_decl is defined in nominal_atoms.ML which is used by Nominal2_Base.thy, and thus only defined after loading this theory.

chris
  • 4,988
  • 20
  • 36
  • I did say yes to autoloading but Isabelle/jedit did not automatically recover from the error. Sorry I am not familiar with it. And thanks. – Gergely Jan 20 '14 at 12:03
  • Of course you have to wait until the theory `Nominal2_Base.thy` is actually loaded (which might take some time... in the Theory panel you can monitor the progress of the loading process). But after that, the error should be gone (assuming that continuous checking is enabled). – chris Jan 20 '14 at 12:04