Interpretation in locales.
authorballarin
Wed, 17 Aug 2005 17:03:20 +0200
changeset 17095669005f73b81
parent 17094 7a3c2efecffe
child 17096 8327b71282ce
Interpretation in locales.
NEWS
     1.1 --- a/NEWS	Wed Aug 17 17:02:16 2005 +0200
     1.2 +++ b/NEWS	Wed Aug 17 17:03:20 2005 +0200
     1.3 @@ -155,6 +155,9 @@
     1.4  rather than 'types'.  INCOMPATIBILITY for new object-logic
     1.5  specifications.
     1.6  
     1.7 +* Attributes 'induct' and 'cases': type or set names may now be
     1.8 +locally fixed variables as well.
     1.9 +
    1.10  * Simplifier: can now control the depth to which conditional rewriting
    1.11  is traced via the PG menu Isabelle -> Settings -> Trace Simp Depth
    1.12  Limit.
    1.13 @@ -186,21 +189,33 @@
    1.14  
    1.15  
    1.16  *** Locales ***
    1.17 -  
    1.18 -* New commands for the interpretation of locale expressions in
    1.19 -theories ('interpretation') and proof contexts ('interpret').  These
    1.20 -take an instantiation of the locale parameters and compute proof
    1.21 -obligations from the instantiated specification.  After the
    1.22 -obligations have been discharged, the instantiated theorems of the
    1.23 -locale are added to the theory or proof context.  Interpretation is
    1.24 -smart in that already active interpretations do not occur in proof
    1.25 -obligations, neither are instantiated theorems stored in duplicate.
    1.26 -Use print_interps to inspect active interpretations of a particular
    1.27 -locale.  For details, see the Isar Reference manual.
    1.28 +
    1.29 +* New commands for the interpretation of locale expressions in theories (1),
    1.30 +locales (2) and proof contexts (3).  These generate proof obligations from
    1.31 +the expression specification.  After the obligations have been discharged,
    1.32 +theorems of the expression are added to the theory, target locale or proof
    1.33 +context.  The synopsis of the commands is a follows:
    1.34 +  (1) interpretation expr inst
    1.35 +  (2) interpretation target < expr
    1.36 +  (3) interpret expr inst
    1.37 +Interpretation in theories and proof contexts require a parameter
    1.38 +instantiation of terms from the current context.  This is applied to
    1.39 +specifications and theorems of the interpreted expression.  Interpretation
    1.40 +in locales only permits parameter renaming through the locale expression.
    1.41 +Interpretation is smart in that interpretation that are active already
    1.42 +do not occur in proof obligations, neither are instantiated theorems stored
    1.43 +in duplicate.  Use 'print_interps' to inspect active interpretations of
    1.44 +a particular locale.  For details, see the Isar Reference manual.
    1.45  
    1.46  INCOMPATIBILITY: former 'instantiate' has been withdrawn, use
    1.47  'interpret' instead.
    1.48  
    1.49 +* New context element 'constrains' for adding type constraints to parameters.
    1.50 +
    1.51 +* Context expressions: renaming of parameters with syntax redeclaration.
    1.52 +
    1.53 +* Locale declaration: 'includes' disallowed.
    1.54 +
    1.55  * Proper static binding of attribute syntax -- i.e. types / terms /
    1.56  facts mentioned as arguments are always those of the locale definition
    1.57  context, independently of the context of later invocations.  Moreover,
    1.58 @@ -218,22 +233,11 @@
    1.59  on the context and the facts involved -- may have to assign parsed
    1.60  values to argument tokens explicitly.
    1.61  
    1.62 -* New context element "constrains" adds type constraints to parameters --
    1.63 -there is no logical significance.
    1.64 -
    1.65 -* Context expressions: renaming parameters permits syntax
    1.66 -redeclaration as well.
    1.67 -
    1.68 -* Locale definition: 'includes' now disallowed.
    1.69 -
    1.70  * Changed parameter management in theorem generation for long goal
    1.71  statements with 'includes'.  INCOMPATIBILITY: produces a different
    1.72  theorem statement in rare situations.
    1.73  
    1.74 -* Attributes 'induct' and 'cases': type or set names may now be
    1.75 -locally fixed variables as well.
    1.76 -
    1.77 -* Antiquotations now provide the option 'locale=NAME' to specify an
    1.78 +* Antiquotations provide the option 'locale=NAME' to specify an
    1.79  alternative context used for evaluating and printing the subsequent
    1.80  argument, as in @{thm [locale=LC] fold_commute}, for example.
    1.81