NEWS
changeset 47495 573ca05db948
parent 47494 8c8f27864ed1
parent 47484 e94cc23d434a
child 47496 a43f207f216f
equal deleted inserted replaced
47494:8c8f27864ed1 47495:573ca05db948
     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 Isabelle2012 (May 2012)
     5 ----------------------------
     5 ------------------------------
     6 
     6 
     7 *** General ***
     7 *** General ***
     8 
     8 
     9 * Prover IDE (PIDE) improvements:
     9 * Prover IDE (PIDE) improvements:
    10 
    10 
    45 
    45 
    46 * Forward declaration of outer syntax keywords within the theory
    46 * Forward declaration of outer syntax keywords within the theory
    47 header -- minor INCOMPATIBILITY for user-defined commands.  Allow new
    47 header -- minor INCOMPATIBILITY for user-defined commands.  Allow new
    48 commands to be used in the same theory where defined.
    48 commands to be used in the same theory where defined.
    49 
    49 
    50 * ISABELLE_JDK_HOME settings variable points to JDK with javac and jar
       
    51 (not just JRE).
       
    52 
       
    53 
    50 
    54 *** Pure ***
    51 *** Pure ***
       
    52 
       
    53 * Auxiliary contexts indicate block structure for specifications with
       
    54 additional parameters and assumptions.  Such unnamed contexts may be
       
    55 nested within other targets, like 'theory', 'locale', 'class',
       
    56 'instantiation' etc.  Results from the local context are generalized
       
    57 accordingly and applied to the enclosing target context.  Example:
       
    58 
       
    59   context
       
    60     fixes x y z :: 'a
       
    61     assumes xy: "x = y" and yz: "y = z"
       
    62   begin
       
    63 
       
    64   lemma my_trans: "x = z" using xy yz by simp
       
    65 
       
    66   end
       
    67 
       
    68   thm my_trans
       
    69 
       
    70 The most basic application is to factor-out context elements of
       
    71 several fixes/assumes/shows theorem statements, e.g. see
       
    72 ~~/src/HOL/Isar_Examples/Group_Context.thy
       
    73 
       
    74 Any other local theory specification element works within the "context
       
    75 ... begin ... end" block as well.
       
    76 
       
    77 * Bundled declarations associate attributed fact expressions with a
       
    78 given name in the context.  These may be later included in other
       
    79 contexts.  This allows to manage context extensions casually, without
       
    80 the logical dependencies of locales and locale interpretation.
       
    81 
       
    82 See commands 'bundle', 'include', 'including' etc. in the isar-ref
       
    83 manual.
       
    84 
       
    85 * Rule composition via attribute "OF" (or ML functions OF/MRS) is more
       
    86 tolerant against multiple unifiers, as long as the final result is
       
    87 unique.  (As before, rules are composed in canonical right-to-left
       
    88 order to accommodate newly introduced premises.)
    55 
    89 
    56 * Command 'definition' no longer exports the foundational "raw_def"
    90 * Command 'definition' no longer exports the foundational "raw_def"
    57 into the user context.  Minor INCOMPATIBILITY, may use the regular
    91 into the user context.  Minor INCOMPATIBILITY, may use the regular
    58 "def" result with attribute "abs_def" to imitate the old version.
    92 "def" result with attribute "abs_def" to imitate the old version.
    59 
    93 
    61 "f == %x y. t", which ensures that "simp" or "unfold" steps always
    95 "f == %x y. t", which ensures that "simp" or "unfold" steps always
    62 expand it.  This also works for object-logic equality.  (Formerly
    96 expand it.  This also works for object-logic equality.  (Formerly
    63 undocumented feature.)
    97 undocumented feature.)
    64 
    98 
    65 * Discontinued old "prems" fact, which used to refer to the accidental
    99 * Discontinued old "prems" fact, which used to refer to the accidental
    66 collection of foundational premises in the context (marked as legacy
   100 collection of foundational premises in the context (already marked as
    67 since Isabelle2011).
   101 legacy since Isabelle2011).
    68 
   102 
    69 * Obsolete command 'types' has been discontinued.  Use 'type_synonym'
   103 * Obsolete command 'types' has been discontinued.  Use 'type_synonym'
    70 instead.  INCOMPATIBILITY.
   104 instead.  INCOMPATIBILITY.
    71 
   105 
    72 * Ancient code generator for SML and its commands 'code_module',
   106 * Old code generator for SML and its commands 'code_module',
    73 'code_library', 'consts_code', 'types_code' have been discontinued.
   107 'code_library', 'consts_code', 'types_code' have been discontinued.
    74 Use commands of the generic code generator instead.  INCOMPATIBILITY.
   108 Use commands of the generic code generator instead.  INCOMPATIBILITY.
    75 
   109 
    76 * Redundant attribute 'code_inline' has been discontinued. Use
   110 * Redundant attribute "code_inline" has been discontinued. Use
    77 'code_unfold' instead.  INCOMPATIBILITY.
   111 "code_unfold" instead.  INCOMPATIBILITY.
    78 
   112 
    79 * Dropped attribute 'code_unfold_post' in favor of the its dual
   113 * Dropped attribute "code_unfold_post" in favor of the its dual
    80 'code_abbrev', which yields a common pattern in definitions like
   114 "code_abbrev", which yields a common pattern in definitions like
    81 
   115 
    82   definition [code_abbrev]: "f = t"
   116   definition [code_abbrev]: "f = t"
    83 
   117 
    84 INCOMPATIBILITY.
   118 INCOMPATIBILITY.
    85 
   119 
    88 distinct sorts used to be assigned accidentally.  For example:
   122 distinct sorts used to be assigned accidentally.  For example:
    89 
   123 
    90   lemma "P (x::'a::foo)" and "Q (y::'a::bar)"  -- "now illegal"
   124   lemma "P (x::'a::foo)" and "Q (y::'a::bar)"  -- "now illegal"
    91 
   125 
    92   lemma "P (x::'a)" and "Q (y::'a::bar)"
   126   lemma "P (x::'a)" and "Q (y::'a::bar)"
    93     -- "now uniform 'a::bar instead of default sort for first occurence (!)"
   127     -- "now uniform 'a::bar instead of default sort for first occurrence (!)"
    94 
   128 
    95 
   129 
    96 *** HOL ***
   130 *** HOL ***
    97 
   131 
    98 * New tutorial "Programming and Proving in Isabelle/HOL".
   132 
       
   133 * New tutorial "Programming and Proving in Isabelle/HOL" ("prog-prove").
    99 It completely supercedes "A Tutorial Introduction to Structured Isar Proofs",
   134 It completely supercedes "A Tutorial Introduction to Structured Isar Proofs",
   100 which has been removed. It supercedes "Isabelle/HOL, A Proof Assistant
   135 which has been removed. It supercedes "Isabelle/HOL, A Proof Assistant
   101 for Higher-Order Logic" as the recommended beginners tutorial
   136 for Higher-Order Logic" as the recommended beginners tutorial
   102 but does not cover all of the material of that old tutorial.
   137 but does not cover all of the material of that old tutorial.
       
   138 
       
   139 * Discontinued old Tutorial on Isar ("isar-overview");
   103 
   140 
   104 * The representation of numerals has changed. We now have a datatype
   141 * The representation of numerals has changed. We now have a datatype
   105 "num" representing strictly positive binary numerals, along with
   142 "num" representing strictly positive binary numerals, along with
   106 functions "numeral :: num => 'a" and "neg_numeral :: num => 'a" to
   143 functions "numeral :: num => 'a" and "neg_numeral :: num => 'a" to
   107 represent positive and negated numeric literals, respectively. (See
   144 represent positive and negated numeric literals, respectively. (See
   129 Isabelle2008).  Definitions mem_def and Collect_def have disappeared.
   166 Isabelle2008).  Definitions mem_def and Collect_def have disappeared.
   130 Non-trivial INCOMPATIBILITY.  For developments keeping predicates and
   167 Non-trivial INCOMPATIBILITY.  For developments keeping predicates and
   131 sets separate, it is often sufficient to rephrase sets S accidentally
   168 sets separate, it is often sufficient to rephrase sets S accidentally
   132 used as predicates by "%x. x : S" and predicates P accidentally used
   169 used as predicates by "%x. x : S" and predicates P accidentally used
   133 as sets by "{x. P x}".  Corresponding proofs in a first step should be
   170 as sets by "{x. P x}".  Corresponding proofs in a first step should be
   134 pruned from any tinkering with former theorems mem_def and
   171 pruned from any tinkering with former theorems mem_def and Collect_def
   135 Collect_def as far as possible.
   172 as far as possible.
   136 For developments which deliberately mixed predicates and
   173 
   137 sets, a planning step is necessary to determine what should become a
   174 For developments which deliberately mixed predicates and sets, a
   138 predicate and what a set.  It can be helpful to carry out that step in
   175 planning step is necessary to determine what should become a predicate
       
   176 and what a set.  It can be helpful to carry out that step in
   139 Isabelle2011-1 before jumping right into the current release.
   177 Isabelle2011-1 before jumping right into the current release.
       
   178 
       
   179 * The representation of numerals has changed.  Datatype "num"
       
   180 represents strictly positive binary numerals, along with functions
       
   181 "numeral :: num => 'a" and "neg_numeral :: num => 'a" to represent
       
   182 positive and negated numeric literals, respectively. (See definitions
       
   183 in ~~/src/HOL/Num.thy.) Potential INCOMPATIBILITY, some user theories
       
   184 may require adaptations as follows:
       
   185 
       
   186   - Theorems with number_ring or number_semiring constraints: These
       
   187     classes are gone; use comm_ring_1 or comm_semiring_1 instead.
       
   188 
       
   189   - Theories defining numeric types: Remove number, number_semiring,
       
   190     and number_ring instances. Defer all theorems about numerals until
       
   191     after classes one and semigroup_add have been instantiated.
       
   192 
       
   193   - Numeral-only simp rules: Replace each rule having a "number_of v"
       
   194     pattern with two copies, one for numeral and one for neg_numeral.
       
   195 
       
   196   - Theorems about subclasses of semiring_1 or ring_1: These classes
       
   197     automatically support numerals now, so more simp rules and
       
   198     simprocs may now apply within the proof.
       
   199 
       
   200   - Definitions and theorems using old constructors Pls/Min/Bit0/Bit1:
       
   201     Redefine using other integer operations.
   140 
   202 
   141 * Code generation by default implements sets as container type rather
   203 * Code generation by default implements sets as container type rather
   142 than predicates.  INCOMPATIBILITY.
   204 than predicates.  INCOMPATIBILITY.
   143 
   205 
   144 * New proof import from HOL Light: Faster, simpler, and more scalable.
   206 * New proof import from HOL Light: Faster, simpler, and more scalable.
   145 Requires a proof bundle, which is available as an external component.
   207 Requires a proof bundle, which is available as an external component.
   146 Removed old (and mostly dead) Importer for HOL4 and HOL Light.
   208 Discontinued old (and mostly dead) Importer for HOL4 and HOL Light.
   147 INCOMPATIBILITY.
   209 INCOMPATIBILITY.
   148 
   210 
   149 * New type synonym 'a rel = ('a * 'a) set
   211 * New type synonym 'a rel = ('a * 'a) set
   150 
   212 
   151 * Theory Divides: Discontinued redundant theorems about div and mod.
   213 * Theory Divides: Discontinued redundant theorems about div and mod.
   175 
   237 
   176 * Removed redundant theorems nat_mult_2 and nat_mult_2_right; use
   238 * Removed redundant theorems nat_mult_2 and nat_mult_2_right; use
   177 generic mult_2 and mult_2_right instead. INCOMPATIBILITY.
   239 generic mult_2 and mult_2_right instead. INCOMPATIBILITY.
   178 
   240 
   179 * More default pred/set conversions on a couple of relation operations
   241 * More default pred/set conversions on a couple of relation operations
   180 and predicates.  Added powers of predicate relations.
   242 and predicates.  Added powers of predicate relations.  Consolidation
   181 Consolidation of some relation theorems:
   243 of some relation theorems:
   182 
   244 
   183   converse_def ~> converse_unfold
   245   converse_def ~> converse_unfold
   184   rel_comp_def ~> rel_comp_unfold
   246   rel_comp_def ~> rel_comp_unfold
   185   symp_def ~> (dropped, use symp_def and sym_def instead)
   247   symp_def ~> (dropped, use symp_def and sym_def instead)
   186   transp_def ~> transp_trans
   248   transp_def ~> transp_trans
   187   Domain_def ~> Domain_unfold
   249   Domain_def ~> Domain_unfold
   188   Range_def ~> Domain_converse [symmetric]
   250   Range_def ~> Domain_converse [symmetric]
   189 
   251 
   190 Generalized theorems INF_INT_eq, INF_INT_eq2, SUP_UN_eq, SUP_UN_eq2.
   252 Generalized theorems INF_INT_eq, INF_INT_eq2, SUP_UN_eq, SUP_UN_eq2.
   191 
   253 
   192 See theory "Relation" for examples for making use of pred/set conversions
   254 See theory "Relation" for examples for making use of pred/set
   193 by means of attributes "to_set" and "to_pred".
   255 conversions by means of attributes "to_set" and "to_pred".
   194 
   256 
   195 INCOMPATIBILITY.
   257 INCOMPATIBILITY.
   196 
   258 
   197 * Consolidated various theorem names relating to Finite_Set.fold
   259 * Consolidated various theorem names relating to Finite_Set.fold
   198 combinator:
   260 combinator:
   210 
   272 
   211   INFI_set_fold ~> INF_set_fold
   273   INFI_set_fold ~> INF_set_fold
   212   SUPR_set_fold ~> SUP_set_fold
   274   SUPR_set_fold ~> SUP_set_fold
   213   INF_code ~> INF_set_foldr
   275   INF_code ~> INF_set_foldr
   214   SUP_code ~> SUP_set_foldr
   276   SUP_code ~> SUP_set_foldr
   215   foldr.simps ~> foldr_Nil foldr_Cons (in point-free formulation)
   277   foldr.simps ~> foldr.simps (in point-free formulation)
   216   foldl.simps ~> foldl_Nil foldl_Cons
   278   foldr_fold_rev ~> foldr_conv_fold
   217   foldr_fold_rev ~> foldr_def
   279   foldl_fold ~> foldl_conv_fold
   218   foldl_fold ~> foldl_def
   280   foldr_foldr ~> foldr_conv_foldl
       
   281   foldl_foldr ~> foldl_conv_foldr
   219 
   282 
   220 INCOMPATIBILITY.
   283 INCOMPATIBILITY.
   221 
   284 
   222 * Dropped rarely useful theorems concerning fold combinators:
   285 * Dropped rarely useful theorems concerning fold combinators:
   223 foldl_apply, foldl_fun_comm, foldl_rev, fold_weak_invariant,
   286 foldl_apply, foldl_fun_comm, foldl_rev, fold_weak_invariant,
   224 rev_foldl_cons, fold_set_remdups, fold_set, fold_set1,
   287 rev_foldl_cons, fold_set_remdups, fold_set, fold_set1,
   225 concat_conv_foldl, foldl_weak_invariant, foldl_invariant,
   288 concat_conv_foldl, foldl_weak_invariant, foldl_invariant,
   226 foldr_invariant, foldl_absorb0, foldl_foldr1_lemma, foldl_foldr1,
   289 foldr_invariant, foldl_absorb0, foldl_foldr1_lemma, foldl_foldr1,
   227 listsum_conv_fold, listsum_foldl, sort_foldl_insort.  INCOMPATIBILITY.
   290 listsum_conv_fold, listsum_foldl, sort_foldl_insort, foldl_assoc,
   228 Prefer "List.fold" with canonical argument order, or boil down
   291 foldr_conv_foldl, start_le_sum, elem_le_sum, sum_eq_0_conv.
   229 "List.foldr" and "List.foldl" to "List.fold" by unfolding "foldr_def"
   292 INCOMPATIBILITY.  For the common phrases "%xs. List.foldr plus xs 0"
   230 and "foldl_def".  For the common phrases "%xs. List.foldr plus xs 0"
   293 and "List.foldl plus 0", prefer "List.listsum".  Otherwise it can be
   231 and "List.foldl plus 0", prefer "List.listsum".
   294 useful to boil down "List.foldr" and "List.foldl" to "List.fold" by
       
   295 unfolding "foldr_conv_fold" and "foldl_conv_fold".
       
   296 
       
   297 * Dropped lemmas minus_set_foldr, union_set_foldr, union_coset_foldr,
       
   298 inter_coset_foldr, Inf_fin_set_foldr, Sup_fin_set_foldr,
       
   299 Min_fin_set_foldr, Max_fin_set_foldr, Inf_set_foldr, Sup_set_foldr,
       
   300 INF_set_foldr, SUP_set_foldr.  INCOMPATIBILITY.  Prefer corresponding
       
   301 lemmas over fold rather than foldr, or make use of lemmas
       
   302 fold_conv_foldr and fold_rev.
   232 
   303 
   233 * Congruence rules Option.map_cong and Option.bind_cong for recursion
   304 * Congruence rules Option.map_cong and Option.bind_cong for recursion
   234 through option types.
   305 through option types.
   235 
   306 
   236 * Concrete syntax for case expressions includes constraints for source
   307 * Concrete syntax for case expressions includes constraints for source
   253   fold1_set ~> fold1_set_fold
   324   fold1_set ~> fold1_set_fold
   254 
   325 
   255 INCOMPATIBILITY.
   326 INCOMPATIBILITY.
   256 
   327 
   257 * Renamed facts about the power operation on relations, i.e., relpow
   328 * Renamed facts about the power operation on relations, i.e., relpow
   258   to match the constant's name:
   329 to match the constant's name:
   259   
   330 
   260   rel_pow_1 ~> relpow_1
   331   rel_pow_1 ~> relpow_1
   261   rel_pow_0_I ~> relpow_0_I
   332   rel_pow_0_I ~> relpow_0_I
   262   rel_pow_Suc_I ~> relpow_Suc_I
   333   rel_pow_Suc_I ~> relpow_Suc_I
   263   rel_pow_Suc_I2 ~> relpow_Suc_I2
   334   rel_pow_Suc_I2 ~> relpow_Suc_I2
   264   rel_pow_0_E ~> relpow_0_E
   335   rel_pow_0_E ~> relpow_0_E
   265   rel_pow_Suc_E ~> relpow_Suc_E
   336   rel_pow_Suc_E ~> relpow_Suc_E
   266   rel_pow_E ~> relpow_E
   337   rel_pow_E ~> relpow_E
   267   rel_pow_Suc_D2 ~> relpow_Suc_D2
   338   rel_pow_Suc_D2 ~> relpow_Suc_D2
   268   rel_pow_Suc_E2 ~> relpow_Suc_E2 
   339   rel_pow_Suc_E2 ~> relpow_Suc_E2
   269   rel_pow_Suc_D2' ~> relpow_Suc_D2'
   340   rel_pow_Suc_D2' ~> relpow_Suc_D2'
   270   rel_pow_E2 ~> relpow_E2
   341   rel_pow_E2 ~> relpow_E2
   271   rel_pow_add ~> relpow_add
   342   rel_pow_add ~> relpow_add
   272   rel_pow_commute ~> relpow
   343   rel_pow_commute ~> relpow
   273   rel_pow_empty ~> relpow_empty:
   344   rel_pow_empty ~> relpow_empty:
   279   rel_pow_finite_bounded1 ~> relpow_finite_bounded1
   350   rel_pow_finite_bounded1 ~> relpow_finite_bounded1
   280   rel_pow_finite_bounded ~> relpow_finite_bounded
   351   rel_pow_finite_bounded ~> relpow_finite_bounded
   281   rtrancl_finite_eq_rel_pow ~> rtrancl_finite_eq_relpow
   352   rtrancl_finite_eq_rel_pow ~> rtrancl_finite_eq_relpow
   282   trancl_finite_eq_rel_pow ~> trancl_finite_eq_relpow
   353   trancl_finite_eq_rel_pow ~> trancl_finite_eq_relpow
   283   single_valued_rel_pow ~> single_valued_relpow
   354   single_valued_rel_pow ~> single_valued_relpow
   284  
   355 
   285 INCOMPATIBILITY.
   356 INCOMPATIBILITY.
   286 
   357 
   287 * New theory HOL/Library/DAList provides an abstract type for association
   358 * Theory Relation: Consolidated constant name for relation composition
   288   lists with distinct keys.
   359 and corresponding theorem names:
       
   360 
       
   361   - Renamed constant rel_comp to relcomp
       
   362 
       
   363   - Dropped abbreviation pred_comp. Use relcompp instead.
       
   364 
       
   365   - Renamed theorems:
       
   366 
       
   367     rel_compI ~> relcompI
       
   368     rel_compEpair ~> relcompEpair
       
   369     rel_compE ~> relcompE
       
   370     pred_comp_rel_comp_eq ~> relcompp_relcomp_eq
       
   371     rel_comp_empty1 ~> relcomp_empty1
       
   372     rel_comp_mono ~> relcomp_mono
       
   373     rel_comp_subset_Sigma ~> relcomp_subset_Sigma
       
   374     rel_comp_distrib ~> relcomp_distrib
       
   375     rel_comp_distrib2 ~> relcomp_distrib2
       
   376     rel_comp_UNION_distrib ~> relcomp_UNION_distrib
       
   377     rel_comp_UNION_distrib2 ~> relcomp_UNION_distrib2
       
   378     single_valued_rel_comp ~> single_valued_relcomp
       
   379     rel_comp_unfold ~> relcomp_unfold
       
   380     converse_rel_comp ~> converse_relcomp
       
   381     pred_compI ~> relcomppI
       
   382     pred_compE ~> relcomppE
       
   383     pred_comp_bot1 ~> relcompp_bot1
       
   384     pred_comp_bot2 ~> relcompp_bot2
       
   385     transp_pred_comp_less_eq ~> transp_relcompp_less_eq
       
   386     pred_comp_mono ~> relcompp_mono
       
   387     pred_comp_distrib ~> relcompp_distrib
       
   388     pred_comp_distrib2 ~> relcompp_distrib2
       
   389     converse_pred_comp ~> converse_relcompp
       
   390 
       
   391     finite_rel_comp ~> finite_relcomp
       
   392 
       
   393     set_rel_comp ~> set_relcomp
       
   394 
       
   395 INCOMPATIBILITY.
       
   396 
       
   397 * New theory HOL/Library/DAList provides an abstract type for
       
   398 association lists with distinct keys.
   289 
   399 
   290 * 'datatype' specifications allow explicit sort constraints.
   400 * 'datatype' specifications allow explicit sort constraints.
   291 
   401 
   292 * Theory HOL/Library/Diagonalize has been removed. INCOMPATIBILITY,
   402 * Theory HOL/Library/Diagonalize has been removed. INCOMPATIBILITY,
   293 use theory HOL/Library/Nat_Bijection instead.
   403 use theory HOL/Library/Nat_Bijection instead.
       
   404 
       
   405 * Theory HOL/Library/RBT_Impl: Backing implementation of red-black
       
   406 trees is now inside a type class context.  Names of affected
       
   407 operations and lemmas have been prefixed by rbt_.  INCOMPATIBILITY for
       
   408 theories working directly with raw red-black trees, adapt the names as
       
   409 follows:
       
   410 
       
   411   Operations:
       
   412   bulkload -> rbt_bulkload
       
   413   del_from_left -> rbt_del_from_left
       
   414   del_from_right -> rbt_del_from_right
       
   415   del -> rbt_del
       
   416   delete -> rbt_delete
       
   417   ins -> rbt_ins
       
   418   insert -> rbt_insert
       
   419   insertw -> rbt_insert_with
       
   420   insert_with_key -> rbt_insert_with_key
       
   421   map_entry -> rbt_map_entry
       
   422   lookup -> rbt_lookup
       
   423   sorted -> rbt_sorted
       
   424   tree_greater -> rbt_greater
       
   425   tree_less -> rbt_less
       
   426   tree_less_symbol -> rbt_less_symbol
       
   427   union -> rbt_union
       
   428   union_with -> rbt_union_with
       
   429   union_with_key -> rbt_union_with_key
       
   430 
       
   431   Lemmas:
       
   432   balance_left_sorted -> balance_left_rbt_sorted
       
   433   balance_left_tree_greater -> balance_left_rbt_greater
       
   434   balance_left_tree_less -> balance_left_rbt_less
       
   435   balance_right_sorted -> balance_right_rbt_sorted
       
   436   balance_right_tree_greater -> balance_right_rbt_greater
       
   437   balance_right_tree_less -> balance_right_rbt_less
       
   438   balance_sorted -> balance_rbt_sorted
       
   439   balance_tree_greater -> balance_rbt_greater
       
   440   balance_tree_less -> balance_rbt_less
       
   441   bulkload_is_rbt -> rbt_bulkload_is_rbt
       
   442   combine_sorted -> combine_rbt_sorted
       
   443   combine_tree_greater -> combine_rbt_greater
       
   444   combine_tree_less -> combine_rbt_less
       
   445   delete_in_tree -> rbt_delete_in_tree
       
   446   delete_is_rbt -> rbt_delete_is_rbt
       
   447   del_from_left_tree_greater -> rbt_del_from_left_rbt_greater
       
   448   del_from_left_tree_less -> rbt_del_from_left_rbt_less
       
   449   del_from_right_tree_greater -> rbt_del_from_right_rbt_greater
       
   450   del_from_right_tree_less -> rbt_del_from_right_rbt_less
       
   451   del_in_tree -> rbt_del_in_tree
       
   452   del_inv1_inv2 -> rbt_del_inv1_inv2
       
   453   del_sorted -> rbt_del_rbt_sorted
       
   454   del_tree_greater -> rbt_del_rbt_greater
       
   455   del_tree_less -> rbt_del_rbt_less
       
   456   dom_lookup_Branch -> dom_rbt_lookup_Branch
       
   457   entries_lookup -> entries_rbt_lookup
       
   458   finite_dom_lookup -> finite_dom_rbt_lookup
       
   459   insert_sorted -> rbt_insert_rbt_sorted
       
   460   insertw_is_rbt -> rbt_insertw_is_rbt
       
   461   insertwk_is_rbt -> rbt_insertwk_is_rbt
       
   462   insertwk_sorted -> rbt_insertwk_rbt_sorted
       
   463   insertw_sorted -> rbt_insertw_rbt_sorted
       
   464   ins_sorted -> ins_rbt_sorted
       
   465   ins_tree_greater -> ins_rbt_greater
       
   466   ins_tree_less -> ins_rbt_less
       
   467   is_rbt_sorted -> is_rbt_rbt_sorted
       
   468   lookup_balance -> rbt_lookup_balance
       
   469   lookup_bulkload -> rbt_lookup_rbt_bulkload
       
   470   lookup_delete -> rbt_lookup_rbt_delete
       
   471   lookup_Empty -> rbt_lookup_Empty
       
   472   lookup_from_in_tree -> rbt_lookup_from_in_tree
       
   473   lookup_in_tree -> rbt_lookup_in_tree
       
   474   lookup_ins -> rbt_lookup_ins
       
   475   lookup_insert -> rbt_lookup_rbt_insert
       
   476   lookup_insertw -> rbt_lookup_rbt_insertw
       
   477   lookup_insertwk -> rbt_lookup_rbt_insertwk
       
   478   lookup_keys -> rbt_lookup_keys
       
   479   lookup_map -> rbt_lookup_map
       
   480   lookup_map_entry -> rbt_lookup_rbt_map_entry
       
   481   lookup_tree_greater -> rbt_lookup_rbt_greater
       
   482   lookup_tree_less -> rbt_lookup_rbt_less
       
   483   lookup_union -> rbt_lookup_rbt_union
       
   484   map_entry_color_of -> rbt_map_entry_color_of
       
   485   map_entry_inv1 -> rbt_map_entry_inv1
       
   486   map_entry_inv2 -> rbt_map_entry_inv2
       
   487   map_entry_is_rbt -> rbt_map_entry_is_rbt
       
   488   map_entry_sorted -> rbt_map_entry_rbt_sorted
       
   489   map_entry_tree_greater -> rbt_map_entry_rbt_greater
       
   490   map_entry_tree_less -> rbt_map_entry_rbt_less
       
   491   map_tree_greater -> map_rbt_greater
       
   492   map_tree_less -> map_rbt_less
       
   493   map_sorted -> map_rbt_sorted
       
   494   paint_sorted -> paint_rbt_sorted
       
   495   paint_lookup -> paint_rbt_lookup
       
   496   paint_tree_greater -> paint_rbt_greater
       
   497   paint_tree_less -> paint_rbt_less
       
   498   sorted_entries -> rbt_sorted_entries
       
   499   tree_greater_eq_trans -> rbt_greater_eq_trans
       
   500   tree_greater_nit -> rbt_greater_nit
       
   501   tree_greater_prop -> rbt_greater_prop
       
   502   tree_greater_simps -> rbt_greater_simps
       
   503   tree_greater_trans -> rbt_greater_trans
       
   504   tree_less_eq_trans -> rbt_less_eq_trans
       
   505   tree_less_nit -> rbt_less_nit
       
   506   tree_less_prop -> rbt_less_prop
       
   507   tree_less_simps -> rbt_less_simps
       
   508   tree_less_trans -> rbt_less_trans
       
   509   tree_ord_props -> rbt_ord_props
       
   510   union_Branch -> rbt_union_Branch
       
   511   union_is_rbt -> rbt_union_is_rbt
       
   512   unionw_is_rbt -> rbt_unionw_is_rbt
       
   513   unionwk_is_rbt -> rbt_unionwk_is_rbt
       
   514   unionwk_sorted -> rbt_unionwk_rbt_sorted
   294 
   515 
   295 * Session HOL-Word: Discontinued many redundant theorems specific to
   516 * Session HOL-Word: Discontinued many redundant theorems specific to
   296 type 'a word. INCOMPATIBILITY, use the corresponding generic theorems
   517 type 'a word. INCOMPATIBILITY, use the corresponding generic theorems
   297 instead.
   518 instead.
   298 
   519 
   396   list.exhaust [case_product nat.exhaust]
   617   list.exhaust [case_product nat.exhaust]
   397 
   618 
   398 produces a rule which can be used to perform case distinction on both
   619 produces a rule which can be used to perform case distinction on both
   399 a list and a nat.
   620 a list and a nat.
   400 
   621 
   401 * Improved code generation of multisets.
   622 * Theory Library/Multiset: Improved code generation of multisets.
   402 
   623 
   403 * New diagnostic command find_unused_assms to find potentially superfluous
   624 * New diagnostic command 'find_unused_assms' to find potentially
   404   assumptions in theorems using Quickcheck.
   625 superfluous assumptions in theorems using Quickcheck.
   405 
   626 
   406 * Quickcheck:
   627 * Quickcheck:
       
   628 
   407   - Quickcheck returns variable assignments as counterexamples, which
   629   - Quickcheck returns variable assignments as counterexamples, which
   408     allows to reveal the underspecification of functions under test.
   630     allows to reveal the underspecification of functions under test.
   409     For example, refuting "hd xs = x", it presents the variable
   631     For example, refuting "hd xs = x", it presents the variable
   410     assignment xs = [] and x = a1 as a counterexample, assuming that
   632     assignment xs = [] and x = a1 as a counterexample, assuming that
   411     any property is false whenever "hd []" occurs in it.
   633     any property is false whenever "hd []" occurs in it.
       
   634 
   412     These counterexample are marked as potentially spurious, as
   635     These counterexample are marked as potentially spurious, as
   413     Quickcheck also returns "xs = []" as a counterexample to the
   636     Quickcheck also returns "xs = []" as a counterexample to the
   414     obvious theorem "hd xs = hd xs".
   637     obvious theorem "hd xs = hd xs".
       
   638 
   415     After finding a potentially spurious counterexample, Quickcheck
   639     After finding a potentially spurious counterexample, Quickcheck
   416     continues searching for genuine ones.
   640     continues searching for genuine ones.
       
   641 
   417     By default, Quickcheck shows potentially spurious and genuine
   642     By default, Quickcheck shows potentially spurious and genuine
   418     counterexamples. The option "genuine_only" sets quickcheck to
   643     counterexamples. The option "genuine_only" sets quickcheck to only
   419     only show genuine counterexamples.
   644     show genuine counterexamples.
   420 
   645 
   421   - The command 'quickcheck_generator' creates random and exhaustive
   646   - The command 'quickcheck_generator' creates random and exhaustive
   422     value generators for a given type and operations.
   647     value generators for a given type and operations.
       
   648 
   423     It generates values by using the operations as if they were
   649     It generates values by using the operations as if they were
   424     constructors of that type. 
   650     constructors of that type.
   425 
   651 
   426   - Support for multisets.
   652   - Support for multisets.
   427 
   653 
   428   - Added "use_subtype" options.
   654   - Added "use_subtype" options.
   429  
   655 
       
   656   - Added "quickcheck_locale" configuration to specify how to process
       
   657     conjectures in a locale context.
       
   658 
   430 * Nitpick:
   659 * Nitpick:
       
   660 
   431   - Fixed infinite loop caused by the 'peephole_optim' option and
   661   - Fixed infinite loop caused by the 'peephole_optim' option and
   432     affecting 'rat' and 'real'.
   662     affecting 'rat' and 'real'.
   433 
   663 
   434 * Sledgehammer:
   664 * Sledgehammer:
   435   - Added "lam_trans", "uncurry_aliases", and "minimize" options.
   665   - Added "lam_trans", "uncurry_aliases", and "minimize" options.
   440   - Added possibility to specify lambda translations scheme as a
   670   - Added possibility to specify lambda translations scheme as a
   441     parenthesized argument (e.g., "by (metis (lifting) ...)").
   671     parenthesized argument (e.g., "by (metis (lifting) ...)").
   442 
   672 
   443 * SMT:
   673 * SMT:
   444   - renamed "smt_fixed" option to "smt_read_only_certificates".
   674   - renamed "smt_fixed" option to "smt_read_only_certificates".
   445  
   675 
   446 * Command 'try0':
   676 * Command 'try0':
   447   - Renamed from 'try_methods'. INCOMPATIBILITY.
   677   - Renamed from 'try_methods'. INCOMPATIBILITY.
   448 
   678 
   449 * New "eventually_elim" method as a generalized variant of the
   679 * New "eventually_elim" method as a generalized variant of the
   450   eventually_elim* rules. Supports structured proofs.
   680 eventually_elim* rules. Supports structured proofs.
       
   681 
       
   682 * HOL/TPTP: support to parse and import TPTP problems (all languages)
       
   683 into Isabelle/HOL.
   451 
   684 
   452 
   685 
   453 *** FOL ***
   686 *** FOL ***
   454 
   687 
   455 * New "case_product" attribute (see HOL).
   688 * New "case_product" attribute (see HOL).
       
   689 
       
   690 
       
   691 *** ZF ***
       
   692 
       
   693 * Greater support for structured proofs involving induction or case
       
   694 analysis.
       
   695 
       
   696 * Much greater use of mathematical symbols.
       
   697 
       
   698 * Removal of many ML theorem bindings.  INCOMPATIBILITY.
   456 
   699 
   457 
   700 
   458 *** ML ***
   701 *** ML ***
   459 
   702 
   460 * Antiquotation @{keyword "name"} produces a parser for outer syntax
   703 * Antiquotation @{keyword "name"} produces a parser for outer syntax
   499   setmkeqTrue   ~> Simplifier.set_mkeqTrue
   742   setmkeqTrue   ~> Simplifier.set_mkeqTrue
   500   settermless   ~> Simplifier.set_termless
   743   settermless   ~> Simplifier.set_termless
   501   setsubgoaler  ~> Simplifier.set_subgoaler
   744   setsubgoaler  ~> Simplifier.set_subgoaler
   502   addsplits     ~> Splitter.add_split
   745   addsplits     ~> Splitter.add_split
   503   delsplits     ~> Splitter.del_split
   746   delsplits     ~> Splitter.del_split
       
   747 
       
   748 
       
   749 *** System ***
       
   750 
       
   751 * ISABELLE_JDK_HOME settings variable points to JDK with javac and jar
       
   752 (not just JRE).
       
   753 
       
   754 * ISABELLE_HOME_WINDOWS refers to ISABELLE_HOME in windows file name
       
   755 notation, which is useful for the jEdit file browser, for example.
   504 
   756 
   505 
   757 
   506 
   758 
   507 New in Isabelle2011-1 (October 2011)
   759 New in Isabelle2011-1 (October 2011)
   508 ------------------------------------
   760 ------------------------------------
  1809 *** FOL and ZF ***
  2061 *** FOL and ZF ***
  1810 
  2062 
  1811 * All constant names are now qualified internally and use proper
  2063 * All constant names are now qualified internally and use proper
  1812 identifiers, e.g. "IFOL.eq" instead of "op =".  INCOMPATIBILITY.
  2064 identifiers, e.g. "IFOL.eq" instead of "op =".  INCOMPATIBILITY.
  1813 
  2065 
  1814 *** ZF ***
       
  1815 
       
  1816 * Greater support for structured proofs involving induction or case analysis.
       
  1817 
       
  1818 * Much greater use of special symbols.
       
  1819 
       
  1820 * Removal of many ML theorem bindings. INCOMPATIBILITY.
       
  1821 
  2066 
  1822 *** ML ***
  2067 *** ML ***
  1823 
  2068 
  1824 * Antiquotation @{assert} inlines a function bool -> unit that raises
  2069 * Antiquotation @{assert} inlines a function bool -> unit that raises
  1825 Fail if the argument is false.  Due to inlining the source position of
  2070 Fail if the argument is false.  Due to inlining the source position of
  4907 fold_set now are named Inf_fin, Sup_fin.  INCOMPATIBILITY.
  5152 fold_set now are named Inf_fin, Sup_fin.  INCOMPATIBILITY.
  4908 
  5153 
  4909 * HOL/Nat: neq0_conv no longer declared as iff.  INCOMPATIBILITY.
  5154 * HOL/Nat: neq0_conv no longer declared as iff.  INCOMPATIBILITY.
  4910 
  5155 
  4911 * HOL-Word: New extensive library and type for generic, fixed size
  5156 * HOL-Word: New extensive library and type for generic, fixed size
  4912 machine words, with arithmetic, bit-wise, shifting and rotating
  5157 machine words, with arithemtic, bit-wise, shifting and rotating
  4913 operations, reflection into int, nat, and bool lists, automation for
  5158 operations, reflection into int, nat, and bool lists, automation for
  4914 linear arithmetic (by automatic reflection into nat or int), including
  5159 linear arithmetic (by automatic reflection into nat or int), including
  4915 lemmas on overflow and monotonicity.  Instantiated to all appropriate
  5160 lemmas on overflow and monotonicity.  Instantiated to all appropriate
  4916 arithmetic type classes, supporting automatic simplification of
  5161 arithmetic type classes, supporting automatic simplification of
  4917 numerals on all operations.
  5162 numerals on all operations.