NEWS
changeset 36857 59ed53700145
parent 36856 b343091e81d8
child 36895 489c1fbbb028
equal deleted inserted replaced
36856:b343091e81d8 36857:59ed53700145
    71 
    71 
    72 * Use of cumulative prems via "!" in some proof methods has been
    72 * Use of cumulative prems via "!" in some proof methods has been
    73 discontinued (legacy feature).
    73 discontinued (legacy feature).
    74 
    74 
    75 * References 'trace_simp' and 'debug_simp' have been replaced by
    75 * References 'trace_simp' and 'debug_simp' have been replaced by
    76 configuration options stored in the context. Enabling tracing
    76 configuration options stored in the context. Enabling tracing (the
    77 (the case of debugging is similar) in proofs works via
    77 case of debugging is similar) in proofs works via
    78 
    78 
    79   using [[trace_simp=true]]
    79   using [[trace_simp = true]]
    80 
    80 
    81 Tracing is then active for all invocations of the simplifier
    81 Tracing is then active for all invocations of the simplifier in
    82 in subsequent goal refinement steps. Tracing may also still be
    82 subsequent goal refinement steps. Tracing may also still be enabled or
    83 enabled or disabled via the ProofGeneral settings menu.
    83 disabled via the ProofGeneral settings menu.
    84 
    84 
    85 * Separate commands 'hide_class', 'hide_type', 'hide_const',
    85 * Separate commands 'hide_class', 'hide_type', 'hide_const',
    86 'hide_fact' replace the former 'hide' KIND command.  Minor
    86 'hide_fact' replace the former 'hide' KIND command.  Minor
    87 INCOMPATIBILITY.
    87 INCOMPATIBILITY.
    88 
    88 
    89 
    89 
    90 *** Pure ***
    90 *** Pure ***
    91 
    91 
    92 * Predicates of locales introduces by classes carry a mandatory "class"
    92 * Predicates of locales introduces by classes carry a mandatory
    93 prefix.  INCOMPATIBILITY.
    93 "class" prefix.  INCOMPATIBILITY.
    94 
    94 
    95 * 'code_reflect' allows to incorporate generated ML code into
    95 * Command 'code_reflect' allows to incorporate generated ML code into
    96 runtime environment;  replaces immature code_datatype antiquotation.
    96 runtime environment; replaces immature code_datatype antiquotation.
    97 INCOMPATIBILITY.
    97 INCOMPATIBILITY.
    98 
    98 
    99 * Empty class specifications observe default sort.  INCOMPATIBILITY.
    99 * Empty class specifications observe default sort.  INCOMPATIBILITY.
   100 
   100 
   101 * Old 'axclass' has been discontinued.  Use 'class' instead.  INCOMPATIBILITY.
   101 * Old 'axclass' command has been discontinued.  Use 'class' instead.
   102 
   102 INCOMPATIBILITY.
   103 * Code generator: simple concept for abstract datatypes obeying invariants.
   103 
       
   104 * Code generator: simple concept for abstract datatypes obeying
       
   105 invariants.
   104 
   106 
   105 * Local theory specifications may depend on extra type variables that
   107 * Local theory specifications may depend on extra type variables that
   106 are not present in the result type -- arguments TYPE('a) :: 'a itself
   108 are not present in the result type -- arguments TYPE('a) :: 'a itself
   107 are added internally.  For example:
   109 are added internally.  For example:
   108 
   110 
   109   definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)"
   111   definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)"
   110 
   112 
   111 * Code generator: details of internal data cache have no impact on
   113 * Code generator: details of internal data cache have no impact on the
   112 the user space functionality any longer.
   114 user space functionality any longer.
   113 
   115 
   114 * Methods unfold_locales and intro_locales ignore non-locale subgoals.  This
   116 * Methods unfold_locales and intro_locales ignore non-locale subgoals.
   115 is more appropriate for interpretations with 'where'.  INCOMPATIBILITY.
   117 This is more appropriate for interpretations with 'where'.
       
   118 INCOMPATIBILITY.
   116 
   119 
   117 * Discontinued unnamed infix syntax (legacy feature for many years) --
   120 * Discontinued unnamed infix syntax (legacy feature for many years) --
   118 need to specify constant name and syntax separately.  Internal ML
   121 need to specify constant name and syntax separately.  Internal ML
   119 datatype constructors have been renamed from InfixName to Infix etc.
   122 datatype constructors have been renamed from InfixName to Infix etc.
   120 Minor INCOMPATIBILITY.
   123 Minor INCOMPATIBILITY.
   128 
   131 
   129 * Commands 'types' and 'typedecl' now work within a local theory
   132 * Commands 'types' and 'typedecl' now work within a local theory
   130 context -- without introducing dependencies on parameters or
   133 context -- without introducing dependencies on parameters or
   131 assumptions, which is not possible in Isabelle/Pure.
   134 assumptions, which is not possible in Isabelle/Pure.
   132 
   135 
   133 * Command 'defaultsort' is renamed to 'default_sort', it works within
   136 * Command 'defaultsort' has been renamed to 'default_sort', it works
   134 a local theory context.  Minor INCOMPATIBILITY.
   137 within a local theory context.  Minor INCOMPATIBILITY.
   135 
   138 
   136 * Proof terms: Type substitutions on proof constants now use canonical
   139 * Proof terms: Type substitutions on proof constants now use canonical
   137 order of type variables. INCOMPATIBILITY: Tools working with proof
   140 order of type variables. Potential INCOMPATIBILITY for tools working
   138 terms may need to be adapted.
   141 with proof terms.
   139 
   142 
   140 
   143 
   141 *** HOL ***
   144 *** HOL ***
   142 
   145 
   143 * Theorem Int.int_induct renamed to Int.int_of_nat_induct and is
   146 * Theorem Int.int_induct renamed to Int.int_of_nat_induct and is no
   144 no longer shadowed.  INCOMPATIBILITY.
   147 longer shadowed.  INCOMPATIBILITY.
   145 
   148 
   146 * Dropped theorem duplicate comp_arith; use semiring_norm instead.
   149 * Dropped theorem duplicate comp_arith; use semiring_norm instead.
   147 INCOMPATIBILITY.
   150 INCOMPATIBILITY.
   148 
   151 
   149 * Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead.
   152 * Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead.
   150 INCOMPATIBILITY.
   153 INCOMPATIBILITY.
   151 
   154 
   152 * Dropped normalizing_semiring etc; use the facts in semiring classes instead.
   155 * Dropped normalizing_semiring etc; use the facts in semiring classes
   153 INCOMPATIBILITY.
   156 instead.  INCOMPATIBILITY.
   154 
   157 
   155 * Theory 'Finite_Set': various folding_* locales facilitate the application
   158 * Theory 'Finite_Set': various folding_XXX locales facilitate the
   156 of the various fold combinators on finite sets.
   159 application of the various fold combinators on finite sets.
   157 
   160 
   158 * Library theory 'RBT' renamed to 'RBT_Impl'; new library theory 'RBT'
   161 * Library theory "RBT" renamed to "RBT_Impl"; new library theory "RBT"
   159 provides abstract red-black tree type which is backed by RBT_Impl
   162 provides abstract red-black tree type which is backed by "RBT_Impl" as
   160 as implementation.  INCOMPATIBILTY.
   163 implementation.  INCOMPATIBILTY.
   161 
   164 
   162 * Command 'typedef' now works within a local theory context -- without
   165 * Command 'typedef' now works within a local theory context -- without
   163 introducing dependencies on parameters or assumptions, which is not
   166 introducing dependencies on parameters or assumptions, which is not
   164 possible in Isabelle/Pure/HOL.  Note that the logical environment may
   167 possible in Isabelle/Pure/HOL.  Note that the logical environment may
   165 contain multiple interpretations of local typedefs (with different
   168 contain multiple interpretations of local typedefs (with different
   169 AFP/thys/Coinductive.
   172 AFP/thys/Coinductive.
   170 
   173 
   171 * Theory PReal, including the type "preal" and related operations, has
   174 * Theory PReal, including the type "preal" and related operations, has
   172 been removed.  INCOMPATIBILITY.
   175 been removed.  INCOMPATIBILITY.
   173 
   176 
   174 * Split off theory Big_Operators containing setsum, setprod, Inf_fin, Sup_fin,
   177 * Split off theory Big_Operators containing setsum, setprod, Inf_fin,
   175 Min, Max from theory Finite_Set.  INCOMPATIBILITY.
   178 Sup_fin, Min, Max from theory Finite_Set.  INCOMPATIBILITY.
   176 
   179 
   177 * Theory "Rational" renamed to "Rat", for consistency with "Nat", "Int" etc.
   180 * Theory "Rational" renamed to "Rat", for consistency with "Nat",
       
   181 "Int" etc.  INCOMPATIBILITY.
       
   182 
       
   183 * New set of rules "ac_simps" provides combined assoc / commute
       
   184 rewrites for all interpretations of the appropriate generic locales.
       
   185 
       
   186 * Renamed theory "OrderedGroup" to "Groups" and split theory
       
   187 "Ring_and_Field" into theories "Rings" and "Fields"; for more
       
   188 appropriate and more consistent names suitable for name prefixes
       
   189 within the HOL theories.  INCOMPATIBILITY.
       
   190 
       
   191 * Some generic constants have been put to appropriate theories:
       
   192   - less_eq, less: Orderings
       
   193   - zero, one, plus, minus, uminus, times, abs, sgn: Groups
       
   194   - inverse, divide: Rings
   178 INCOMPATIBILITY.
   195 INCOMPATIBILITY.
   179 
   196 
   180 * New set of rules "ac_simps" provides combined assoc / commute rewrites
   197 * More consistent naming of type classes involving orderings (and
   181 for all interpretations of the appropriate generic locales.
   198 lattices):
   182 
       
   183 * Renamed theory "OrderedGroup" to "Groups" and split theory "Ring_and_Field"
       
   184 into theories "Rings" and "Fields";  for more appropriate and more
       
   185 consistent names suitable for name prefixes within the HOL theories.
       
   186 INCOMPATIBILITY.
       
   187 
       
   188 * Some generic constants have been put to appropriate theories:
       
   189   * less_eq, less: Orderings
       
   190   * zero, one, plus, minus, uminus, times, abs, sgn: Groups
       
   191   * inverse, divide: Rings
       
   192 INCOMPATIBILITY.
       
   193 
       
   194 * More consistent naming of type classes involving orderings (and lattices):
       
   195 
   199 
   196     lower_semilattice                   ~> semilattice_inf
   200     lower_semilattice                   ~> semilattice_inf
   197     upper_semilattice                   ~> semilattice_sup
   201     upper_semilattice                   ~> semilattice_sup
   198 
   202 
   199     dense_linear_order                  ~> dense_linorder
   203     dense_linear_order                  ~> dense_linorder
   229     ordered_semiring                    ~> linordered_semiring
   233     ordered_semiring                    ~> linordered_semiring
   230     ordered_semiring_1                  ~> linordered_semiring_1
   234     ordered_semiring_1                  ~> linordered_semiring_1
   231     ordered_semiring_1_strict           ~> linordered_semiring_1_strict
   235     ordered_semiring_1_strict           ~> linordered_semiring_1_strict
   232     ordered_semiring_strict             ~> linordered_semiring_strict
   236     ordered_semiring_strict             ~> linordered_semiring_strict
   233 
   237 
   234   The following slightly odd type classes have been moved to
   238   The following slightly odd type classes have been moved to a
   235   a separate theory Library/Lattice_Algebras.thy:
   239   separate theory Library/Lattice_Algebras.thy:
   236 
   240 
   237     lordered_ab_group_add               ~> lattice_ab_group_add
   241     lordered_ab_group_add               ~> lattice_ab_group_add
   238     lordered_ab_group_add_abs           ~> lattice_ab_group_add_abs
   242     lordered_ab_group_add_abs           ~> lattice_ab_group_add_abs
   239     lordered_ab_group_add_meet          ~> semilattice_inf_ab_group_add
   243     lordered_ab_group_add_meet          ~> semilattice_inf_ab_group_add
   240     lordered_ab_group_add_join          ~> semilattice_sup_ab_group_add
   244     lordered_ab_group_add_join          ~> semilattice_sup_ab_group_add
   241     lordered_ring                       ~> lattice_ring
   245     lordered_ring                       ~> lattice_ring
   242 
   246 
   243 INCOMPATIBILITY.
   247 INCOMPATIBILITY.
   244 
   248 
   245 * Refined field classes:
   249 * Refined field classes:
   246   * classes division_ring_inverse_zero, field_inverse_zero, linordered_field_inverse_zero
   250   - classes division_ring_inverse_zero, field_inverse_zero,
   247     include rule inverse 0 = 0 -- subsumes former division_by_zero class.
   251     linordered_field_inverse_zero include rule inverse 0 = 0 --
   248   * numerous lemmas have been ported from field to division_ring;
   252     subsumes former division_by_zero class;
   249   INCOMPATIBILITY.
   253   - numerous lemmas have been ported from field to division_ring.
       
   254 INCOMPATIBILITY.
   250 
   255 
   251 * Refined algebra theorem collections:
   256 * Refined algebra theorem collections:
   252   * dropped theorem group group_simps, use algebra_simps instead;
   257   - dropped theorem group group_simps, use algebra_simps instead;
   253   * dropped theorem group ring_simps, use field_simps instead;
   258   - dropped theorem group ring_simps, use field_simps instead;
   254   * proper theorem collection field_simps subsumes former theorem groups field_eq_simps and field_simps;
   259   - proper theorem collection field_simps subsumes former theorem
   255   * dropped lemma eq_minus_self_iff which is a duplicate for equal_neg_zero.
   260     groups field_eq_simps and field_simps;
   256   INCOMPATIBILITY.
   261   - dropped lemma eq_minus_self_iff which is a duplicate for
       
   262     equal_neg_zero.
       
   263 INCOMPATIBILITY.
   257 
   264 
   258 * Theory Finite_Set and List: some lemmas have been generalized from
   265 * Theory Finite_Set and List: some lemmas have been generalized from
   259 sets to lattices:
   266 sets to lattices:
   260 
   267 
   261   fun_left_comm_idem_inter      ~> fun_left_comm_idem_inf
   268   fun_left_comm_idem_inter      ~> fun_left_comm_idem_inf
   277 subsume inf_top and sup_bot respectively.  INCOMPATIBILITY.
   284 subsume inf_top and sup_bot respectively.  INCOMPATIBILITY.
   278 
   285 
   279 * HOLogic.strip_psplit: types are returned in syntactic order, similar
   286 * HOLogic.strip_psplit: types are returned in syntactic order, similar
   280 to other strip and tuple operations.  INCOMPATIBILITY.
   287 to other strip and tuple operations.  INCOMPATIBILITY.
   281 
   288 
   282 * Reorganized theory Multiset: swapped notation of pointwise and multiset order:
   289 * Reorganized theory Multiset: swapped notation of pointwise and
   283   * pointwise ordering is instance of class order with standard syntax <= and <;
   290 multiset order:
   284   * multiset ordering has syntax <=# and <#; partial order properties are provided
   291   - pointwise ordering is instance of class order with standard syntax
   285       by means of interpretation with prefix multiset_order;
   292     <= and <;
   286   * less duplication, less historical organization of sections,
   293   - multiset ordering has syntax <=# and <#; partial order properties
   287       conversion from associations lists to multisets, rudimentary code generation;
   294     are provided by means of interpretation with prefix
   288   * use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union, if needed.
   295     multiset_order;
   289   INCOMPATIBILITY.
   296   - less duplication, less historical organization of sections,
       
   297     conversion from associations lists to multisets, rudimentary code
       
   298     generation;
       
   299   - use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union,
       
   300     if needed.
       
   301 INCOMPATIBILITY.
   290 
   302 
   291 * Code generation: ML and OCaml code is decorated with signatures.
   303 * Code generation: ML and OCaml code is decorated with signatures.
   292 
   304 
   293 * Theory List: added transpose.
   305 * Theory List: added transpose.
   294 
   306