NEWS
changeset 30106 351fc2f8493d
parent 30085 3d6aab74a184
child 30163 faf95eb3f375
equal deleted inserted replaced
30105:37f47ea6fed1 30106:351fc2f8493d
     3 
     3 
     4 New in this Isabelle version
     4 New in this Isabelle version
     5 ----------------------------
     5 ----------------------------
     6 
     6 
     7 *** General ***
     7 *** General ***
       
     8 
       
     9 * The main reference manuals (isar-ref, implementation, system) have
       
    10 been updated and extended.  Formally checked references as hyperlinks
       
    11 are now available in uniform manner.
     8 
    12 
     9 * Simplified main Isabelle executables, with less surprises on
    13 * Simplified main Isabelle executables, with less surprises on
    10 case-insensitive file-systems (such as Mac OS).
    14 case-insensitive file-systems (such as Mac OS).
    11 
    15 
    12   - The main Isabelle tool wrapper is now called "isabelle" instead of
    16   - The main Isabelle tool wrapper is now called "isabelle" instead of
    44 
    48 
    45 * Proofs of fully specified statements are run in parallel on
    49 * Proofs of fully specified statements are run in parallel on
    46 multi-core systems.  A speedup factor of 2-3 can be expected on a
    50 multi-core systems.  A speedup factor of 2-3 can be expected on a
    47 regular 4-core machine, if the initial heap space is made reasonably
    51 regular 4-core machine, if the initial heap space is made reasonably
    48 large (cf. Poly/ML option -H).  [Poly/ML 5.2.1 or later]
    52 large (cf. Poly/ML option -H).  [Poly/ML 5.2.1 or later]
    49 
       
    50 * The Isabelle System Manual (system) has been updated, with formally
       
    51 checked references as hyperlinks.
       
    52 
    53 
    53 * Generalized Isar history, with support for linear undo, direct state
    54 * Generalized Isar history, with support for linear undo, direct state
    54 addressing etc.
    55 addressing etc.
    55 
    56 
    56 * Recovered hiding of consts, which was accidentally broken in
    57 * Recovered hiding of consts, which was accidentally broken in
   109 * Changed defaults for unify configuration options:
   110 * Changed defaults for unify configuration options:
   110 
   111 
   111   unify_trace_bound = 50 (formerly 25)
   112   unify_trace_bound = 50 (formerly 25)
   112   unify_search_bound = 60 (formerly 30)
   113   unify_search_bound = 60 (formerly 30)
   113 
   114 
   114 * Different bookkeeping for code equations:
   115 * Different bookkeeping for code equations (INCOMPATIBILITY):
   115   a) On theory merge, the last set of code equations for a particular constant
   116 
   116      is taken (in accordance with the policy applied by other parts of the
   117   a) On theory merge, the last set of code equations for a particular
   117      code generator framework).
   118      constant is taken (in accordance with the policy applied by other
   118   b) Code equations stemming from explicit declarations (e.g. code attribute)
   119      parts of the code generator framework).
   119      gain priority over default code equations stemming from definition, primrec,
   120 
   120      fun etc.
   121   b) Code equations stemming from explicit declarations (e.g. code
   121   INCOMPATIBILITY.
   122      attribute) gain priority over default code equations stemming
   122 
   123      from definition, primrec, fun etc.
   123 * Global versions of theorems stemming from classes do not carry
   124 
   124 a parameter prefix any longer.  INCOMPATIBILITY.
   125 * Global versions of theorems stemming from classes do not carry a
       
   126 parameter prefix any longer.  INCOMPATIBILITY.
   125 
   127 
   126 * Dropped locale element "includes".  This is a major INCOMPATIBILITY.
   128 * Dropped locale element "includes".  This is a major INCOMPATIBILITY.
   127 In existing theorem specifications replace the includes element by the
   129 In existing theorem specifications replace the includes element by the
   128 respective context elements of the included locale, omitting those that
   130 respective context elements of the included locale, omitting those
   129 are already present in the theorem specification.  Multiple assume
   131 that are already present in the theorem specification.  Multiple
   130 elements of a locale should be replaced by a single one involving the
   132 assume elements of a locale should be replaced by a single one
   131 locale predicate.  In the proof body, declarations (most notably
   133 involving the locale predicate.  In the proof body, declarations (most
   132 theorems) may be regained by interpreting the respective locales in the
   134 notably theorems) may be regained by interpreting the respective
   133 proof context as required (command "interpret").
   135 locales in the proof context as required (command "interpret").
       
   136 
   134 If using "includes" in replacement of a target solely because the
   137 If using "includes" in replacement of a target solely because the
   135 parameter types in the theorem are not as general as in the target,
   138 parameter types in the theorem are not as general as in the target,
   136 consider declaring a new locale with additional type constraints on the
   139 consider declaring a new locale with additional type constraints on
   137 parameters (context element "constrains").
   140 the parameters (context element "constrains").
   138 
   141 
   139 * Dropped "locale (open)".  INCOMPATIBILITY.
   142 * Dropped "locale (open)".  INCOMPATIBILITY.
   140 
   143 
   141 * Interpretation commands no longer attempt to simplify goal.
   144 * Interpretation commands no longer attempt to simplify goal.
   142 INCOMPATIBILITY: in rare situations the generated goal differs.  Use
   145 INCOMPATIBILITY: in rare situations the generated goal differs.  Use
   143 methods intro_locales and unfold_locales to clarify.
   146 methods intro_locales and unfold_locales to clarify.
   144 
   147 
   145 * Interpretation commands no longer accept interpretation attributes.
   148 * Interpretation commands no longer accept interpretation attributes.
   146 INCOMPATBILITY.
   149 INCOMPATBILITY.
   147 
   150 
   148 * Complete re-implementation of locales.  INCOMPATIBILITY.
   151 * Complete re-implementation of locales.  INCOMPATIBILITY.  The most
   149 The most important changes are listed below.  See documentation
   152 important changes are listed below.  See documentation (forthcoming)
   150 (forthcoming) and tutorial (also forthcoming) for details.
   153 and tutorial (also forthcoming) for details.
   151 
   154 
   152 - In locale expressions, instantiation replaces renaming.  Parameters
   155 - In locale expressions, instantiation replaces renaming.  Parameters
   153 must be declared in a for clause.  To aid compatibility with previous
   156 must be declared in a for clause.  To aid compatibility with previous
   154 parameter inheritance, in locale declarations, parameters that are not
   157 parameter inheritance, in locale declarations, parameters that are not
   155 'touched' (instantiation position "_" or omitted) are implicitly added
   158 'touched' (instantiation position "_" or omitted) are implicitly added
   159 locale expressions and context elements.  The latter is particularly
   162 locale expressions and context elements.  The latter is particularly
   160 useful in locale declarations.
   163 useful in locale declarations.
   161 
   164 
   162 - More flexible mechanisms to qualify names generated by locale
   165 - More flexible mechanisms to qualify names generated by locale
   163 expressions.  Qualifiers (prefixes) may be specified in locale
   166 expressions.  Qualifiers (prefixes) may be specified in locale
   164 expressions.  Available are normal qualifiers (syntax "name:") and strict
   167 expressions.  Available are normal qualifiers (syntax "name:") and
   165 qualifiers (syntax "name!:").  The latter must occur in name references
   168 strict qualifiers (syntax "name!:").  The latter must occur in name
   166 and are useful to avoid accidental hiding of names, the former are
   169 references and are useful to avoid accidental hiding of names, the
   167 optional.  Qualifiers derived from the parameter names of a locale are no
   170 former are optional.  Qualifiers derived from the parameter names of a
   168 longer generated.
   171 locale are no longer generated.
   169 
   172 
   170 - "sublocale l < e" replaces "interpretation l < e".  The instantiation
   173 - "sublocale l < e" replaces "interpretation l < e".  The
   171 clause in "interpretation" and "interpret" (square brackets) is no
   174 instantiation clause in "interpretation" and "interpret" (square
   172 longer available.  Use locale expressions.
   175 brackets) is no longer available.  Use locale expressions.
   173 
   176 
   174 - When converting proof scripts, be sure to replace qualifiers in
   177 - When converting proof scripts, be sure to replace qualifiers in
   175 "interpretation" and "interpret" by strict qualifiers.  Qualifiers in
   178 "interpretation" and "interpret" by strict qualifiers.  Qualifiers in
   176 locale expressions range over a single locale instance only.
   179 locale expressions range over a single locale instance only.
   177 
   180 
   181 * Keyword 'code_exception' now named 'code_abort'.  INCOMPATIBILITY.
   184 * Keyword 'code_exception' now named 'code_abort'.  INCOMPATIBILITY.
   182 
   185 
   183 * The 'axiomatization' command now only works within a global theory
   186 * The 'axiomatization' command now only works within a global theory
   184 context.  INCOMPATIBILITY.
   187 context.  INCOMPATIBILITY.
   185 
   188 
   186 * New find_theorems criterion "solves" matching theorems that
   189 * New find_theorems criterion "solves" matching theorems that directly
   187 directly solve the current goal. Try "find_theorems solves".
   190 solve the current goal. Try "find_theorems solves".
   188 
   191 
   189 * Added an auto solve option, which can be enabled through the
   192 * Added an auto solve option, which can be enabled through the
   190 ProofGeneral Isabelle settings menu (disabled by default).
   193 ProofGeneral Isabelle settings menu (disabled by default).
   191  
   194  
   192 When enabled, find_theorems solves is called whenever a new lemma is
   195 When enabled, find_theorems solves is called whenever a new lemma is
   193 stated. Any theorems that could solve the lemma directly are listed
   196 stated. Any theorems that could solve the lemma directly are listed
   194 underneath the goal.
   197 underneath the goal.
   195 
   198 
   196 * New command find_consts searches for constants based on type and name 
   199 * New command find_consts searches for constants based on type and
   197 patterns, e.g.
   200 name patterns, e.g.
   198 
   201 
   199     find_consts "_ => bool"
   202     find_consts "_ => bool"
   200 
   203 
   201 By default, matching is against subtypes, but it may be restricted to the
   204 By default, matching is against subtypes, but it may be restricted to
   202 whole type. Searching by name is possible. Multiple queries are conjunctive
   205 the whole type. Searching by name is possible. Multiple queries are
   203 and queries may be negated by prefixing them with a hyphen:
   206 conjunctive and queries may be negated by prefixing them with a
       
   207 hyphen:
   204 
   208 
   205     find_consts strict: "_ => bool" name: "Int" -"int => int"
   209     find_consts strict: "_ => bool" name: "Int" -"int => int"
   206 
   210 
   207 
   211 
   208 *** Document preparation ***
   212 *** Document preparation ***
   310 * Generic ATP manager for Sledgehammer, based on ML threads instead of
   314 * Generic ATP manager for Sledgehammer, based on ML threads instead of
   311 Posix processes.  Avoids potentially expensive forking of the ML
   315 Posix processes.  Avoids potentially expensive forking of the ML
   312 process.  New thread-based implementation also works on non-Unix
   316 process.  New thread-based implementation also works on non-Unix
   313 platforms (Cygwin).  Provers are no longer hardwired, but defined
   317 platforms (Cygwin).  Provers are no longer hardwired, but defined
   314 within the theory via plain ML wrapper functions.  Basic Sledgehammer
   318 within the theory via plain ML wrapper functions.  Basic Sledgehammer
   315 commands are covered in the isar-ref manual
   319 commands are covered in the isar-ref manual.
   316 
   320 
   317 * Wrapper scripts for remote SystemOnTPTP service allows to use
   321 * Wrapper scripts for remote SystemOnTPTP service allows to use
   318 sledgehammer without local ATP installation (Vampire etc.).  See also
   322 sledgehammer without local ATP installation (Vampire etc.).  See also
   319 ISABELLE_HOME/contrib/SystemOnTPTP and the VAMPIRE_HOME setting
   323 ISABELLE_HOME/contrib/SystemOnTPTP and the VAMPIRE_HOME setting
   320 variable.  Other provers may be included via suitable ML wrappers, see
   324 variable.  Other provers may be included via suitable ML wrappers, see
   494 
   498 
   495 
   499 
   496 *** HOL-Algebra ***
   500 *** HOL-Algebra ***
   497 
   501 
   498 * New locales for orders and lattices where the equivalence relation
   502 * New locales for orders and lattices where the equivalence relation
   499   is not restricted to equality.  INCOMPATIBILITY: all order and
   503 is not restricted to equality.  INCOMPATIBILITY: all order and lattice
   500   lattice locales use a record structure with field eq for the
   504 locales use a record structure with field eq for the equivalence.
   501   equivalence.
       
   502 
   505 
   503 * New theory of factorial domains.
   506 * New theory of factorial domains.
   504 
   507 
   505 * Units_l_inv and Units_r_inv are now simprules by default.
   508 * Units_l_inv and Units_r_inv are now simprules by default.
   506 INCOMPATIBILITY.  Simplifier proof that require deletion of l_inv
   509 INCOMPATIBILITY.  Simplifier proof that require deletion of l_inv