[isabelle-dev] NEWS: discontinued obsolete attribute "standard"

Peter Lammich lammich at in.tum.de
Sat Feb 1 11:19:37 CET 2014


So, ad-hoc massaging of a lemma is no longer possible?

E.g., I often use things like 
  by (auto ... dest!: sym[of "pop A", standard] ...)

in cases where I definitely do not want to expose the subgoal where the
"pop <bound-var> = ..." occurs into Isar.

So, if I got it right, the correct way would now be:

lemmas aux = sym[of "pop A"] for A
...
by (auto ... dest: aux ...)


or, if I do not like aux-lemmas spamming my namespace:

proof -
  {fix a note sym[of "pop A"]} note aux=this
  show ?thesis by (auto ... dest: aux ...)
qed

--
  Peter





On Fr, 2014-01-31 at 18:54 +0100, Makarius wrote:
> *** Pure ***
> 
> * Obsolete attribute "standard" has been discontinued (legacy since
> Isabelle2012).  Potential INCOMPATIBILITY, use explicit 'for' context
> where instantiations with schematic variables are intended (for
> declaration commands like 'lemmas' or attributes like "of").  The
> following temporary definition may help to port old applications:
> 
>    attribute_setup standard =
>      "Scan.succeed (Thm.rule_attribute (K Drule.export_without_context))"
> 
> 
> New in Isabelle2012 (May 2012)
> ------------------------------
> 
> * Commands 'lemmas' and 'theorems' allow local variables using 'for'
> declaration, and results are standardized before being stored.  Thus
> old-style "standard" after instantiation or composition of facts
> becomes obsolete.  Minor INCOMPATIBILITY, due to potential change of
> indices of schematic variables.
> 
> 
> This refers to Isabelle/a56099a6447a.
> 
> I was unsure if that had to be explicitly announced here at all -- 
> "standard" became out of use many years ago.  There were only very few 
> left-over applications due to lack of "eigen-context" for instantiations.
> 
> So the short story is: Whenever an ancient "standard" pops out of the 
> mists of time, remove it, and potentially say "for x y z" according to 
> what is actually intended.  Either in a narrow scope within the "of" / 
> "where" attribute, or in a broader scope around a 'lemmas' / 'theorems' / 
> 'declares' command.
> 
> 
>  	Makarius
> _______________________________________________
> isabelle-dev mailing list
> isabelle-dev at in.tum.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev




More information about the isabelle-dev mailing list