NEWS
changeset 22997 d4f3b015b50b
parent 22972 3e96b98d37c6
child 23013 c38c9039dc13
equal deleted inserted replaced
22996:5f82c5f8478e 22997:d4f3b015b50b
   527 * Pure: 'print_theory' now suppresses entities with internal name
   527 * Pure: 'print_theory' now suppresses entities with internal name
   528 (trailing "_") by default; use '!' option for full details.
   528 (trailing "_") by default; use '!' option for full details.
   529 
   529 
   530 
   530 
   531 *** HOL ***
   531 *** HOL ***
       
   532 
       
   533 * Constant renames due to introduction of canonical name prefixing for
       
   534   class package:
       
   535 
       
   536     HOL.abs ~> HOL.minus_class.abs
       
   537     HOL.divide ~> HOL.divide_class.divide
       
   538     Nat.power ~> Nat.power_class.power
       
   539     Nat.size ~> Nat.size_class.size
       
   540     Numeral.number_of ~> Numeral.number_class.number_of
   532 
   541 
   533 * case expressions and primrec: missing cases now mapped to "undefined"
   542 * case expressions and primrec: missing cases now mapped to "undefined"
   534 instead of "arbitrary"
   543 instead of "arbitrary"
   535 
   544 
   536 * new constant "undefined" with axiom "undefined x = undefined"
   545 * new constant "undefined" with axiom "undefined x = undefined"
   673 
   682 
   674 * Added syntactic class "size"; overloaded constant "size" now has
   683 * Added syntactic class "size"; overloaded constant "size" now has
   675 type "'a::size ==> bool"
   684 type "'a::size ==> bool"
   676 
   685 
   677 * Renamed constants "Divides.op div", "Divides.op mod" and "Divides.op
   686 * Renamed constants "Divides.op div", "Divides.op mod" and "Divides.op
   678 dvd" to "Divides.div", "Divides.mod" and "Divides.dvd". INCOMPATIBILITY.
   687 dvd" to "Divides.div_class.div", "Divides.div_class.mod" and "Divides.dvd". INCOMPATIBILITY.
   679 
   688 
   680 * Added method "lexicographic_order" automatically synthesizes
   689 * Added method "lexicographic_order" automatically synthesizes
   681 termination relations as lexicographic combinations of size measures
   690 termination relations as lexicographic combinations of size measures
   682 -- 'function' package.
   691 -- 'function' package.
   683 
   692 
   706 
   715 
   707 * Renamed constant "List.op mem" to "List.memberl" INCOMPATIBILITY:
   716 * Renamed constant "List.op mem" to "List.memberl" INCOMPATIBILITY:
   708 rarely occuring name references (e.g. ``List.op mem.simps'') require
   717 rarely occuring name references (e.g. ``List.op mem.simps'') require
   709 renaming (e.g. ``List.memberl.simps'').
   718 renaming (e.g. ``List.memberl.simps'').
   710 
   719 
   711 * Renamed constants "0" to "HOL.zero" and "1" to "HOL.one".
   720 * Renamed constants "0" to "HOL.zero_class.zero" and "1" to "HOL.one_class.one".
   712 INCOMPATIBILITY.
   721 INCOMPATIBILITY.
   713 
   722 
   714 * Added theory Code_Generator providing class 'eq', allowing for code
   723 * Added theory Code_Generator providing class 'eq', allowing for code
   715 generation with polymorphic equality.
   724 generation with polymorphic equality.
   716 
   725 
   735 * Alternative iff syntax "A <-> B" for equality on bool (with priority
   744 * Alternative iff syntax "A <-> B" for equality on bool (with priority
   736 25 like -->); output depends on the "iff" print_mode, the default is
   745 25 like -->); output depends on the "iff" print_mode, the default is
   737 "A = B" (with priority 50).
   746 "A = B" (with priority 50).
   738 
   747 
   739 * Renamed constants in HOL.thy and Orderings.thy:
   748 * Renamed constants in HOL.thy and Orderings.thy:
   740     op +   ~> HOL.plus
   749     op +   ~> HOL.plus_class.plus
   741     op -   ~> HOL.minus
   750     op -   ~> HOL.minus_class.minus
   742     uminus ~> HOL.uminus
   751     uminus ~> HOL.minus_class.uminus
   743     op *   ~> HOL.times
   752     op *   ~> HOL.times_class.times
   744     op <   ~> Orderings.less
   753     op <   ~> Orderings.ord_class.less
   745     op <=  ~> Orderings.less_eq
   754     op <=  ~> Orderings.ord_class.less_eq
   746 
   755 
   747 Adaptions may be required in the following cases:
   756 Adaptions may be required in the following cases:
   748 
   757 
   749 a) User-defined constants using any of the names "plus", "minus", "times",
   758 a) User-defined constants using any of the names "plus", "minus", "times",
   750 "less" or "less_eq". The standard syntax translations for "+", "-" and "*"
   759 "less" or "less_eq". The standard syntax translations for "+", "-" and "*"
   761 distribution).
   770 distribution).
   762 INCOMPATIBILITY: rewrite proofs
   771 INCOMPATIBILITY: rewrite proofs
   763 
   772 
   764 d) ML code directly refering to constant names
   773 d) ML code directly refering to constant names
   765 This in general only affects hand-written proof tactics, simprocs and so on.
   774 This in general only affects hand-written proof tactics, simprocs and so on.
   766 INCOMPATIBILITY: grep your sourcecode and replace names.
   775 INCOMPATIBILITY: grep your sourcecode and replace names.  Consider use
       
   776 of const_name ML antiquotations.
   767 
   777 
   768 * Relations less (<) and less_eq (<=) are also available on type bool.
   778 * Relations less (<) and less_eq (<=) are also available on type bool.
   769 Modified syntax to disallow nesting without explicit parentheses,
   779 Modified syntax to disallow nesting without explicit parentheses,
   770 e.g. "(x < y) < z" or "x < (y < z)", but NOT "x < y < z".
   780 e.g. "(x < y) < z" or "x < (y < z)", but NOT "x < y < z".
   771 
   781