wenzelm [Tue, 29 Sep 2009 21:36:49 +0200] rev 32763
tuned header;
wenzelm [Tue, 29 Sep 2009 21:36:33 +0200] rev 32762
Thomas Sewell, NICTA: more efficient HOL/record implementation;
wenzelm [Tue, 29 Sep 2009 21:34:59 +0200] rev 32761
tuned whitespace -- recover basic Isabelle conventions;
wenzelm [Tue, 29 Sep 2009 18:14:08 +0200] rev 32760
merged
Thomas Sewell <tsewell@nicta.com.au> [Tue, 29 Sep 2009 14:26:33 +1000] rev 32759
Merge with isabelle dev changes.
Thomas Sewell <tsewell@nicta.com.au> [Tue, 29 Sep 2009 14:25:42 +1000] rev 32758
Replace OldTerm.term_vars with Term.add_vars in named_cterm_instantiate.
Thomas Sewell <tsewell@nicta.com.au> [Mon, 28 Sep 2009 15:37:19 +1000] rev 32757
Avoid a possible variable name conflict in instantiating a theorem.
Instantiating a theorem variable with new variables created a possible
variable name conflict if a record was defined with a field named
'f', 'x' etc. Using variable indices of 1 avoids the problem.
Thomas Sewell <tsewell@nicta.com.au> [Mon, 28 Sep 2009 14:16:01 +1000] rev 32756
Fix unescaped expressions breaking latex output in Record.thy
Expressions containing _ and ^ need to be adjusted or antiquoted in
text comments for latex compatibility. This is in fact a little
annoying, since it makes the comment less readable in both source
and HTML form.
Thomas Sewell <tsewell@nicta.com.au> [Mon, 28 Sep 2009 11:13:11 +1000] rev 32755
Merge record patch with updates from isabelle mainline.
Thomas Sewell <tsewell@nicta.com.au> [Fri, 25 Sep 2009 19:04:18 +1000] rev 32754
Avoid record-inner constants in polymorphic definitions in Bali
The Bali package needs to insert a record extension into a type
class and define an associated polymorphic constant. There is no
elegant way to do this.
The existing approach was to insert every record extension into
the type class, defining the polymorphic constant at each layer
using inner operations created by the record package. Some of
those operations have been removed. They can be replaced by use
of record_name.extend if necessary, but we can also sidestep
this altogether.
The simpler approach here is to use defs(overloaded) once to
provide a single definition for the composition of all the type
constructors, which seems to be permitted. This gets us exactly
the fact we need, with the cost that some types that were
admitted to the type class have no definition for the constant
at all.