[isabelle-dev] error in cook book ?

Makarius makarius at sketis.net
Wed Sep 8 13:40:39 CEST 2010

On Tue, 7 Sep 2010, Nils Jähnig wrote:

> 1)
> i'm reading the cook book, and in chapter 6, page 135 on the bottom
> (latest draft from August 28th) , there is a piece of code including
> Simplifier.simproc_global_i, which gives an error.

The deeper problem here is on page 1, where it says "The code is as far as 
possible checked against the Isabelle distribution." with footnote 1 
saying "unidentified repository version".  This means it has been compiled 
with an arbitrary version that Christian happened to have on his laptop at 
some point.

The official Isabelle distribution is Isabelle2009-2 from June 2010.  You 
should stick with that if you want to do serious work, and not just have 
the feeling to be at the cutting edge.  (Paradoxically, "recent 
development snapshots" can age much faster than official releases, so you 
can be more out-of-date with unofficial versions if you to not catch up 
every few weeks.)

> 2)
> then there is section about FOCUS, on page 116/117, which i copy to
> show the lines
> lemma
> shows "B =⇒ ∀ x. A x"
> apply(tactic {* rtac @{thm allI} 1 *})
> it will produce the expected goal state
> goal (1 subgoal):
> 1. x. B =⇒ A x <<< THIS LINE <<<
> But if we apply the same tactic inside FOCUS we obtain
> lemma
> 117
> shows "B =⇒ ∀ x. A x"
> apply(tactic {* Subgoal.FOCUS (fn _ => rtac @{thm allI} 1) @{context} 1 *})
> it will produce the goal state
> goal (1 subgoal):
> 1. x. B =⇒ A x <<< THIS LINE <<<
> from what the text says, this should be two different goals ... so
> either the text should be changed, or the example.

The text describes the situation of Isabelle2009, not the latest version 
of Isabelle2009-2.  (The example stems from early adoption of the then new 
FOCUS combinator by Christian and Cezary, and I have later ironed out some 
surprising effects based on their experience with it.)

> 3)
> And finally a question: i can't see messages, like from print_tac or
> the examples around 1), in emacs. so i used PGeclipse. which option do
> i have to (un)check, to see those messages in emacs?

According to the sources of Isabelle2009-2, print_tac outputs on the 
"tracing" channel.  It is up to the frontend where that appears visually 
in the end.  Proof General / Emacs version 3.7.x and pre-4.x have a 
separate "*trace*" buffer for that.  It depends on the actual Emacs 
version, OS platform, user preferences etc. how that behaves in detail. 
You might have to switch to that Emacs buffer explicitly.

Did you really manage to run PGEclipse?  I have never seen it in action 


More information about the isabelle-dev mailing list