NEWS
changeset 33860 dcd9affbd106
parent 33849 cf8365a70911
child 33873 e9120a7b2779
equal deleted inserted replaced
33850:1436dd2bd565 33860:dcd9affbd106
    52 Compiler (VCC) or Spec#).  See src/HOL/Boogie.
    52 Compiler (VCC) or Spec#).  See src/HOL/Boogie.
    53 
    53 
    54 * New counterexample generator tool 'nitpick' based on the Kodkod
    54 * New counterexample generator tool 'nitpick' based on the Kodkod
    55 relational model finder.  See src/HOL/Tools/Nitpick and
    55 relational model finder.  See src/HOL/Tools/Nitpick and
    56 src/HOL/Nitpick_Examples.
    56 src/HOL/Nitpick_Examples.
       
    57 
       
    58 * New commands 'code_pred' and 'values' to invoke the predicate
       
    59 compiler and to enumerate values of inductive predicates.
       
    60 
       
    61 * A tabled implementation of the reflexive transitive closure.
       
    62 
       
    63 * New implementation of quickcheck uses generic code generator;
       
    64 default generators are provided for all suitable HOL types, records
       
    65 and datatypes.  Old quickcheck can be re-activated importing theory
       
    66 Library/SML_Quickcheck.
    57 
    67 
    58 * New testing tool Mirabelle for automated proof tools.  Applies
    68 * New testing tool Mirabelle for automated proof tools.  Applies
    59 several tools and tactics like sledgehammer, metis, or quickcheck, to
    69 several tools and tactics like sledgehammer, metis, or quickcheck, to
    60 every proof step in a theory.  To be used in batch mode via the
    70 every proof step in a theory.  To be used in batch mode via the
    61 "mirabelle" utility.
    71 "mirabelle" utility.
    69 semidefinite programming solvers.  Method "sos" generates a
    79 semidefinite programming solvers.  Method "sos" generates a
    70 certificate that can be pasted into the proof thus avoiding the need
    80 certificate that can be pasted into the proof thus avoiding the need
    71 to call an external tool every time the proof is checked.  See
    81 to call an external tool every time the proof is checked.  See
    72 src/HOL/Library/Sum_Of_Squares.
    82 src/HOL/Library/Sum_Of_Squares.
    73 
    83 
    74 * New commands 'code_pred' and 'values' to invoke the predicate
       
    75 compiler and to enumerate values of inductive predicates.
       
    76 
       
    77 * A tabled implementation of the reflexive transitive closure.
       
    78 
       
    79 * New theory SupInf of the supremum and infimum operators for sets of
       
    80 reals.
       
    81 
       
    82 * New theory Probability, which contains a development of measure
       
    83 theory, eventually leading to Lebesgue integration and probability.
       
    84 
       
    85 * New method "linarith" invokes existing linear arithmetic decision
    84 * New method "linarith" invokes existing linear arithmetic decision
    86 procedure only.
    85 procedure only.
    87 
       
    88 * New implementation of quickcheck uses generic code generator;
       
    89 default generators are provided for all suitable HOL types, records
       
    90 and datatypes.  Old quickcheck can be re-activated importing theory
       
    91 Library/SML_Quickcheck.
       
    92 
    86 
    93 * New command 'atp_minimal' reduces result produced by Sledgehammer.
    87 * New command 'atp_minimal' reduces result produced by Sledgehammer.
    94 
    88 
    95 * New Sledgehammer option "Full Types" in Proof General settings menu.
    89 * New Sledgehammer option "Full Types" in Proof General settings menu.
    96 Causes full type information to be output to the ATPs.  This slows
    90 Causes full type information to be output to the ATPs.  This slows
   108 series expansion.
   102 series expansion.
   109 
   103 
   110 * ML antiquotation @{code_datatype} inserts definition of a datatype
   104 * ML antiquotation @{code_datatype} inserts definition of a datatype
   111 generated by the code generator; e.g. see src/HOL/Predicate.thy.
   105 generated by the code generator; e.g. see src/HOL/Predicate.thy.
   112 
   106 
   113 * Most rules produced by inductive and datatype package have mandatory
   107 * New theory SupInf of the supremum and infimum operators for sets of
   114 prefixes.  INCOMPATIBILITY.
   108 reals.
       
   109 
       
   110 * New theory Probability, which contains a development of measure
       
   111 theory, eventually leading to Lebesgue integration and probability.
       
   112 
       
   113 * Extended Multivariate Analysis to include derivation and Brouwer's
       
   114 fixpoint theorem.
   115 
   115 
   116 * Reorganization of number theory, INCOMPATIBILITY:
   116 * Reorganization of number theory, INCOMPATIBILITY:
   117   - new number theory development for nat and int, in
   117   - new number theory development for nat and int, in
   118     theories Divides and GCD as well as in new session
   118     theories Divides and GCD as well as in new session
   119     Number_Theory
   119     Number_Theory
   123     including theories Legacy_GCD and Primes (prefer Number_Theory
   123     including theories Legacy_GCD and Primes (prefer Number_Theory
   124     if possible)
   124     if possible)
   125   - moved theory Pocklington from src/HOL/Library to
   125   - moved theory Pocklington from src/HOL/Library to
   126     src/HOL/Old_Number_Theory
   126     src/HOL/Old_Number_Theory
   127 
   127 
   128 * Theory GCD now has functions Gcd/GCD and Lcm/LCM for the gcd and lcm
   128 * Theory GCD includes functions Gcd/GCD and Lcm/LCM for the gcd and lcm
   129 of finite and infinite sets. It is shown that they form a complete
   129 of finite and infinite sets. It is shown that they form a complete
   130 lattice.
   130 lattice.
   131 
   131 
   132 * Class semiring_div requires superclass no_zero_divisors and proof of
   132 * Class semiring_div requires superclass no_zero_divisors and proof of
   133 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2,
   133 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2,
   134 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been
   134 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been
   135 generalized to class semiring_div, subsuming former theorems
   135 generalized to class semiring_div, subsuming former theorems
   136 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and
   136 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and
   137 zdiv_zmult_zmult2.  div_mult_mult1 is now [simp] by default.
   137 zdiv_zmult_zmult2.  div_mult_mult1 is now [simp] by default.
   138 INCOMPATIBILITY.
   138 INCOMPATIBILITY.
   139 
       
   140 * Extended Multivariate Analysis to include derivation and Brouwer's
       
   141 fixpoint theorem.
       
   142 
       
   143 * Removed predicate "M hassize n" (<--> card M = n & finite M).
       
   144 INCOMPATIBILITY.
       
   145 
       
   146 * Renamed vector_less_eq_def to vector_le_def, the more usual name.
       
   147 INCOMPATIBILITY.
       
   148 
       
   149 * Added theorem List.map_map as [simp].  Removed List.map_compose.
       
   150 INCOMPATIBILITY.
       
   151 
       
   152 * Code generator attributes follow the usual underscore convention:
       
   153     code_unfold     replaces    code unfold
       
   154     code_post       replaces    code post
       
   155     etc.
       
   156   INCOMPATIBILITY.
       
   157 
   139 
   158 * Refinements to lattice classes and sets:
   140 * Refinements to lattice classes and sets:
   159   - less default intro/elim rules in locale variant, more default
   141   - less default intro/elim rules in locale variant, more default
   160     intro/elim rules in class variant: more uniformity
   142     intro/elim rules in class variant: more uniformity
   161   - lemma ge_sup_conv renamed to le_sup_iff, in accordance with
   143   - lemma ge_sup_conv renamed to le_sup_iff, in accordance with
   163   - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and
   145   - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and
   164     sup_aci)
   146     sup_aci)
   165   - renamed ACI to inf_sup_aci
   147   - renamed ACI to inf_sup_aci
   166   - new class "boolean_algebra"
   148   - new class "boolean_algebra"
   167   - class "complete_lattice" moved to separate theory
   149   - class "complete_lattice" moved to separate theory
   168     "complete_lattice"; corresponding constants (and abbreviations)
   150     "Complete_Lattice"; corresponding constants (and abbreviations)
   169     renamed and with authentic syntax:
   151     renamed and with authentic syntax:
   170     Set.Inf ~>      Complete_Lattice.Inf
   152     Set.Inf ~>    Complete_Lattice.Inf
   171     Set.Sup ~>      Complete_Lattice.Sup
   153     Set.Sup ~>    Complete_Lattice.Sup
   172     Set.INFI ~>     Complete_Lattice.INFI
   154     Set.INFI ~>   Complete_Lattice.INFI
   173     Set.SUPR ~>     Complete_Lattice.SUPR
   155     Set.SUPR ~>   Complete_Lattice.SUPR
   174     Set.Inter ~>    Complete_Lattice.Inter
   156     Set.Inter ~>  Complete_Lattice.Inter
   175     Set.Union ~>    Complete_Lattice.Union
   157     Set.Union ~>  Complete_Lattice.Union
   176     Set.INTER ~>    Complete_Lattice.INTER
   158     Set.INTER ~>  Complete_Lattice.INTER
   177     Set.UNION ~>    Complete_Lattice.UNION
   159     Set.UNION ~>  Complete_Lattice.UNION
   178   - more convenient names for set intersection and union:
       
   179     Set.Int ~>      Set.inter
       
   180     Set.Un ~>       Set.union
       
   181   - authentic syntax for
   160   - authentic syntax for
   182     Set.Pow
   161     Set.Pow
   183     Set.image
   162     Set.image
   184   - mere abbreviations:
   163   - mere abbreviations:
   185     Set.empty               (for bot)
   164     Set.empty               (for bot)
   186     Set.UNIV                (for top)
   165     Set.UNIV                (for top)
   187     Set.inter               (for inf)
   166     Set.inter               (for inf, formerly Set.Int)
   188     Set.union               (for sup)
   167     Set.union               (for sup, formerly Set.Un)
   189     Complete_Lattice.Inter  (for Inf)
   168     Complete_Lattice.Inter  (for Inf)
   190     Complete_Lattice.Union  (for Sup)
   169     Complete_Lattice.Union  (for Sup)
   191     Complete_Lattice.INTER  (for INFI)
   170     Complete_Lattice.INTER  (for INFI)
   192     Complete_Lattice.UNION  (for SUPR)
   171     Complete_Lattice.UNION  (for SUPR)
   193   - object-logic definitions as far as appropriate
   172   - object-logic definitions as far as appropriate
   217 
   196 
   218 * Function "Inv" is renamed to "inv_into" and function "inv" is now an
   197 * Function "Inv" is renamed to "inv_into" and function "inv" is now an
   219 abbreviation for "inv_into UNIV".  Lemmas are renamed accordingly.
   198 abbreviation for "inv_into UNIV".  Lemmas are renamed accordingly.
   220 INCOMPATIBILITY.
   199 INCOMPATIBILITY.
   221 
   200 
   222 * Renamed theorems:
   201 --
   223 Suc_eq_add_numeral_1 -> Suc_eq_plus1
   202 
   224 Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left
   203 * Most rules produced by inductive and datatype package have mandatory
   225 Suc_plus1 -> Suc_eq_plus1
   204 prefixes.  INCOMPATIBILITY.
   226 
   205 
   227 * Changed "DERIV_intros" to a dynamic fact, which can be augmented by
   206 * Changed "DERIV_intros" to a dynamic fact, which can be augmented by
   228 the attribute of the same name.  Each of the theorems in the list
   207 the attribute of the same name.  Each of the theorems in the list
   229 DERIV_intros assumes composition with an additional function and
   208 DERIV_intros assumes composition with an additional function and
   230 matches a variable to the derivative, which has to be solved by the
   209 matches a variable to the derivative, which has to be solved by the
   231 Simplifier.  Hence (auto intro!: DERIV_intros) computes the derivative
   210 Simplifier.  Hence (auto intro!: DERIV_intros) computes the derivative
   232 of most elementary terms.
   211 of most elementary terms.  Former Maclauren.DERIV_tac and Maclauren.deriv_tac
   233 
   212 should be replaced by (auto intro!: DERIV_intros).  INCOMPATIBILITY.
   234 * Former Maclauren.DERIV_tac and Maclauren.deriv_tac are superseded
   213 
   235 are replaced by (auto intro!: DERIV_intros).  INCOMPATIBILITY.
   214 * Code generator attributes follow the usual underscore convention:
       
   215     code_unfold     replaces    code unfold
       
   216     code_post       replaces    code post
       
   217     etc.
       
   218   INCOMPATIBILITY.
   236 
   219 
   237 * Renamed methods:
   220 * Renamed methods:
   238     sizechange -> size_change
   221     sizechange -> size_change
   239     induct_scheme -> induction_schema
   222     induct_scheme -> induction_schema
   240 
   223   INCOMPATIBILITY.
   241 * Lemma name change: replaced "anti_sym" by "antisym" everywhere.
       
   242 INCOMPATIBILITY.
       
   243 
   224 
   244 * Discontinued abbreviation "arbitrary" of constant "undefined".
   225 * Discontinued abbreviation "arbitrary" of constant "undefined".
   245 INCOMPATIBILITY, use "undefined" directly.
   226 INCOMPATIBILITY, use "undefined" directly.
       
   227 
       
   228 * Renamed theorems:
       
   229     Suc_eq_add_numeral_1 -> Suc_eq_plus1
       
   230     Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left
       
   231     Suc_plus1 -> Suc_eq_plus1
       
   232     *anti_sym -> *antisym*
       
   233     vector_less_eq_def -> vector_le_def
       
   234   INCOMPATIBILITY.
       
   235 
       
   236 * Added theorem List.map_map as [simp].  Removed List.map_compose.
       
   237 INCOMPATIBILITY.
       
   238 
       
   239 * Removed predicate "M hassize n" (<--> card M = n & finite M).
       
   240 INCOMPATIBILITY.
   246 
   241 
   247 
   242 
   248 *** HOLCF ***
   243 *** HOLCF ***
   249 
   244 
   250 * Theory Representable defines a class "rep" of domains that are
   245 * Theory Representable defines a class "rep" of domains that are