NEWS
changeset 14731 5670fc027a3b
parent 14709 d01983034ded
child 14795 b702848de41f
equal deleted inserted replaced
14730:59ab60c6fcc6 14731:5670fc027a3b
     5 ----------------------------
     5 ----------------------------
     6 
     6 
     7 *** General ***
     7 *** General ***
     8 
     8 
     9 * Pure: considerably improved version of 'constdefs' command.  Now
     9 * Pure: considerably improved version of 'constdefs' command.  Now
    10 performs automatic type-inference of declared constants; additional
    10   performs automatic type-inference of declared constants; additional
    11 support for local structure declarations (cf. locales and HOL
    11   support for local structure declarations (cf. locales and HOL
    12 records), see also isar-ref manual.  Potential INCOMPATIBILITY: need
    12   records), see also isar-ref manual.  Potential INCOMPATIBILITY: need
    13 to observe strictly sequential dependencies of definitions within a
    13   to observe strictly sequential dependencies of definitions within a
    14 single 'constdefs' section; moreover, the declared name needs to be an
    14   single 'constdefs' section; moreover, the declared name needs to be
    15 identifier.  If all fails, consider to fall back on 'consts' and
    15   an identifier.  If all fails, consider to fall back on 'consts' and
    16 'defs' separately.
    16   'defs' separately.
    17 
    17 
    18 * Pure: improved indexed syntax and implicit structures.  First of
    18 * Pure: improved indexed syntax and implicit structures.  First of
    19 all, indexed syntax provides a notational device for subscripted
    19   all, indexed syntax provides a notational device for subscripted
    20 application, using the new syntax \<^bsub>term\<^esub> for arbitrary
    20   application, using the new syntax \<^bsub>term\<^esub> for arbitrary
    21 expressions.  Secondly, in a local context with structure
    21   expressions.  Secondly, in a local context with structure
    22 declarations, number indexes \<^sub>n or the empty index (default
    22   declarations, number indexes \<^sub>n or the empty index (default
    23 number 1) refer to a certain fixed variable implicitly; option
    23   number 1) refer to a certain fixed variable implicitly; option
    24 show_structs controls printing of implicit structures.  Typical
    24   show_structs controls printing of implicit structures.  Typical
    25 applications of these concepts involve record types and locales.
    25   applications of these concepts involve record types and locales.
       
    26 
       
    27 * Pure: syntax of terms, types etc. includes (*(*nested*) comments*).
    26 
    28 
    27 * Pure: 'advanced' translation functions (parse_translation etc.) may
    29 * Pure: 'advanced' translation functions (parse_translation etc.) may
    28 depend on the signature of the theory context being presently used for
    30   depend on the signature of the theory context being presently used
    29 parsing/printing, see also isar-ref manual.
    31   for parsing/printing, see also isar-ref manual.
    30 
    32 
    31 * Pure: tuned internal renaming of symbolic identifiers -- attach
    33 * Pure: tuned internal renaming of symbolic identifiers -- attach
    32 primes instead of base 26 numbers.
    34   primes instead of base 26 numbers.
    33 
    35 
    34 
    36 
    35 *** HOL ***
    37 *** HOL ***
    36 
    38 
    37 
    39 * HOL/record: reimplementation of records. Improved scalability for
    38 * HOL/record: reimplementation of records. Improved scalability for records with
    40   records with many fields, avoiding performance problems for type
    39 many fields, avoiding performance problems for type inference. Records are no 
    41   inference. Records are no longer composed of nested field types, but
    40 longer composed of nested field types,
    42   of nested extension types. Therefore the record type only grows
    41 but of nested extension types. Therefore the record type only grows
    43   linear in the number of extensions and not in the number of fields.
    42 linear in the number of extensions and not in the number of fields.
    44   The top-level (users) view on records is preserved.  Potential
    43 The top-level (users) view on records is preserved. 
    45   INCOMPATIBILITY only in strange cases, where the theory depends on
    44 Potential INCOMPATIBILITY only in strange cases, where the theory
    46   the old record representation. The type generated for a record is
    45 depends on the old record representation. The type generated for
    47   called <record_name>_ext_type.
    46 a record is called <record_name>_ext_type.    
    48 
    47 
    49 * Simplifier: "record_upd_simproc" for simplification of multiple
    48 
    50   record updates enabled by default.  INCOMPATIBILITY: old proofs
    49 * Simplifier: "record_upd_simproc" for simplification of multiple record 
    51   break occasionally, since simplification is more powerful by
    50 updates enabled by default. 
    52   default.
    51 INCOMPATIBILITY: old proofs break occasionally, since simplification
    53 
    52 is more powerful by default.
       
    53 
    54 
    54 *** HOLCF ***
    55 *** HOLCF ***
    55 
    56 
    56 * HOLCF: discontinued special version of 'constdefs' (which used to
    57 * HOLCF: discontinued special version of 'constdefs' (which used to
    57 support continuous functions) in favor of the general Pure one with
    58   support continuous functions) in favor of the general Pure one with
    58 full type-inference.
    59   full type-inference.
    59 
    60 
    60 
    61 
    61 
    62 
    62 New in Isabelle2004 (April 2004)
    63 New in Isabelle2004 (April 2004)
    63 --------------------------------
    64 --------------------------------
    78   symbols.  Call 'isatool fixgreek' to try to fix parsing errors in
    79   symbols.  Call 'isatool fixgreek' to try to fix parsing errors in
    79   existing theory and ML files.
    80   existing theory and ML files.
    80 
    81 
    81 * Pure: Macintosh and Windows line-breaks are now allowed in theory files.
    82 * Pure: Macintosh and Windows line-breaks are now allowed in theory files.
    82 
    83 
    83 * Pure: single letter sub/superscripts (\<^isub> and \<^isup>) are now 
    84 * Pure: single letter sub/superscripts (\<^isub> and \<^isup>) are now
    84   allowed in identifiers. Similar to Greek letters \<^isub> is now considered 
    85   allowed in identifiers. Similar to Greek letters \<^isub> is now considered
    85   a normal (but invisible) letter. For multiple letter subscripts repeat 
    86   a normal (but invisible) letter. For multiple letter subscripts repeat
    86   \<^isub> like this: x\<^isub>1\<^isub>2. 
    87   \<^isub> like this: x\<^isub>1\<^isub>2.
    87 
    88 
    88 * Pure: There are now sub-/superscripts that can span more than one
    89 * Pure: There are now sub-/superscripts that can span more than one
    89   character. Text between \<^bsub> and \<^esub> is set in subscript in
    90   character. Text between \<^bsub> and \<^esub> is set in subscript in
    90   ProofGeneral and LaTeX, text between \<^bsup> and \<^esup> in
    91   ProofGeneral and LaTeX, text between \<^bsup> and \<^esup> in
    91   superscript. The new control characters are not identifier parts.
    92   superscript. The new control characters are not identifier parts.
   102 
   103 
   103 * Pure: 'instance' now handles general arities with general sorts
   104 * Pure: 'instance' now handles general arities with general sorts
   104   (i.e. intersections of classes),
   105   (i.e. intersections of classes),
   105 
   106 
   106 * Presentation: generated HTML now uses a CSS style sheet to make layout
   107 * Presentation: generated HTML now uses a CSS style sheet to make layout
   107   (somewhat) independent of content. It is copied from lib/html/isabelle.css. 
   108   (somewhat) independent of content. It is copied from lib/html/isabelle.css.
   108   It can be changed to alter the colors/layout of generated pages.
   109   It can be changed to alter the colors/layout of generated pages.
   109 
   110 
   110 
   111 
   111 *** Isar ***
   112 *** Isar ***
   112 
   113 
   172     to solve goals from the assumptions.
   173     to solve goals from the assumptions.
   173   - INCOMPATIBILITY: old proofs break occasionally.  Typically, applications
   174   - INCOMPATIBILITY: old proofs break occasionally.  Typically, applications
   174     of blast or auto after simplification become unnecessary because the goal
   175     of blast or auto after simplification become unnecessary because the goal
   175     is solved by simplification already.
   176     is solved by simplification already.
   176 
   177 
   177 * Numerics: new theory Ring_and_Field contains over 250 basic numerical laws, 
   178 * Numerics: new theory Ring_and_Field contains over 250 basic numerical laws,
   178     all proved in axiomatic type classes for semirings, rings and fields.
   179     all proved in axiomatic type classes for semirings, rings and fields.
   179 
   180 
   180 * Numerics:
   181 * Numerics:
   181   - Numeric types (nat, int, and in HOL-Complex rat, real, complex, etc.) are
   182   - Numeric types (nat, int, and in HOL-Complex rat, real, complex, etc.) are
   182     now formalized using the Ring_and_Field theory mentioned above. 
   183     now formalized using the Ring_and_Field theory mentioned above.
   183   - INCOMPATIBILITY: simplification and arithmetic behaves somewhat differently
   184   - INCOMPATIBILITY: simplification and arithmetic behaves somewhat differently
   184     than before, because now they are set up once in a generic manner.
   185     than before, because now they are set up once in a generic manner.
   185   - INCOMPATIBILITY: many type-specific arithmetic laws have gone. 
   186   - INCOMPATIBILITY: many type-specific arithmetic laws have gone.
   186     Look for the general versions in Ring_and_Field (and Power if they concern
   187     Look for the general versions in Ring_and_Field (and Power if they concern
   187     exponentiation).
   188     exponentiation).
   188 
   189 
   189 * Type "rat" of the rational numbers is now available in HOL-Complex.
   190 * Type "rat" of the rational numbers is now available in HOL-Complex.
   190 
   191 
   191 * Records:
   192 * Records:
   192   - Record types are now by default printed with their type abbreviation
   193   - Record types are now by default printed with their type abbreviation
   193     instead of the list of all field types. This can be configured via
   194     instead of the list of all field types. This can be configured via
   194     the reference "print_record_type_abbr".
   195     the reference "print_record_type_abbr".
   195   - Simproc "record_upd_simproc" for simplification of multiple updates added 
   196   - Simproc "record_upd_simproc" for simplification of multiple updates added
   196     (not enabled by default).
   197     (not enabled by default).
   197   - Simproc "record_ex_sel_eq_simproc" to simplify EX x. sel r = x resp.
   198   - Simproc "record_ex_sel_eq_simproc" to simplify EX x. sel r = x resp.
   198     EX x. x = sel r to True (not enabled by default).
   199     EX x. x = sel r to True (not enabled by default).
   199   - Tactic "record_split_simp_tac" to split and simplify records added.
   200   - Tactic "record_split_simp_tac" to split and simplify records added.
   200  
   201 
   201 * 'specification' command added, allowing for definition by
   202 * 'specification' command added, allowing for definition by
   202   specification.  There is also an 'ax_specification' command that
   203   specification.  There is also an 'ax_specification' command that
   203   introduces the new constants axiomatically.
   204   introduces the new constants axiomatically.
   204 
   205 
   205 * arith(_tac) is now able to generate counterexamples for reals as well.
   206 * arith(_tac) is now able to generate counterexamples for reals as well.
   207 * HOL-Algebra: new locale "ring" for non-commutative rings.
   208 * HOL-Algebra: new locale "ring" for non-commutative rings.
   208 
   209 
   209 * HOL-ex: InductiveInvariant_examples illustrates advanced recursive function
   210 * HOL-ex: InductiveInvariant_examples illustrates advanced recursive function
   210   definitions, thanks to Sava Krsti\'{c} and John Matthews.
   211   definitions, thanks to Sava Krsti\'{c} and John Matthews.
   211 
   212 
   212 * HOL-Matrix: a first theory for matrices in HOL with an application of 
   213 * HOL-Matrix: a first theory for matrices in HOL with an application of
   213   matrix theory to linear programming.
   214   matrix theory to linear programming.
   214 
   215 
   215 * Unions and Intersections:
   216 * Unions and Intersections:
   216   The x-symbol output syntax of UN and INT has been changed
   217   The x-symbol output syntax of UN and INT has been changed
   217   from "\<Union>x \<in> A. B" to "\<Union\<^bsub>x \<in> A\<^esub> B"
   218   from "\<Union>x \<in> A. B" to "\<Union\<^bsub>x \<in> A\<^esub> B"
   218   i.e. the index formulae has become a subscript, like in normal math.
   219   i.e. the index formulae has become a subscript, like in normal math.
   219   Similarly for "\<Union>x. B", and for \<Inter> instead of \<Union>.
   220   Similarly for "\<Union>x. B", and for \<Inter> instead of \<Union>.
   220   The subscript version is also accepted as input syntax.
   221   The subscript version is also accepted as input syntax.
   221 
   222 
   222 * Unions and Intersections over Intervals:
   223 * Unions and Intersections over Intervals:
   223   There is new short syntax "UN i<=n. A" for "UN i:{0..n}. A". There is 
   224   There is new short syntax "UN i<=n. A" for "UN i:{0..n}. A". There is
   224   also an x-symbol version with subscripts "\<Union>\<^bsub>i <= n\<^esub>. A" 
   225   also an x-symbol version with subscripts "\<Union>\<^bsub>i <= n\<^esub>. A"
   225   like in normal math, and corresponding versions for < and for intersection.
   226   like in normal math, and corresponding versions for < and for intersection.
   226 
   227 
   227 * ML: the legacy theory structures Int and List have been removed. They had
   228 * ML: the legacy theory structures Int and List have been removed. They had
   228   conflicted with ML Basis Library structures having the same names.
   229   conflicted with ML Basis Library structures having the same names.
   229 
   230 
   362 
   363 
   363  - Knows about div k and mod k where k is a numeral of type nat or int.
   364  - Knows about div k and mod k where k is a numeral of type nat or int.
   364 
   365 
   365  - Calls full Presburger arithmetic (by Amine Chaieb) if quantifier-free
   366  - Calls full Presburger arithmetic (by Amine Chaieb) if quantifier-free
   366    linear arithmetic fails. This takes account of quantifiers and divisibility.
   367    linear arithmetic fails. This takes account of quantifiers and divisibility.
   367    Presburger arithmetic can also be called explicitly via presburger(_tac). 
   368    Presburger arithmetic can also be called explicitly via presburger(_tac).
   368 
   369 
   369 * simp's arithmetic capabilities have been enhanced a bit: it now
   370 * simp's arithmetic capabilities have been enhanced a bit: it now
   370 takes ~= in premises into account (by performing a case split);
   371 takes ~= in premises into account (by performing a case split);
   371 
   372 
   372 * simp reduces "m*(n div m) + n mod m" to n, even if the two summands
   373 * simp reduces "m*(n div m) + n mod m" to n, even if the two summands
   373 are distributed over a sum of terms;
   374 are distributed over a sum of terms;
   374 
   375 
   375 * New tactic "trans_tac" and method "trans" instantiate
   376 * New tactic "trans_tac" and method "trans" instantiate
   376 Provers/linorder.ML for axclasses "order" and "linorder" (predicates
   377 Provers/linorder.ML for axclasses "order" and "linorder" (predicates
   377 "<=", "<" and "="). 
   378 "<=", "<" and "=").
   378 
   379 
   379 * function INCOMPATIBILITIES: Pi-sets have been redefined and moved from main 
   380 * function INCOMPATIBILITIES: Pi-sets have been redefined and moved from main
   380 HOL to Library/FuncSet; constant "Fun.op o" is now called "Fun.comp";
   381 HOL to Library/FuncSet; constant "Fun.op o" is now called "Fun.comp";
   381 
   382 
   382 * 'typedef' command has new option "open" to suppress the set
   383 * 'typedef' command has new option "open" to suppress the set
   383 definition;
   384 definition;
   384 
   385 
   400 (up to Sylow's theorem) and ring theory (Universal Property of
   401 (up to Sylow's theorem) and ring theory (Universal Property of
   401 Univariate Polynomials).  Contributions welcome;
   402 Univariate Polynomials).  Contributions welcome;
   402 
   403 
   403 * GroupTheory: deleted, since its material has been moved to Algebra;
   404 * GroupTheory: deleted, since its material has been moved to Algebra;
   404 
   405 
   405 * Complex: new directory of the complex numbers with numeric constants, 
   406 * Complex: new directory of the complex numbers with numeric constants,
   406 nonstandard complex numbers, and some complex analysis, standard and 
   407 nonstandard complex numbers, and some complex analysis, standard and
   407 nonstandard (Jacques Fleuriot);
   408 nonstandard (Jacques Fleuriot);
   408 
   409 
   409 * HOL-Complex: new image for analysis, replacing HOL-Real and HOL-Hyperreal;
   410 * HOL-Complex: new image for analysis, replacing HOL-Real and HOL-Hyperreal;
   410 
   411 
   411 * Hyperreal: introduced Gauge integration and hyperreal logarithms (Jacques 
   412 * Hyperreal: introduced Gauge integration and hyperreal logarithms (Jacques
   412 Fleuriot);
   413 Fleuriot);
   413 
   414 
   414 * Real/HahnBanach: updated and adapted to locales;
   415 * Real/HahnBanach: updated and adapted to locales;
   415 
   416 
   416 * NumberTheory: added Gauss's law of quadratic reciprocity (by Avigad,
   417 * NumberTheory: added Gauss's law of quadratic reciprocity (by Avigad,
   452 
   453 
   453 * uses \par instead of \\ for line breaks in theory text. This may
   454 * uses \par instead of \\ for line breaks in theory text. This may
   454 shift some page breaks in large documents. To get the old behaviour
   455 shift some page breaks in large documents. To get the old behaviour
   455 use \renewcommand{\isanewline}{\mbox{}\\\mbox{}} in root.tex.
   456 use \renewcommand{\isanewline}{\mbox{}\\\mbox{}} in root.tex.
   456 
   457 
   457 * minimized dependencies of isabelle.sty and isabellesym.sty on 
   458 * minimized dependencies of isabelle.sty and isabellesym.sty on
   458 other packages
   459 other packages
   459 
   460 
   460 * \<euro> now needs package babel/greek instead of marvosym (which
   461 * \<euro> now needs package babel/greek instead of marvosym (which
   461 broke \Rightarrow)
   462 broke \Rightarrow)
   462 
   463 
   463 * normal size for \<zero>...\<nine> (uses \mathbf instead of 
   464 * normal size for \<zero>...\<nine> (uses \mathbf instead of
   464 textcomp package)
   465 textcomp package)
   465 
   466 
   466 
   467 
   467 
   468 
   468 New in Isabelle2002 (March 2002)
   469 New in Isabelle2002 (March 2002)
   706 via 'generate_code' theory section;
   707 via 'generate_code' theory section;
   707 
   708 
   708 * HOL: canonical cases/induct rules for n-tuples (n = 3..7);
   709 * HOL: canonical cases/induct rules for n-tuples (n = 3..7);
   709 
   710 
   710 * HOL: consolidated and renamed several theories.  In particular:
   711 * HOL: consolidated and renamed several theories.  In particular:
   711 	Ord.thy has been absorbed into HOL.thy
   712         Ord.thy has been absorbed into HOL.thy
   712 	String.thy has been absorbed into List.thy
   713         String.thy has been absorbed into List.thy
   713  
   714 
   714 * HOL: concrete setsum syntax "\<Sum>i:A. b" == "setsum (%i. b) A"
   715 * HOL: concrete setsum syntax "\<Sum>i:A. b" == "setsum (%i. b) A"
   715 (beware of argument permutation!);
   716 (beware of argument permutation!);
   716 
   717 
   717 * HOL: linorder_less_split superseded by linorder_cases;
   718 * HOL: linorder_less_split superseded by linorder_cases;
   718 
   719