NEWS
changeset 33842 efa1b89c79e0
parent 33827 3ccd0be065ea
child 33843 23d09560d56d
equal deleted inserted replaced
33841:6508d0e8bb19 33842:efa1b89c79e0
     1 Isabelle NEWS -- history user-relevant changes
     1 Isabelle NEWS -- history user-relevant changes
     2 ==============================================
     2 ==============================================
     3 
     3 
     4 New in this Isabelle version
     4 New in Isabelle2009-1 (December 2009)
     5 ----------------------------
     5 -------------------------------------
     6 
     6 
     7 *** General ***
     7 *** General ***
     8 
     8 
     9 * Discontinued old form of "escaped symbols" such as \\<forall>.  Only
     9 * Discontinued old form of "escaped symbols" such as \\<forall>.  Only
    10 one backslash should be used, even in ML sources.
    10 one backslash should be used, even in ML sources.
    17 
    17 
    18 * Locale interpretation propagates mixins along the locale hierarchy.
    18 * Locale interpretation propagates mixins along the locale hierarchy.
    19 The currently only available mixins are the equations used to map
    19 The currently only available mixins are the equations used to map
    20 local definitions to terms of the target domain of an interpretation.
    20 local definitions to terms of the target domain of an interpretation.
    21 
    21 
    22 * Reactivated diagnositc command 'print_interps'.  Use 'print_interps l'
    22 * Reactivated diagnostic command 'print_interps'.  Use "print_interps
    23 to print all interpretations of locale l in the theory.  Interpretations
    23 loc" to print all interpretations of locale "loc" in the theory.
    24 in proofs are not shown.
    24 Interpretations in proofs are not shown.
    25 
    25 
    26 * Thoroughly revised locales tutorial.  New section on conditional
    26 * Thoroughly revised locales tutorial.  New section on conditional
    27 interpretation.
    27 interpretation.
    28 
    28 
    29 
    29 
    30 *** document preparation ***
    30 *** Document preparation ***
    31 
    31 
    32 * New generalized style concept for printing terms:
    32 * New generalized style concept for printing terms: @{foo (style) ...}
    33 write @{foo (style) ...} instead of @{foo_style style ...}
    33 instead of @{foo_style style ...}  (old form is still retained for
    34 (old form is still retained for backward compatibility).
    34 backward compatibility).  Styles can be also applied for
    35 Styles can be also applied for antiquotations prop, term_type and typeof.
    35 antiquotations prop, term_type and typeof.
    36 
    36 
    37 
    37 
    38 *** HOL ***
    38 *** HOL ***
    39 
    39 
    40 * A tabled implementation of the reflexive transitive closure
    40 * A tabled implementation of the reflexive transitive closure.
    41 
    41 
    42 * New commands "code_pred" and "values" to invoke the predicate compiler
    42 * New commands 'code_pred' and 'values' to invoke the predicate
    43 and to enumerate values of inductive predicates.
    43 compiler and to enumerate values of inductive predicates.
    44 
    44 
    45 * Combined former theories Divides and IntDiv to one theory Divides
    45 * Combined former theories Divides and IntDiv to one theory Divides in
    46 in the spirit of other number theory theories in HOL;  some constants
    46 the spirit of other number theory theories in HOL; some constants (and
    47 (and to a lesser extent also facts) have been suffixed with _nat und _int
    47 to a lesser extent also facts) have been suffixed with _nat and _int
    48 respectively.  INCOMPATIBILITY.
    48 respectively.  INCOMPATIBILITY.
    49 
    49 
    50 * Most rules produced by inductive and datatype package
    50 * Most rules produced by inductive and datatype package have mandatory
    51 have mandatory prefixes.
    51 prefixes.  INCOMPATIBILITY.
    52 INCOMPATIBILITY.
    52 
    53 
    53 * New proof method "smt" for a combination of first-order logic with
    54 * New proof method "smt" for a combination of first-order logic
    54 equality, linear and nonlinear (natural/integer/real) arithmetic, and
    55 with equality, linear and nonlinear (natural/integer/real)
    55 fixed-size bitvectors; there is also basic support for higher-order
    56 arithmetic, and fixed-size bitvectors; there is also basic
    56 features (esp. lambda abstractions).  It is an incomplete decision
    57 support for higher-order features (esp. lambda abstractions).
    57 procedure based on external SMT solvers using the oracle mechanism;
    58 It is an incomplete decision procedure based on external SMT
    58 for the SMT solver Z3, this method is proof-producing.  Certificates
    59 solvers using the oracle mechanism; for the SMT solver Z3,
    59 are provided to avoid calling the external solvers solely for
    60 this method is proof-producing. Certificates are provided to
    60 re-checking proofs.  Due to a remote SMT service there is no need for
    61 avoid calling the external solvers solely for re-checking proofs.
    61 installing SMT solvers locally.  See src/HOL/SMT.
    62 Due to a remote SMT service there is no need for installing SMT
    62 
    63 solvers locally.
    63 * New commands to load and prove verification conditions generated by
    64 
    64 the Boogie program verifier or derived systems (e.g. the Verifying C
    65 * New commands to load and prove verification conditions
    65 Compiler (VCC) or Spec#).  See src/HOL/Boogie.
    66 generated by the Boogie program verifier or derived systems
    66 
    67 (e.g. the Verifying C Compiler (VCC) or Spec#).
    67 * New counterexample generator tool 'nitpick' based on the Kodkod
    68 
    68 relational model finder.  See src/HOL/Tools/Nitpick and
    69 * New counterexample generator tool "nitpick" based on the Kodkod
    69 src/HOL/Nitpick_Examples.
    70 relational model finder.
    70 
    71 
    71 * Reorganization of number theory, INCOMPATIBILITY:
    72 * Reorganization of number theory:
    72   - former session NumberTheory now named Old_Number_Theory
    73   * former session NumberTheory now named Old_Number_Theory
    73   - new session Number_Theory; prefer this, if possible
    74   * new session Number_Theory by Jeremy Avigad; if possible, prefer this.
    74   - moved legacy theories Legacy_GCD and Primes from src/HOL/Library
    75   * moved legacy theories Legacy_GCD and Primes from Library/ to Old_Number_Theory/;
    75     to src/HOL/Old_Number_Theory
    76   * moved theory Pocklington from Library/ to Old_Number_Theory/;
    76   - moved theory Pocklington from src/HOL/Library to
    77   * removed various references to Old_Number_Theory from HOL distribution.
    77     src/HOL/Old_Number_Theory
    78 INCOMPATIBILITY.
    78   - removed various references to Old_Number_Theory from HOL
       
    79     distribution
    79 
    80 
    80 * Theory GCD now has functions Gcd/GCD and Lcm/LCM for the gcd and lcm
    81 * Theory GCD now has functions Gcd/GCD and Lcm/LCM for the gcd and lcm
    81 of finite and infinite sets. It is shown that they form a complete
    82 of finite and infinite sets. It is shown that they form a complete
    82 lattice.
    83 lattice.
    83 
    84 
    84 * New theory SupInf of the supremum and infimum operators for sets of reals.
    85 * Split off prime number ingredients from theory GCD to theory
    85 
    86 Number_Theory/Primes.
    86 * New theory Probability, which contains a development of measure theory, eventually leading to Lebesgue integration and probability.
    87 
    87 
    88 * New theory SupInf of the supremum and infimum operators for sets of
    88 * Split off prime number ingredients from theory GCD
    89 reals.
    89 to theory Number_Theory/Primes;
    90 
       
    91 * New theory Probability, which contains a development of measure
       
    92 theory, eventually leading to Lebesgue integration and probability.
    90 
    93 
    91 * Class semiring_div requires superclass no_zero_divisors and proof of
    94 * Class semiring_div requires superclass no_zero_divisors and proof of
    92 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2,
    95 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2,
    93 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been
    96 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been
    94 generalized to class semiring_div, subsuming former theorems
    97 generalized to class semiring_div, subsuming former theorems
    95 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and
    98 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and
    96 zdiv_zmult_zmult2.  div_mult_mult1 is now [simp] by default.
    99 zdiv_zmult_zmult2.  div_mult_mult1 is now [simp] by default.
    97 INCOMPATIBILITY.
   100 INCOMPATIBILITY.
    98 
   101 
    99 * Extended Multivariate Analysis to include derivation and Brouwer's fixpoint
   102 * Extended Multivariate Analysis to include derivation and Brouwer's
   100 theorem.
   103 fixpoint theorem.
   101 
   104 
   102 * Removed predicate "M hassize n" (<--> card M = n & finite M). Was only used
   105 * Removed predicate "M hassize n" (<--> card M = n & finite M).
   103 in Multivariate Analysis. Renamed vector_less_eq_def to vector_le_def, the
       
   104 more usual name.
       
   105 INCOMPATIBILITY.
   106 INCOMPATIBILITY.
   106 
   107 
   107 * Added theorem List.map_map as [simp]. Removed List.map_compose.
   108 * Renamed vector_less_eq_def to vector_le_def, the more usual name.
   108 INCOMPATIBILITY.
   109 INCOMPATIBILITY.
   109 
   110 
   110 * New testing tool "Mirabelle" for automated (proof) tools. Applies
   111 * Added theorem List.map_map as [simp].  Removed List.map_compose.
       
   112 INCOMPATIBILITY.
       
   113 
       
   114 * New testing tool "Mirabelle" for automated proof tools.  Applies
   111 several tools and tactics like sledgehammer, metis, or quickcheck, to
   115 several tools and tactics like sledgehammer, metis, or quickcheck, to
   112 every proof step in a theory. To be used in batch mode via the
   116 every proof step in a theory.  To be used in batch mode via the
   113 "mirabelle" utility.
   117 "mirabelle" utility.
   114 
   118 
   115 * New proof method "sos" (sum of squares) for nonlinear real
   119 * New proof method "sos" (sum of squares) for nonlinear real
   116 arithmetic (originally due to John Harison). It requires
   120 arithmetic (originally due to John Harison). It requires theory
   117 Library/Sum_Of_Squares.  It is not a complete decision procedure but
   121 Library/Sum_Of_Squares.  It is not a complete decision procedure but
   118 works well in practice on quantifier-free real arithmetic with +, -,
   122 works well in practice on quantifier-free real arithmetic with +, -,
   119 *, ^, =, <= and <, i.e. boolean combinations of equalities and
   123 *, ^, =, <= and <, i.e. boolean combinations of equalities and
   120 inequalities between polynomials. It makes use of external
   124 inequalities between polynomials.  It makes use of external
   121 semidefinite programming solvers. Method "sos" generates a certificate
   125 semidefinite programming solvers.  Method "sos" generates a
   122 that can be pasted into the proof thus avoiding the need to call an external
   126 certificate that can be pasted into the proof thus avoiding the need
   123 tool every time the proof is checked.
   127 to call an external tool every time the proof is checked.  See
   124 For more information and examples see src/HOL/Library/Sum_Of_Squares.
   128 src/HOL/Library/Sum_Of_Squares.
   125 
   129 
   126 * Code generator attributes follow the usual underscore convention:
   130 * Code generator attributes follow the usual underscore convention:
   127     code_unfold     replaces    code unfold
   131     code_unfold     replaces    code unfold
   128     code_post       replaces    code post
   132     code_post       replaces    code post
   129     etc.
   133     etc.
   130   INCOMPATIBILITY.
   134   INCOMPATIBILITY.
   131 
   135 
   132 * Refinements to lattice classes and sets:
   136 * Refinements to lattice classes and sets:
   133   - less default intro/elim rules in locale variant, more default
   137   - less default intro/elim rules in locale variant, more default
   134     intro/elim rules in class variant: more uniformity
   138     intro/elim rules in class variant: more uniformity
   135   - lemma ge_sup_conv renamed to le_sup_iff, in accordance with le_inf_iff
   139   - lemma ge_sup_conv renamed to le_sup_iff, in accordance with
   136   - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and sup_aci)
   140     le_inf_iff
       
   141   - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and
       
   142     sup_aci)
   137   - renamed ACI to inf_sup_aci
   143   - renamed ACI to inf_sup_aci
   138   - new class "boolean_algebra"
   144   - new class "boolean_algebra"
   139   - class "complete_lattice" moved to separate theory "complete_lattice";
   145   - class "complete_lattice" moved to separate theory
   140     corresponding constants (and abbreviations) renamed and with authentic syntax:
   146     "complete_lattice"; corresponding constants (and abbreviations)
       
   147     renamed and with authentic syntax:
   141     Set.Inf ~>      Complete_Lattice.Inf
   148     Set.Inf ~>      Complete_Lattice.Inf
   142     Set.Sup ~>      Complete_Lattice.Sup
   149     Set.Sup ~>      Complete_Lattice.Sup
   143     Set.INFI ~>     Complete_Lattice.INFI
   150     Set.INFI ~>     Complete_Lattice.INFI
   144     Set.SUPR ~>     Complete_Lattice.SUPR
   151     Set.SUPR ~>     Complete_Lattice.SUPR
   145     Set.Inter ~>    Complete_Lattice.Inter
   152     Set.Inter ~>    Complete_Lattice.Inter
   162     Complete_Lattice.INTER  (for INFI)
   169     Complete_Lattice.INTER  (for INFI)
   163     Complete_Lattice.UNION  (for SUPR)
   170     Complete_Lattice.UNION  (for SUPR)
   164   - object-logic definitions as far as appropriate
   171   - object-logic definitions as far as appropriate
   165 
   172 
   166 INCOMPATIBILITY.  Care is required when theorems Int_subset_iff or
   173 INCOMPATIBILITY.  Care is required when theorems Int_subset_iff or
   167 Un_subset_iff are explicitly deleted as default simp rules;  then
   174 Un_subset_iff are explicitly deleted as default simp rules; then also
   168 also their lattice counterparts le_inf_iff and le_sup_iff have to be
   175 their lattice counterparts le_inf_iff and le_sup_iff have to be
   169 deleted to achieve the desired effect.
   176 deleted to achieve the desired effect.
   170 
   177 
   171 * Rules inf_absorb1, inf_absorb2, sup_absorb1, sup_absorb2 are no
   178 * Rules inf_absorb1, inf_absorb2, sup_absorb1, sup_absorb2 are no simp
   172 simp rules by default any longer.  The same applies to
   179 rules by default any longer; the same applies to min_max.inf_absorb1
   173 min_max.inf_absorb1 etc.!  INCOMPATIBILITY.
   180 etc.  INCOMPATIBILITY.
   174 
   181 
   175 * sup_Int_eq and sup_Un_eq are no default pred_set_conv rules any longer.
   182 * Rules sup_Int_eq and sup_Un_eq are no longer declared as
   176 INCOMPATIBILITY.
   183 pred_set_conv by default.  INCOMPATIBILITY.
   177 
   184 
   178 * Power operations on relations and functions are now one dedicate
   185 * Power operations on relations and functions are now one dedicated
   179 constant "compow" with infix syntax "^^".  Power operation on
   186 constant "compow" with infix syntax "^^".  Power operation on
   180 multiplicative monoids retains syntax "^" and is now defined generic
   187 multiplicative monoids retains syntax "^" and is now defined generic
   181 in class power.  INCOMPATIBILITY.
   188 in class power.  INCOMPATIBILITY.
   182 
   189 
   183 * Relation composition "R O S" now has a "more standard" argument
   190 * Relation composition "R O S" now has a more standard argument order:
   184 order, i.e., "R O S = {(x,z). EX y. (x,y) : R & (y,z) : S }".
   191 "R O S = {(x, z). EX y. (x, y) : R & (y, z) : S}".  INCOMPATIBILITY,
   185 INCOMPATIBILITY: Rewrite propositions with "S O R" --> "R O S". Proofs
   192 rewrite propositions with "S O R" --> "R O S". Proofs may occasionally
   186 may occationally break, since the O_assoc rule was not rewritten like
   193 break, since the O_assoc rule was not rewritten like this.  Fix using
   187 this.  Fix using O_assoc[symmetric].  The same applies to the curried
   194 O_assoc[symmetric].  The same applies to the curried version "R OO S".
   188 version "R OO S".
       
   189 
   195 
   190 * Function "Inv" is renamed to "inv_into" and function "inv" is now an
   196 * Function "Inv" is renamed to "inv_into" and function "inv" is now an
   191 abbreviation for "inv_into UNIV". Lemmas are renamed accordingly.
   197 abbreviation for "inv_into UNIV".  Lemmas are renamed accordingly.
   192 INCOMPATIBILITY.
   198 INCOMPATIBILITY.
   193 
   199 
   194 * ML antiquotation @{code_datatype} inserts definition of a datatype
   200 * ML antiquotation @{code_datatype} inserts definition of a datatype
   195 generated by the code generator; see Predicate.thy for an example.
   201 generated by the code generator; e.g. see src/HOL/Predicate.thy.
   196 
   202 
   197 * New method "linarith" invokes existing linear arithmetic decision
   203 * New method "linarith" invokes existing linear arithmetic decision
   198 procedure only.
   204 procedure only.
   199 
   205 
   200 * New implementation of quickcheck uses generic code generator;
   206 * New implementation of quickcheck uses generic code generator;
   201 default generators are provided for all suitable HOL types, records
   207 default generators are provided for all suitable HOL types, records
   202 and datatypes.  Old quickcheck can be re-activated importing
   208 and datatypes.  Old quickcheck can be re-activated importing theory
   203 theory Library/SML_Quickcheck.
   209 Library/SML_Quickcheck.
   204 
   210 
   205 * Renamed theorems:
   211 * Renamed theorems:
   206 Suc_eq_add_numeral_1 -> Suc_eq_plus1
   212 Suc_eq_add_numeral_1 -> Suc_eq_plus1
   207 Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left
   213 Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left
   208 Suc_plus1 -> Suc_eq_plus1
   214 Suc_plus1 -> Suc_eq_plus1
   209 
   215 
   210 * Moved theorems:
       
   211 Wellfounded.in_inv_image -> Relation.in_inv_image
       
   212 
       
   213 * New sledgehammer option "Full Types" in Proof General settings menu.
   216 * New sledgehammer option "Full Types" in Proof General settings menu.
   214 Causes full type information to be output to the ATPs.  This slows
   217 Causes full type information to be output to the ATPs.  This slows
   215 ATPs down considerably but eliminates a source of unsound "proofs"
   218 ATPs down considerably but eliminates a source of unsound "proofs"
   216 that fail later.
   219 that fail later.
   217 
   220 
   218 * New method metisFT: A version of metis that uses full type information
   221 * New method "metisFT": A version of metis that uses full type
   219 in order to avoid failures of proof reconstruction.
   222 information in order to avoid failures of proof reconstruction.
   220 
   223 
   221 * Discontinued ancient tradition to suffix certain ML module names
   224 * Discontinued abbreviation "arbitrary" of constant "undefined".
   222 with "_package", e.g.:
   225 INCOMPATIBILITY, use "undefined" directly.
   223 
       
   224     DatatypePackage ~> Datatype
       
   225     InductivePackage ~> Inductive
       
   226 
       
   227 INCOMPATIBILITY.
       
   228 
       
   229 * Discontinued abbreviation "arbitrary" of constant
       
   230 "undefined". INCOMPATIBILITY, use "undefined" directly.
       
   231 
   226 
   232 * New evaluator "approximate" approximates an real valued term using
   227 * New evaluator "approximate" approximates an real valued term using
   233 the same method as the approximation method.
   228 the same method as the approximation method.
   234 
   229 
   235 * Method "approximate" supports now arithmetic expressions as
   230 * Method "approximate" now supports arithmetic expressions as
   236 boundaries of intervals and implements interval splitting and Taylor
   231 boundaries of intervals and implements interval splitting and Taylor
   237 series expansion.
   232 series expansion.
   238 
   233 
   239 * Changed DERIV_intros to a dynamic fact (via Named_Thms).  Each of
   234 * Changed "DERIV_intros" to a dynamic fact, which can be augmented by
   240 the theorems in DERIV_intros assumes composition with an additional
   235 the attribute of the same name.  Each of the theorems in the list
   241 function and matches a variable to the derivative, which has to be
   236 DERIV_intros assumes composition with an additional function and
   242 solved by the simplifier.  Hence (auto intro!: DERIV_intros) computes
   237 matches a variable to the derivative, which has to be solved by the
   243 the derivative of most elementary terms.
   238 Simplifier.  Hence (auto intro!: DERIV_intros) computes the derivative
   244 
   239 of most elementary terms.
   245 * Maclauren.DERIV_tac and Maclauren.deriv_tac was removed, they are
   240 
   246 replaced by: (auto intro!: DERIV_intros).  INCOMPATIBILITY.
   241 * Former Maclauren.DERIV_tac and Maclauren.deriv_tac are superseded
       
   242 are replaced by (auto intro!: DERIV_intros).  INCOMPATIBILITY.
   247 
   243 
   248 * Renamed methods:
   244 * Renamed methods:
   249     sizechange -> size_change
   245     sizechange -> size_change
   250     induct_scheme -> induction_schema
   246     induct_scheme -> induction_schema
   251 
   247 
   252 * Lemma name change: replaced "anti_sym" by "antisym" everywhere.
   248 * Lemma name change: replaced "anti_sym" by "antisym" everywhere.
       
   249 INCOMPATIBILITY.
   253 
   250 
   254 
   251 
   255 *** HOLCF ***
   252 *** HOLCF ***
   256 
   253 
   257 * Theory 'Representable.thy' defines a class 'rep' of domains that are
   254 * Theory Representable defines a class "rep" of domains that are
   258 representable (via an ep-pair) in the universal domain type 'udom'.
   255 representable (via an ep-pair) in the universal domain type "udom".
   259 Instances are provided for all type constructors defined in HOLCF.
   256 Instances are provided for all type constructors defined in HOLCF.
   260 
   257 
   261 * The 'new_domain' command is a purely definitional version of the
   258 * The 'new_domain' command is a purely definitional version of the
   262 domain package, for representable domains.  Syntax is identical to the
   259 domain package, for representable domains.  Syntax is identical to the
   263 old domain package.  The 'new_domain' package also supports indirect
   260 old domain package.  The 'new_domain' package also supports indirect
   264 recursion using previously-defined type constructors.  See
   261 recursion using previously-defined type constructors.  See
   265 HOLCF/ex/New_Domain.thy for examples.
   262 src/HOLCF/ex/New_Domain.thy for examples.
   266 
   263 
   267 * Method 'fixrec_simp' unfolds one step of a fixrec-defined constant
   264 * Method "fixrec_simp" unfolds one step of a fixrec-defined constant
   268 on the left-hand side of an equation, and then performs
   265 on the left-hand side of an equation, and then performs
   269 simplification.  Rewriting is done using rules declared with the
   266 simplification.  Rewriting is done using rules declared with the
   270 'fixrec_simp' attribute.  The 'fixrec_simp' method is intended as a
   267 "fixrec_simp" attribute.  The "fixrec_simp" method is intended as a
   271 replacement for 'fixpat'; see HOLCF/ex/Fixrec_ex.thy for examples.
   268 replacement for "fixpat"; see src/HOLCF/ex/Fixrec_ex.thy for examples.
   272 
   269 
   273 * The pattern-match compiler in 'fixrec' can now handle constructors
   270 * The pattern-match compiler in 'fixrec' can now handle constructors
   274 with HOL function types.  Pattern-match combinators for the Pair
   271 with HOL function types.  Pattern-match combinators for the Pair
   275 constructor are pre-configured.
   272 constructor are pre-configured.
   276 
   273 
   278 for mutually-recursive definitions:  Induction rules have conclusions
   275 for mutually-recursive definitions:  Induction rules have conclusions
   279 of the form "P foo bar" instead of "P <foo, bar>".
   276 of the form "P foo bar" instead of "P <foo, bar>".
   280 
   277 
   281 * The constant "sq_le" (with infix syntax "<<" or "\<sqsubseteq>") has
   278 * The constant "sq_le" (with infix syntax "<<" or "\<sqsubseteq>") has
   282 been renamed to "below".  The name "below" now replaces "less" in many
   279 been renamed to "below".  The name "below" now replaces "less" in many
   283 theorem names.  (Legacy theorem names using "less" are still
   280 theorem names.  (Legacy theorem names using "less" are still supported
   284 supported as well.)
   281 as well.)
   285 
   282 
   286 * The 'fixrec' package now supports "bottom patterns".  Bottom
   283 * The 'fixrec' package now supports "bottom patterns".  Bottom
   287 patterns can be used to generate strictness rules, or to make
   284 patterns can be used to generate strictness rules, or to make
   288 functions more strict (much like the bang-patterns supported by the
   285 functions more strict (much like the bang-patterns supported by the
   289 Glasgow Haskell Compiler).  See HOLCF/ex/Fixrec_ex.thy for examples.
   286 Glasgow Haskell Compiler).  See src/HOLCF/ex/Fixrec_ex.thy for examples.
   290 
   287 
   291 
   288 
   292 *** ML ***
   289 *** ML ***
   293 
   290 
   294 * Theory and context data is now introduced by the simplified and
   291 * Theory and context data is now introduced by the simplified and
   295 modernized functors Theory_Data, Proof_Data, Generic_Data.  Data needs
   292 modernized functors Theory_Data, Proof_Data, Generic_Data.  Data needs
   296 to be pure, but the old TheoryDataFun for mutable data (with explicit
   293 to be pure, but the old TheoryDataFun for mutable data (with explicit
   297 copy operation) is still available for some time.
   294 copy operation) is still available for some time.
   298 
       
   299 * Removed some old-style infix operations using polymorphic equality.
       
   300 INCOMPATIBILITY.
       
   301 
   295 
   302 * Structure Synchronized (cf. src/Pure/Concurrent/synchronized.ML)
   296 * Structure Synchronized (cf. src/Pure/Concurrent/synchronized.ML)
   303 provides a high-level programming interface to synchronized state
   297 provides a high-level programming interface to synchronized state
   304 variables with atomic update.  This works via pure function
   298 variables with atomic update.  This works via pure function
   305 application within a critical section -- its runtime should be as
   299 application within a critical section -- its runtime should be as
   328 functors have their own ML name space there is no point to mark them
   322 functors have their own ML name space there is no point to mark them
   329 separately.)  Minor INCOMPATIBILITY.
   323 separately.)  Minor INCOMPATIBILITY.
   330 
   324 
   331 * Renamed NamedThmsFun to Named_Thms.  INCOMPATIBILITY.
   325 * Renamed NamedThmsFun to Named_Thms.  INCOMPATIBILITY.
   332 
   326 
       
   327 * Renamed several structures FooBar to Foo_Bar.  Occasional,
       
   328 INCOMPATIBILITY.
       
   329 
   333 * Eliminated old Attrib.add_attributes, Method.add_methods and related
   330 * Eliminated old Attrib.add_attributes, Method.add_methods and related
   334 cominators for "args".  INCOMPATIBILITY, need to use simplified
   331 combinators for "args".  INCOMPATIBILITY, need to use simplified
   335 Attrib/Method.setup introduced in Isabelle2009.
   332 Attrib/Method.setup introduced in Isabelle2009.
   336 
   333 
   337 * Proper context for simpset_of, claset_of, clasimpset_of.  May fall
   334 * Proper context for simpset_of, claset_of, clasimpset_of.  May fall
   338 back on global_simpset_of, global_claset_of, global_clasimpset_of as
   335 back on global_simpset_of, global_claset_of, global_clasimpset_of as
   339 last resort.  INCOMPATIBILITY.
   336 last resort.  INCOMPATIBILITY.
   345 
   342 
   346 * Discontinued Display.pretty_ctyp/cterm etc.  INCOMPATIBILITY, use
   343 * Discontinued Display.pretty_ctyp/cterm etc.  INCOMPATIBILITY, use
   347 Syntax.pretty_typ/term directly, preferably with proper context
   344 Syntax.pretty_typ/term directly, preferably with proper context
   348 instead of global theory.
   345 instead of global theory.
   349 
   346 
   350 * Operations of structure Skip_Proof (formerly SkipProof) no longer
   347 * Operations of structure Skip_Proof no longer require quick_and_dirty
   351 require quick_and_dirty mode, which avoids critical setmp.
   348 mode, which avoids critical setmp.
   352 
   349 
   353 
   350 
   354 *** System ***
   351 *** System ***
       
   352 
       
   353 * Further fine tuning of parallel proof checking, scales up to 8 cores
       
   354 (max. speedup factor 5.0).  See also Goal.parallel_proofs in ML and
       
   355 usedir option -q.
   355 
   356 
   356 * Support for additional "Isabelle components" via etc/components, see
   357 * Support for additional "Isabelle components" via etc/components, see
   357 also the system manual.
   358 also the system manual.
   358 
   359 
   359 * The isabelle makeall tool now operates on all components with
   360 * The isabelle makeall tool now operates on all components with
   360 IsaMakefile, not just hardwired "logics".
   361 IsaMakefile, not just hardwired "logics".
   361 
   362 
   362 * New component "isabelle wwwfind [start|stop|status] [HEAP]"
       
   363 Provides web interface for find_theorems on HEAP. Depends on lighttpd 
       
   364 webserver being installed. Currently supported on Linux only.
       
   365 
       
   366 * Discontinued support for Poly/ML 4.x versions.
       
   367 
       
   368 * Removed "compress" option from isabelle-process and isabelle usedir;
   363 * Removed "compress" option from isabelle-process and isabelle usedir;
   369 this is always enabled.
   364 this is always enabled.
   370 
   365 
   371 * More fine-grained control of proof parallelism, cf.
   366 * Discontinued support for Poly/ML 4.x versions.
   372 Goal.parallel_proofs in ML and usedir option -q LEVEL.
   367 
       
   368 * Isabelle tool "wwwfind" provides web interface for 'find_theorems'
       
   369 on a given logic image.  This requires the lighttpd webserver and is
       
   370 currently supported on Linux only.
   373 
   371 
   374 
   372 
   375 
   373 
   376 New in Isabelle2009 (April 2009)
   374 New in Isabelle2009 (April 2009)
   377 --------------------------------
   375 --------------------------------