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 |