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. |
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, |