author | huffman |
Thu, 25 Aug 2011 19:41:38 -0700 | |
changeset 44531 | 1d477a2b1572 |
parent 44530 | adb18b07b341 |
child 44538 | 8037d25afa89 |
permissions | -rw-r--r-- |
5363 | 1 |
Isabelle NEWS -- history user-relevant changes |
2 |
============================================== |
|
2553 | 3 |
|
41651 | 4 |
New in this Isabelle version |
5 |
---------------------------- |
|
6 |
||
41703
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
7 |
*** General *** |
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
8 |
|
41955
703ea96b13c6
files are identified via SHA1 digests -- discontinued ISABELLE_FILE_IDENT;
wenzelm
parents:
41952
diff
changeset
|
9 |
* Theory loader: source files are identified by content via SHA1 |
703ea96b13c6
files are identified via SHA1 digests -- discontinued ISABELLE_FILE_IDENT;
wenzelm
parents:
41952
diff
changeset
|
10 |
digests. Discontinued former path/modtime identification and optional |
703ea96b13c6
files are identified via SHA1 digests -- discontinued ISABELLE_FILE_IDENT;
wenzelm
parents:
41952
diff
changeset
|
11 |
ISABELLE_FILE_IDENT plugin scripts. |
703ea96b13c6
files are identified via SHA1 digests -- discontinued ISABELLE_FILE_IDENT;
wenzelm
parents:
41952
diff
changeset
|
12 |
|
41703
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
13 |
* Parallelization of nested Isar proofs is subject to |
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
14 |
Goal.parallel_proofs_threshold (default 100). See also isabelle |
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
15 |
usedir option -Q. |
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
16 |
|
41718
05514b09bb4b
discontinued support for Poly/ML 5.2, which was the last version without proper multithreading and TimeLimit implementation;
wenzelm
parents:
41703
diff
changeset
|
17 |
* Discontinued support for Poly/ML 5.2, which was the last version |
05514b09bb4b
discontinued support for Poly/ML 5.2, which was the last version without proper multithreading and TimeLimit implementation;
wenzelm
parents:
41703
diff
changeset
|
18 |
without proper multithreading and TimeLimit implementation. |
05514b09bb4b
discontinued support for Poly/ML 5.2, which was the last version without proper multithreading and TimeLimit implementation;
wenzelm
parents:
41703
diff
changeset
|
19 |
|
41734
d92cc39097e6
discontinued obsolete lib/scripts/polyml-platform;
wenzelm
parents:
41728
diff
changeset
|
20 |
* Discontinued old lib/scripts/polyml-platform, which has been |
d92cc39097e6
discontinued obsolete lib/scripts/polyml-platform;
wenzelm
parents:
41728
diff
changeset
|
21 |
obsolete since Isabelle2009-2. |
d92cc39097e6
discontinued obsolete lib/scripts/polyml-platform;
wenzelm
parents:
41728
diff
changeset
|
22 |
|
41886 | 23 |
* Theory loader: source files are exclusively located via the master |
24 |
directory of each theory node (where the .thy file itself resides). |
|
43527
1aacef7471c2
Release notes should be written from the user's perspective. Don't assume the user has universal knowledge of the system.
ballarin
parents:
43319
diff
changeset
|
25 |
The global load path (such as src/HOL/Library) has been discontinued. |
1aacef7471c2
Release notes should be written from the user's perspective. Don't assume the user has universal knowledge of the system.
ballarin
parents:
43319
diff
changeset
|
26 |
Note that the path element ~~ may be used to reference theories in the |
1aacef7471c2
Release notes should be written from the user's perspective. Don't assume the user has universal knowledge of the system.
ballarin
parents:
43319
diff
changeset
|
27 |
Isabelle home folder -- for instance, "~~/src/HOL/Library/FuncSet". |
1aacef7471c2
Release notes should be written from the user's perspective. Don't assume the user has universal knowledge of the system.
ballarin
parents:
43319
diff
changeset
|
28 |
INCOMPATIBILITY. |
41886 | 29 |
|
41950
134131d519c0
clarified ISABELLE_CSDP setting (formerly CSDP_EXE);
wenzelm
parents:
41944
diff
changeset
|
30 |
* Various optional external tools are referenced more robustly and |
41952
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
31 |
uniformly by explicit Isabelle settings as follows: |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
32 |
|
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
33 |
ISABELLE_CSDP (formerly CSDP_EXE) |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
34 |
ISABELLE_GHC (formerly EXEC_GHC or GHC_PATH) |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
35 |
ISABELLE_OCAML (formerly EXEC_OCAML) |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
36 |
ISABELLE_SWIPL (formerly EXEC_SWIPL) |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
37 |
ISABELLE_YAP (formerly EXEC_YAP) |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
38 |
|
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
39 |
Note that automated detection from the file-system or search path has |
c7297638599b
cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
wenzelm
parents:
41950
diff
changeset
|
40 |
been discontinued. INCOMPATIBILITY. |
41950
134131d519c0
clarified ISABELLE_CSDP setting (formerly CSDP_EXE);
wenzelm
parents:
41944
diff
changeset
|
41 |
|
42669
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
42 |
* Name space: former unsynchronized references are now proper |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
43 |
configuration options, with more conventional names: |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
44 |
|
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
45 |
long_names ~> names_long |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
46 |
short_names ~> names_short |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
47 |
unique_names ~> names_unique |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
48 |
|
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
49 |
Minor INCOMPATIBILITY, need to declare options in context like this: |
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
50 |
|
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
wenzelm
parents:
42658
diff
changeset
|
51 |
declare [[names_unique = false]] |
42358
b47d41d9f4b5
Name_Space: proper configuration options long_names, short_names, unique_names instead of former unsynchronized references;
wenzelm
parents:
42290
diff
changeset
|
52 |
|
42502 | 53 |
* Literal facts `prop` may contain dummy patterns, e.g. `_ = _`. Note |
54 |
that the result needs to be unique, which means fact specifications |
|
55 |
may have to be refined after enriching a proof context. |
|
56 |
||
42633 | 57 |
* Isabelle/Isar reference manual provides more formal references in |
58 |
syntax diagrams. |
|
59 |
||
44274 | 60 |
* Attribute case_names has been refined: the assumptions in each case can |
61 |
be named now by following the case name with [name1 name2 ...]. |
|
62 |
||
41703
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
63 |
|
41727
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
64 |
*** HOL *** |
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
65 |
|
43816 | 66 |
* Classes bot and top require underlying partial order rather than preorder: |
43815
4f6e2965d821
adjusted to tightened specification of classes bot and top
haftmann
parents:
43752
diff
changeset
|
67 |
uniqueness of bot and top is guaranteed. INCOMPATIBILITY. |
4f6e2965d821
adjusted to tightened specification of classes bot and top
haftmann
parents:
43752
diff
changeset
|
68 |
|
43940 | 69 |
* Class complete_lattice: generalized a couple of lemmas from sets; |
70 |
generalized theorems INF_cong and SUP_cong. New type classes for complete |
|
44019
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
71 |
boolean algebras and complete linear orders. Lemmas Inf_less_iff, |
43940 | 72 |
less_Sup_iff, INF_less_iff, less_SUP_iff now reside in class complete_linorder. |
44322 | 73 |
Changed proposition of lemmas Inf_bool_def, Sup_bool_def, Inf_fun_def, Sup_fun_def, |
74 |
Inf_apply, Sup_apply. |
|
44103
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
75 |
Redundant lemmas Inf_singleton, Sup_singleton, Inf_binary, Sup_binary, |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
76 |
INF_eq, SUP_eq, INF_UNIV_range, SUP_UNIV_range, Int_eq_Inter, |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
77 |
INTER_eq_Inter_image, Inter_def, INT_eq, Un_eq_Union, UNION_eq_Union_image, |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
78 |
Union_def, UN_singleton, UN_eq have been discarded. |
43940 | 79 |
More consistent and less misunderstandable names: |
43872 | 80 |
INFI_def ~> INF_def |
81 |
SUPR_def ~> SUP_def |
|
44103
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
82 |
INF_leI ~> INF_lower |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
83 |
INF_leI2 ~> INF_lower2 |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
84 |
le_INFI ~> INF_greatest |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
85 |
le_SUPI ~> SUP_upper |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
86 |
le_SUPI2 ~> SUP_upper2 |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
87 |
SUP_leI ~> SUP_least |
43873 | 88 |
INFI_bool_eq ~> INF_bool_eq |
89 |
SUPR_bool_eq ~> SUP_bool_eq |
|
90 |
INFI_apply ~> INF_apply |
|
91 |
SUPR_apply ~> SUP_apply |
|
44103
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
92 |
INTER_def ~> INTER_eq |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
93 |
UNION_def ~> UNION_eq |
cedaca00789f
more uniform naming scheme for Inf/INF and Sup/SUP lemmas
haftmann
parents:
44086
diff
changeset
|
94 |
|
43865
db18f4d0cc7d
further generalization from sets to complete lattices
haftmann
parents:
43816
diff
changeset
|
95 |
INCOMPATIBILITY. |
db18f4d0cc7d
further generalization from sets to complete lattices
haftmann
parents:
43816
diff
changeset
|
96 |
|
43967 | 97 |
* Theorem collections ball_simps and bex_simps do not contain theorems referring |
98 |
to UNION any longer; these have been moved to collection UN_ball_bex_simps. |
|
99 |
INCOMPATIBILITY. |
|
100 |
||
44019
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
101 |
* Archimedean_Field.thy: |
43737 | 102 |
floor now is defined as parameter of a separate type class floor_ceiling. |
43736 | 103 |
|
42874 | 104 |
* Finite_Set.thy: more coherent development of fold_set locales: |
105 |
||
106 |
locale fun_left_comm ~> locale comp_fun_commute |
|
107 |
locale fun_left_comm_idem ~> locale comp_fun_idem |
|
108 |
||
109 |
Both use point-free characterisation; interpretation proofs may need adjustment. |
|
110 |
INCOMPATIBILITY. |
|
111 |
||
42843 | 112 |
* Code generation: |
113 |
- theory Library/Code_Char_ord provides native ordering of characters |
|
114 |
in the target language. |
|
43957 | 115 |
- commands code_module and code_library are legacy, use export_code instead. |
44023 | 116 |
- method evaluation is legacy, use method eval instead. |
117 |
- legacy evaluator "SML" is deactivated by default. To activate it, add the following |
|
118 |
line in your theory: |
|
119 |
setup {* Value.add_evaluator ("SML", Codegen.eval_term) *} |
|
120 |
||
42815 | 121 |
* Declare ext [intro] by default. Rare INCOMPATIBILITY. |
122 |
||
41792
ff3cb0c418b7
renamed "nitpick\_def" to "nitpick_unfold" to reflect its new semantics
blanchet
parents:
41734
diff
changeset
|
123 |
* Nitpick: |
41877 | 124 |
- Added "need" and "total_consts" options. |
41993
bd6296de1432
reintroduced "show_skolems" option -- useful when too many Skolems are displayed
blanchet
parents:
41955
diff
changeset
|
125 |
- Reintroduced "show_skolems" option by popular demand. |
41792
ff3cb0c418b7
renamed "nitpick\_def" to "nitpick_unfold" to reflect its new semantics
blanchet
parents:
41734
diff
changeset
|
126 |
- Renamed attribute: nitpick_def ~> nitpick_unfold. |
ff3cb0c418b7
renamed "nitpick\_def" to "nitpick_unfold" to reflect its new semantics
blanchet
parents:
41734
diff
changeset
|
127 |
INCOMPATIBILITY. |
ff3cb0c418b7
renamed "nitpick\_def" to "nitpick_unfold" to reflect its new semantics
blanchet
parents:
41734
diff
changeset
|
128 |
|
41727
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
129 |
* Sledgehammer: |
43627
ecd4bb7a8bc0
update documentation after "type_enc" renaming + fixed a few other out-of-date factlets
blanchet
parents:
43613
diff
changeset
|
130 |
- sledgehammer available_provers ~> sledgehammer supported_provers. |
41727
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
131 |
INCOMPATIBILITY. |
42582 | 132 |
- Added support for SNARK and ToFoF-E on SystemOnTPTP and for simply typed |
133 |
TPTP problems (TFF). |
|
43627
ecd4bb7a8bc0
update documentation after "type_enc" renaming + fixed a few other out-of-date factlets
blanchet
parents:
43613
diff
changeset
|
134 |
- Added "preplay_timeout", "slicing", "type_enc", "sound", "max_mono_iters", |
ecd4bb7a8bc0
update documentation after "type_enc" renaming + fixed a few other out-of-date factlets
blanchet
parents:
43613
diff
changeset
|
135 |
and "max_new_mono_instances" options. |
ecd4bb7a8bc0
update documentation after "type_enc" renaming + fixed a few other out-of-date factlets
blanchet
parents:
43613
diff
changeset
|
136 |
- Removed "explicit_apply" and "full_types" options as well as "Full Types" |
ecd4bb7a8bc0
update documentation after "type_enc" renaming + fixed a few other out-of-date factlets
blanchet
parents:
43613
diff
changeset
|
137 |
Proof General menu item. INCOMPATIBILITY. |
41727
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
138 |
|
43206
831d28439b3a
marked "metisF" as legacy -- nobody uses it or needs it
blanchet
parents:
42897
diff
changeset
|
139 |
* Metis: |
43573 | 140 |
- Removed "metisF" -- use "metis" instead. INCOMPATIBILITY. |
141 |
- Obsoleted "metisFT" -- use "metis (full_types)" instead. INCOMPATIBILITY. |
|
43206
831d28439b3a
marked "metisF" as legacy -- nobody uses it or needs it
blanchet
parents:
42897
diff
changeset
|
142 |
|
41999
3c029ef9e0f2
added "simp:", "intro:", and "elim:" to "try" command
blanchet
parents:
41993
diff
changeset
|
143 |
* "try": |
43570 | 144 |
- Renamed "try_methods" and added "simp:", "intro:", "dest:", and "elim:" |
145 |
options. INCOMPATIBILITY. |
|
146 |
- Introduced "try" that not only runs "try_methods" but also "solve_direct", |
|
147 |
"sledgehammer", "quickcheck", and "nitpick". |
|
41999
3c029ef9e0f2
added "simp:", "intro:", and "elim:" to "try" command
blanchet
parents:
41993
diff
changeset
|
148 |
|
42160 | 149 |
* Quickcheck: |
150 |
- Added "eval" option to evaluate terms for the found counterexample |
|
151 |
(currently only supported by the default (exhaustive) tester) |
|
152 |
- Added post-processing of terms to obtain readable counterexamples |
|
153 |
(currently only supported by the default (exhaustive) tester) |
|
43319 | 154 |
- New counterexample generator quickcheck[narrowing] enables |
155 |
narrowing-based testing. |
|
156 |
It requires that the Glasgow Haskell compiler is installed and |
|
157 |
its location is known to Isabelle with the environment variable |
|
158 |
ISABELLE_GHC. |
|
43957 | 159 |
- Removed quickcheck tester "SML" based on the SML code generator |
160 |
from HOL-Library |
|
42160 | 161 |
|
41846
b368a7aee46a
removed support for tail-recursion from function package (now implemented by partial_function)
krauss
parents:
41792
diff
changeset
|
162 |
* Function package: discontinued option "tailrec". |
b368a7aee46a
removed support for tail-recursion from function package (now implemented by partial_function)
krauss
parents:
41792
diff
changeset
|
163 |
INCOMPATIBILITY. Use partial_function instead. |
b368a7aee46a
removed support for tail-recursion from function package (now implemented by partial_function)
krauss
parents:
41792
diff
changeset
|
164 |
|
42149 | 165 |
* HOL-Probability: |
166 |
- Caratheodory's extension lemma is now proved for ring_of_sets. |
|
167 |
- Infinite products of probability measures are now available. |
|
168 |
- Use extended reals instead of positive extended reals. |
|
169 |
INCOMPATIBILITY. |
|
41727
ab3f6d76fb23
available_provers ~> supported_provers (for clarity)
blanchet
parents:
41703
diff
changeset
|
170 |
|
44015 | 171 |
* Old recdef package has been moved to Library/Old_Recdef.thy, where it |
172 |
must be loaded explicitly. INCOMPATIBILITY. |
|
173 |
||
174 |
* Well-founded recursion combinator "wfrec" has been moved to |
|
44018 | 175 |
Library/Wfrec.thy. INCOMPATIBILITY. |
44015 | 176 |
|
44019
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
177 |
* Theory Library/Nat_Infinity has been renamed to Library/Extended_Nat. |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
178 |
The names of the following types and constants have changed: |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
179 |
inat (type) ~> enat |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
180 |
Fin ~> enat |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
181 |
Infty ~> infinity (overloaded) |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
182 |
iSuc ~> eSuc |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
183 |
the_Fin ~> the_enat |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
184 |
Every theorem name containing "inat", "Fin", "Infty", or "iSuc" has |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
185 |
been renamed accordingly. |
ee784502aed5
Extended_Nat.thy: renamed iSuc to eSuc, standardized theorem names
huffman
parents:
44018
diff
changeset
|
186 |
|
44081
730f7cced3a6
rename type 'a net to 'a filter, following standard mathematical terminology
huffman
parents:
44027
diff
changeset
|
187 |
* Limits.thy: Type "'a net" has been renamed to "'a filter", in |
730f7cced3a6
rename type 'a net to 'a filter, following standard mathematical terminology
huffman
parents:
44027
diff
changeset
|
188 |
accordance with standard mathematical terminology. INCOMPATIBILITY. |
730f7cced3a6
rename type 'a net to 'a filter, following standard mathematical terminology
huffman
parents:
44027
diff
changeset
|
189 |
|
44136
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
190 |
* Session Multivariate_Analysis: Type "('a, 'b) cart" has been renamed |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
191 |
to "('a, 'b) vec" (the syntax "'a ^ 'b" remains unaffected). Constants |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
192 |
"Cart_nth" and "Cart_lambda" have been respectively renamed to |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
193 |
"vec_nth" and "vec_lambda"; theorems mentioning those names have |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
194 |
changed to match. Definition theorems for overloaded constants now use |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
195 |
the standard "foo_vec_def" naming scheme. A few other theorems have |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
196 |
been renamed as follows (INCOMPATIBILITY): |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
197 |
|
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
198 |
Cart_eq ~> vec_eq_iff |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
199 |
dist_nth_le_cart ~> dist_vec_nth_le |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
200 |
tendsto_vector ~> vec_tendstoI |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
201 |
Cauchy_vector ~> vec_CauchyI |
e63ad7d5158d
more uniform naming scheme for finite cartesian product type and related theorems
huffman
parents:
44103
diff
changeset
|
202 |
|
44522
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
203 |
* Session Multivariate_Analysis: Several duplicate theorems have been |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
204 |
removed, and other theorems have been renamed. INCOMPATIBILITY. |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
205 |
|
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
206 |
eventually_conjI ~> eventually_conj |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
207 |
eventually_and ~> eventually_conj_iff |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
208 |
eventually_false ~> eventually_False |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
209 |
Lim_ident_at ~> LIM_ident |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
210 |
Lim_const ~> tendsto_const |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
211 |
Lim_cmul ~> tendsto_scaleR [OF tendsto_const] |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
212 |
Lim_neg ~> tendsto_minus |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
213 |
Lim_add ~> tendsto_add |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
214 |
Lim_sub ~> tendsto_diff |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
215 |
Lim_mul ~> tendsto_scaleR |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
216 |
Lim_vmul ~> tendsto_scaleR [OF _ tendsto_const] |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
217 |
Lim_null_norm ~> tendsto_norm_zero_iff [symmetric] |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
218 |
Lim_linear ~> bounded_linear.tendsto |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
219 |
Lim_component ~> tendsto_euclidean_component |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
220 |
Lim_component_cart ~> tendsto_vec_nth |
44530 | 221 |
Lim_inner ~> tendsto_inner [OF tendsto_const] |
44527
bf8014b4f933
remove dot_lsum and dot_rsum in favor of inner_setsum_{left,right}
huffman
parents:
44522
diff
changeset
|
222 |
dot_lsum ~> inner_setsum_left |
bf8014b4f933
remove dot_lsum and dot_rsum in favor of inner_setsum_{left,right}
huffman
parents:
44522
diff
changeset
|
223 |
dot_rsum ~> inner_setsum_right |
44531
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
224 |
continuous_on_neg ~> continuous_on_minus |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
225 |
continuous_on_sub ~> continuous_on_diff |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
226 |
continuous_on_cmul ~> continuous_on_scaleR [OF continuous_on_const] |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
227 |
continuous_on_vmul ~> continuous_on_scaleR [OF _ continuous_on_const] |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
228 |
continuous_on_mul ~> continuous_on_scaleR |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
229 |
continuous_on_mul_real ~> continuous_on_mult |
1d477a2b1572
replace some continuous_on lemmas with more general versions
huffman
parents:
44530
diff
changeset
|
230 |
continuous_on_inner ~> continuous_on_inner [OF continuous_on_const] |
44522
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
231 |
subset_interior ~> interior_mono |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
232 |
subset_closure ~> closure_mono |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
233 |
closure_univ ~> closure_UNIV |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
234 |
|
44282
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
235 |
* Complex_Main: The locale interpretations for the bounded_linear and |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
236 |
bounded_bilinear locales have been removed, in order to reduce the |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
237 |
number of duplicate lemmas. Users must use the original names for |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
238 |
distributivity theorems, potential INCOMPATIBILITY. |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
239 |
|
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
240 |
divide.add ~> add_divide_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
241 |
divide.diff ~> diff_divide_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
242 |
divide.setsum ~> setsum_divide_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
243 |
mult.add_right ~> right_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
244 |
mult.diff_right ~> right_diff_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
245 |
mult_right.setsum ~> setsum_right_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
246 |
mult_left.diff ~> left_diff_distrib |
f0de18b62d63
remove bounded_(bi)linear locale interpretations, to avoid duplicating so many lemmas
huffman
parents:
44274
diff
changeset
|
247 |
|
44522
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
248 |
* Complex_Main: Several redundant theorems about real numbers have |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
249 |
been removed or generalized and renamed. INCOMPATIBILITY. |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
250 |
|
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
251 |
real_0_le_divide_iff ~> zero_le_divide_iff |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
252 |
realpow_two_disj ~> power2_eq_iff |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
253 |
real_squared_diff_one_factored ~> square_diff_one_factored |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
254 |
realpow_two_diff ~> square_diff_square_factored |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
255 |
exp_ln_eq ~> ln_unique |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
256 |
lemma_DERIV_subst ~> DERIV_cong |
2f7e9d890efe
rename subset_{interior,closure} to {interior,closure}_mono;
huffman
parents:
44322
diff
changeset
|
257 |
|
42484 | 258 |
|
41685
e29ea98a76ce
term style 'isub': ad-hoc subscripting of variables that end with digits (x1, x23, ...)
krauss
parents:
41667
diff
changeset
|
259 |
*** Document preparation *** |
e29ea98a76ce
term style 'isub': ad-hoc subscripting of variables that end with digits (x1, x23, ...)
krauss
parents:
41667
diff
changeset
|
260 |
|
43709
717e96cf9527
discontinued special treatment of hard tabulators;
wenzelm
parents:
43627
diff
changeset
|
261 |
* Discontinued special treatment of hard tabulators, which are better |
717e96cf9527
discontinued special treatment of hard tabulators;
wenzelm
parents:
43627
diff
changeset
|
262 |
avoided in the first place. Implicit tab-width is 1. |
717e96cf9527
discontinued special treatment of hard tabulators;
wenzelm
parents:
43627
diff
changeset
|
263 |
|
42706 | 264 |
* Antiquotation @{rail} layouts railroad syntax diagrams, see also |
265 |
isar-ref manual. |
|
42633 | 266 |
|
43613
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
bulwahn
parents:
43581
diff
changeset
|
267 |
* Antiquotation @{value} evaluates the given term and presents its result. |
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
bulwahn
parents:
43581
diff
changeset
|
268 |
|
42514 | 269 |
* Localized \isabellestyle switch can be used within blocks or groups |
270 |
like this: |
|
271 |
||
272 |
\isabellestyle{it} %preferred default |
|
273 |
{\isabellestylett @{text "typewriter stuff"}} |
|
274 |
||
41685
e29ea98a76ce
term style 'isub': ad-hoc subscripting of variables that end with digits (x1, x23, ...)
krauss
parents:
41667
diff
changeset
|
275 |
* New term style "isub" as ad-hoc conversion of variables x1, y23 into |
e29ea98a76ce
term style 'isub': ad-hoc subscripting of variables that end with digits (x1, x23, ...)
krauss
parents:
41667
diff
changeset
|
276 |
subscripted form x\<^isub>1, y\<^isub>2\<^isub>3. |
41651 | 277 |
|
42484 | 278 |
* Predefined LaTeX macros for Isabelle symbols \<bind> and \<then> |
279 |
(e.g. see ~~/src/HOL/Library/Monad_Syntax.thy). |
|
280 |
||
41651 | 281 |
|
41944
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
282 |
*** ML *** |
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
283 |
|
43731
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
284 |
* The inner syntax of sort/type/term/prop supports inlined YXML |
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
285 |
representations within quoted string tokens. By encoding logical |
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
286 |
entities via Term_XML (in ML or Scala) concrete syntax can be |
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
287 |
bypassed, which is particularly useful for producing bits of text |
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
288 |
under external program control. |
70072780e095
inner syntax supports inlined YXML according to Term_XML (particularly useful for producing text under program control);
wenzelm
parents:
43709
diff
changeset
|
289 |
|
43565 | 290 |
* Antiquotations for ML and document preparation are managed as theory |
291 |
data, which requires explicit setup. |
|
292 |
||
42897 | 293 |
* Isabelle_Process.is_active allows tools to check if the official |
294 |
process wrapper is running (Isabelle/Scala/jEdit) or the old TTY loop |
|
295 |
(better known as Proof General). |
|
296 |
||
42360 | 297 |
* Structure Proof_Context follows standard naming scheme. Old |
298 |
ProofContext is still available for some time as legacy alias. |
|
299 |
||
42015
7b6e72a1b7dd
NEWS: structure Timing provides various operations for timing;
wenzelm
parents:
41999
diff
changeset
|
300 |
* Structure Timing provides various operations for timing; supersedes |
7b6e72a1b7dd
NEWS: structure Timing provides various operations for timing;
wenzelm
parents:
41999
diff
changeset
|
301 |
former start_timing/end_timing etc. |
7b6e72a1b7dd
NEWS: structure Timing provides various operations for timing;
wenzelm
parents:
41999
diff
changeset
|
302 |
|
41944
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
303 |
* Path.print is the official way to show file-system paths to users |
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
304 |
(including quotes etc.). |
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
305 |
|
42056
160a630b2c7e
enable inner syntax source positions by default (controlled via configuration option);
wenzelm
parents:
42015
diff
changeset
|
306 |
* Inner syntax: identifiers in parse trees of generic categories |
160a630b2c7e
enable inner syntax source positions by default (controlled via configuration option);
wenzelm
parents:
42015
diff
changeset
|
307 |
"logic", "aprop", "idt" etc. carry position information (disguised as |
160a630b2c7e
enable inner syntax source positions by default (controlled via configuration option);
wenzelm
parents:
42015
diff
changeset
|
308 |
type constraints). Occasional INCOMPATIBILITY with non-compliant |
42057
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
309 |
translations that choke on unexpected type constraints. Positions can |
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
310 |
be stripped in ML translations via Syntax.strip_positions / |
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
311 |
Syntax.strip_positions_ast, or via the syntax constant |
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
312 |
"_strip_positions" within parse trees. As last resort, positions can |
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
313 |
be disabled via the configuration option Syntax.positions, which is |
3eba96ff3d3e
more selective strip_positions in case patterns -- reactivate translations based on "case _ of _" in HOL and special patterns in HOLCF;
wenzelm
parents:
42056
diff
changeset
|
314 |
called "syntax_positions" in Isar attribute syntax. |
42056
160a630b2c7e
enable inner syntax source positions by default (controlled via configuration option);
wenzelm
parents:
42015
diff
changeset
|
315 |
|
42290
b1f544c84040
discontinued special treatment of structure Lexicon;
wenzelm
parents:
42284
diff
changeset
|
316 |
* Discontinued special status of various ML structures that contribute |
b1f544c84040
discontinued special treatment of structure Lexicon;
wenzelm
parents:
42284
diff
changeset
|
317 |
to structure Syntax (Ast, Lexicon, Mixfix, Parser, Printer etc.): less |
b1f544c84040
discontinued special treatment of structure Lexicon;
wenzelm
parents:
42284
diff
changeset
|
318 |
pervasive content, no inclusion in structure Syntax. INCOMPATIBILITY, |
b1f544c84040
discontinued special treatment of structure Lexicon;
wenzelm
parents:
42284
diff
changeset
|
319 |
refer directly to Ast.Constant, Lexicon.is_identifier, |
b1f544c84040
discontinued special treatment of structure Lexicon;
wenzelm
parents:
42284
diff
changeset
|
320 |
Syntax_Trans.mk_binder_tr etc. |
42224
578a51fae383
discontinued special treatment of structure Ast: no pervasive content, no inclusion in structure Syntax;
wenzelm
parents:
42180
diff
changeset
|
321 |
|
42247
12fe41a92cd5
typed_print_translation: discontinued show_sorts argument;
wenzelm
parents:
42239
diff
changeset
|
322 |
* Typed print translation: discontinued show_sorts argument, which is |
12fe41a92cd5
typed_print_translation: discontinued show_sorts argument;
wenzelm
parents:
42239
diff
changeset
|
323 |
already available via context of "advanced" translation. |
12fe41a92cd5
typed_print_translation: discontinued show_sorts argument;
wenzelm
parents:
42239
diff
changeset
|
324 |
|
42370 | 325 |
* Refined PARALLEL_GOALS tactical: degrades gracefully for schematic |
326 |
goal states; body tactic needs to address all subgoals uniformly. |
|
327 |
||
42403
38b29c9fc742
slightly more special eq_list/eq_set, with shortcut involving pointer_eq;
wenzelm
parents:
42370
diff
changeset
|
328 |
* Slightly more special eq_list/eq_set, with shortcut involving |
38b29c9fc742
slightly more special eq_list/eq_set, with shortcut involving pointer_eq;
wenzelm
parents:
42370
diff
changeset
|
329 |
pointer equality (assumes that eq relation is reflexive). |
38b29c9fc742
slightly more special eq_list/eq_set, with shortcut involving pointer_eq;
wenzelm
parents:
42370
diff
changeset
|
330 |
|
42793 | 331 |
* Classical tactics use proper Proof.context instead of historic types |
332 |
claset/clasimpset. Old-style declarations like addIs, addEs, addDs |
|
333 |
operate directly on Proof.context. Raw type claset retains its use as |
|
334 |
snapshot of the classical context, which can be recovered via |
|
335 |
(put_claset HOL_cs) etc. Type clasimpset has been discontinued. |
|
336 |
INCOMPATIBILITY, classical tactics and derived proof methods require |
|
337 |
proper Proof.context. |
|
338 |
||
43752 | 339 |
* Scala layer provides JVM method invocation service for static |
340 |
methods of type (String)String, see Invoke_Scala.method in ML. |
|
341 |
For example: |
|
342 |
||
343 |
Invoke_Scala.method "java.lang.System.getProperty" "java.home" |
|
344 |
||
41944
b97091ae583a
Path.print is the official way to show file-system paths to users -- note that Path.implode often indicates violation of the abstract datatype;
wenzelm
parents:
41886
diff
changeset
|
345 |
|
41703
d27950860514
parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents:
41685
diff
changeset
|
346 |
|
41512 | 347 |
New in Isabelle2011 (January 2011) |
348 |
---------------------------------- |
|
37383 | 349 |
|
37536
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
350 |
*** General *** |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
351 |
|
41573 | 352 |
* Experimental Prover IDE based on Isabelle/Scala and jEdit (see |
41612 | 353 |
src/Tools/jEdit). This also serves as IDE for Isabelle/ML, with |
354 |
useful tooltips and hyperlinks produced from its static analysis. The |
|
355 |
bundled component provides an executable Isabelle tool that can be run |
|
356 |
like this: |
|
357 |
||
358 |
Isabelle2011/bin/isabelle jedit |
|
41573 | 359 |
|
40948 | 360 |
* Significantly improved Isabelle/Isar implementation manual. |
361 |
||
41594 | 362 |
* System settings: ISABELLE_HOME_USER now includes ISABELLE_IDENTIFIER |
41595 | 363 |
(and thus refers to something like $HOME/.isabelle/Isabelle2011), |
41594 | 364 |
while the default heap location within that directory lacks that extra |
365 |
suffix. This isolates multiple Isabelle installations from each |
|
366 |
other, avoiding problems with old settings in new versions. |
|
367 |
INCOMPATIBILITY, need to copy/upgrade old user settings manually. |
|
368 |
||
40947 | 369 |
* Source files are always encoded as UTF-8, instead of old-fashioned |
370 |
ISO-Latin-1. INCOMPATIBILITY. Isabelle LaTeX documents might require |
|
40948 | 371 |
the following package declarations: |
40947 | 372 |
|
373 |
\usepackage[utf8]{inputenc} |
|
374 |
\usepackage{textcomp} |
|
375 |
||
41440 | 376 |
* Explicit treatment of UTF-8 sequences as Isabelle symbols, such that |
37536
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
377 |
a Unicode character is treated as a single symbol, not a sequence of |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
378 |
non-ASCII bytes as before. Since Isabelle/ML string literals may |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
379 |
contain symbols without further backslash escapes, Unicode can now be |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
380 |
used here as well. Recall that Symbol.explode in ML provides a |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
381 |
consistent view on symbols, while raw explode (or String.explode) |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
382 |
merely give a byte-oriented representation. |
c62aa9281101
explicit treatment of UTF8 sequences as Isabelle symbols;
wenzelm
parents:
37484
diff
changeset
|
383 |
|
41594 | 384 |
* Theory loader: source files are primarily located via the master |
385 |
directory of each theory node (where the .thy file itself resides). |
|
386 |
The global load path is still partially available as legacy feature. |
|
387 |
Minor INCOMPATIBILITY due to subtle change in file lookup: use |
|
388 |
explicit paths, relatively to the theory. |
|
38135
2b9bfa0b44f1
theory loading: only the master source file is looked-up in the implicit load path;
wenzelm
parents:
38110
diff
changeset
|
389 |
|
37939
965537d86fcc
discontinued special treatment of ML files -- no longer complete extensions on demand;
wenzelm
parents:
37868
diff
changeset
|
390 |
* Special treatment of ML file names has been discontinued. |
965537d86fcc
discontinued special treatment of ML files -- no longer complete extensions on demand;
wenzelm
parents:
37868
diff
changeset
|
391 |
Historically, optional extensions .ML or .sml were added on demand -- |
965537d86fcc
discontinued special treatment of ML files -- no longer complete extensions on demand;
wenzelm
parents:
37868
diff
changeset
|
392 |
at the cost of clarity of file dependencies. Recall that Isabelle/ML |
965537d86fcc
discontinued special treatment of ML files -- no longer complete extensions on demand;
wenzelm
parents:
37868
diff
changeset
|
393 |
files exclusively use the .ML extension. Minor INCOMPATIBILTY. |
965537d86fcc
discontinued special treatment of ML files -- no longer complete extensions on demand;
wenzelm
parents:
37868
diff
changeset
|
394 |
|
38980
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
395 |
* Various options that affect pretty printing etc. are now properly |
38767
d8da44a8dd25
proper context for various Thy_Output options, via official configuration options in ML and Isar;
wenzelm
parents:
38708
diff
changeset
|
396 |
handled within the context via configuration options, instead of |
40879
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
wenzelm
parents:
40878
diff
changeset
|
397 |
unsynchronized references or print modes. There are both ML Config.T |
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
wenzelm
parents:
40878
diff
changeset
|
398 |
entities and Isar declaration attributes to access these. |
38767
d8da44a8dd25
proper context for various Thy_Output options, via official configuration options in ML and Isar;
wenzelm
parents:
38708
diff
changeset
|
399 |
|
39125
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
400 |
ML (Config.T) Isar (attribute) |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
401 |
|
39128
93a7365fb4ee
turned eta_contract into proper configuration option;
wenzelm
parents:
39126
diff
changeset
|
402 |
eta_contract eta_contract |
39137
ccb53edd59f0
turned show_brackets into proper configuration option;
wenzelm
parents:
39134
diff
changeset
|
403 |
show_brackets show_brackets |
39134
917b4b6ba3d2
turned show_sorts/show_types into proper configuration options;
wenzelm
parents:
39128
diff
changeset
|
404 |
show_sorts show_sorts |
917b4b6ba3d2
turned show_sorts/show_types into proper configuration options;
wenzelm
parents:
39128
diff
changeset
|
405 |
show_types show_types |
39126
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
406 |
show_question_marks show_question_marks |
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
407 |
show_consts show_consts |
40879
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
wenzelm
parents:
40878
diff
changeset
|
408 |
show_abbrevs show_abbrevs |
39126
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
409 |
|
41379 | 410 |
Syntax.ast_trace syntax_ast_trace |
411 |
Syntax.ast_stat syntax_ast_stat |
|
39126
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
412 |
Syntax.ambiguity_level syntax_ambiguity_level |
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
413 |
|
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
414 |
Goal_Display.goals_limit goals_limit |
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
415 |
Goal_Display.show_main_goal show_main_goal |
ee117c5b3b75
configuration options Syntax.ambiguity_enabled (inverse of former Syntax.ambiguity_is_error), Syntax.ambiguity_level (with Isar attribute "syntax_ambiguity_level"), Syntax.ambiguity_limit;
wenzelm
parents:
39125
diff
changeset
|
416 |
|
41379 | 417 |
Method.rule_trace rule_trace |
418 |
||
39125
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
419 |
Thy_Output.display thy_output_display |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
420 |
Thy_Output.quotes thy_output_quotes |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
421 |
Thy_Output.indent thy_output_indent |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
422 |
Thy_Output.source thy_output_source |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
423 |
Thy_Output.break thy_output_break |
f45d332a90e3
pretty_goals: turned some global references and function arguments into configuration options (goals_limit = 10, goals_total = true, show_main_goal = false) depending on the context;
wenzelm
parents:
39105
diff
changeset
|
424 |
|
41440 | 425 |
Note that corresponding "..._default" references in ML may only be |
38767
d8da44a8dd25
proper context for various Thy_Output options, via official configuration options in ML and Isar;
wenzelm
parents:
38708
diff
changeset
|
426 |
changed globally at the ROOT session setup, but *not* within a theory. |
40879
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
wenzelm
parents:
40878
diff
changeset
|
427 |
The option "show_abbrevs" supersedes the former print mode |
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
wenzelm
parents:
40878
diff
changeset
|
428 |
"no_abbrevs" with inverted meaning. |
38767
d8da44a8dd25
proper context for various Thy_Output options, via official configuration options in ML and Isar;
wenzelm
parents:
38708
diff
changeset
|
429 |
|
40878
7695e4de4d86
renamed trace_simp to simp_trace, and debug_simp to simp_debug;
wenzelm
parents:
40866
diff
changeset
|
430 |
* More systematic naming of some configuration options. |
41294 | 431 |
INCOMPATIBILITY. |
40878
7695e4de4d86
renamed trace_simp to simp_trace, and debug_simp to simp_debug;
wenzelm
parents:
40866
diff
changeset
|
432 |
|
7695e4de4d86
renamed trace_simp to simp_trace, and debug_simp to simp_debug;
wenzelm
parents:
40866
diff
changeset
|
433 |
trace_simp ~> simp_trace |
7695e4de4d86
renamed trace_simp to simp_trace, and debug_simp to simp_debug;
wenzelm
parents:
40866
diff
changeset
|
434 |
debug_simp ~> simp_debug |
7695e4de4d86
renamed trace_simp to simp_trace, and debug_simp to simp_debug;
wenzelm
parents:
40866
diff
changeset
|
435 |
|
40291 | 436 |
* Support for real valued configuration options, using simplistic |
437 |
floating-point notation that coincides with the inner syntax for |
|
438 |
float_token. |
|
439 |
||
41594 | 440 |
* Support for real valued preferences (with approximative PGIP type): |
441 |
front-ends need to accept "pgint" values in float notation. |
|
442 |
INCOMPATIBILITY. |
|
41573 | 443 |
|
444 |
* The IsabelleText font now includes Cyrillic, Hebrew, Arabic from |
|
445 |
DejaVu Sans. |
|
446 |
||
41594 | 447 |
* Discontinued support for Poly/ML 5.0 and 5.1 versions. |
448 |
||
40948 | 449 |
|
450 |
*** Pure *** |
|
451 |
||
41249
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
452 |
* Command 'type_synonym' (with single argument) replaces somewhat |
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
453 |
outdated 'types', which is still available as legacy feature for some |
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
454 |
time. |
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
455 |
|
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
456 |
* Command 'nonterminal' (with 'and' separated list of arguments) |
26f12f98f50a
Command 'type_synonym' (with single argument) supersedes 'types' (legacy feature);
wenzelm
parents:
41229
diff
changeset
|
457 |
replaces somewhat outdated 'nonterminals'. INCOMPATIBILITY. |
41229
d797baa3d57c
replaced command 'nonterminals' by slightly modernized version 'nonterminal';
wenzelm
parents:
41228
diff
changeset
|
458 |
|
40965
54b6c9e1c157
command 'notepad' replaces former 'example_proof';
wenzelm
parents:
40959
diff
changeset
|
459 |
* Command 'notepad' replaces former 'example_proof' for |
41020 | 460 |
experimentation in Isar without any result. INCOMPATIBILITY. |
40965
54b6c9e1c157
command 'notepad' replaces former 'example_proof';
wenzelm
parents:
40959
diff
changeset
|
461 |
|
41435 | 462 |
* Locale interpretation commands 'interpret' and 'sublocale' accept |
463 |
lists of equations to map definitions in a locale to appropriate |
|
464 |
entities in the context of the interpretation. The 'interpretation' |
|
465 |
command already provided this functionality. |
|
466 |
||
41594 | 467 |
* Diagnostic command 'print_dependencies' prints the locale instances |
468 |
that would be activated if the specified expression was interpreted in |
|
469 |
the current context. Variant "print_dependencies!" assumes a context |
|
470 |
without interpretations. |
|
38110 | 471 |
|
472 |
* Diagnostic command 'print_interps' prints interpretations in proofs |
|
473 |
in addition to interpretations in theories. |
|
474 |
||
38708
8915e3ce8655
discontinued obsolete 'global' and 'local' commands;
wenzelm
parents:
38656
diff
changeset
|
475 |
* Discontinued obsolete 'global' and 'local' commands to manipulate |
8915e3ce8655
discontinued obsolete 'global' and 'local' commands;
wenzelm
parents:
38656
diff
changeset
|
476 |
the theory name space. Rare INCOMPATIBILITY. The ML functions |
8915e3ce8655
discontinued obsolete 'global' and 'local' commands;
wenzelm
parents:
38656
diff
changeset
|
477 |
Sign.root_path and Sign.local_path may be applied directly where this |
8915e3ce8655
discontinued obsolete 'global' and 'local' commands;
wenzelm
parents:
38656
diff
changeset
|
478 |
feature is still required for historical reasons. |
8915e3ce8655
discontinued obsolete 'global' and 'local' commands;
wenzelm
parents:
38656
diff
changeset
|
479 |
|
40948 | 480 |
* Discontinued obsolete 'constdefs' command. INCOMPATIBILITY, use |
39215 | 481 |
'definition' instead. |
482 |
||
41574 | 483 |
* The "prems" fact, which refers to the accidental collection of |
484 |
foundational premises in the context, is now explicitly marked as |
|
41594 | 485 |
legacy feature and will be discontinued soon. Consider using "assms" |
486 |
of the head statement or reference facts by explicit names. |
|
41574 | 487 |
|
40801 | 488 |
* Document antiquotations @{class} and @{type} print classes and type |
489 |
constructors. |
|
490 |
||
491 |
* Document antiquotation @{file} checks file/directory entries within |
|
492 |
the local file system. |
|
39305
d4fa19eb0822
'class' and 'type' are now antiquoations by default
haftmann
parents:
39277
diff
changeset
|
493 |
|
38110 | 494 |
|
37387
3581483cca6c
qualified types "+" and nat; qualified constants Ball, Bex, Suc, curry; modernized some specifications
haftmann
parents:
37383
diff
changeset
|
495 |
*** HOL *** |
3581483cca6c
qualified types "+" and nat; qualified constants Ball, Bex, Suc, curry; modernized some specifications
haftmann
parents:
37383
diff
changeset
|
496 |
|
41594 | 497 |
* Coercive subtyping: functions can be declared as coercions and type |
498 |
inference will add them as necessary upon input of a term. Theory |
|
499 |
Complex_Main declares real :: nat => real and real :: int => real as |
|
500 |
coercions. A coercion function f is declared like this: |
|
40939
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
501 |
|
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
502 |
declare [[coercion f]] |
40866 | 503 |
|
41571 | 504 |
To lift coercions through type constructors (e.g. from nat => real to |
40866 | 505 |
nat list => real list), map functions can be declared, e.g. |
506 |
||
40939
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
507 |
declare [[coercion_map map]] |
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
508 |
|
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
509 |
Currently coercion inference is activated only in theories including |
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
510 |
real numbers, i.e. descendants of Complex_Main. This is controlled by |
41020 | 511 |
the configuration option "coercion_enabled", e.g. it can be enabled in |
40939
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
512 |
other theories like this: |
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
513 |
|
2c150063cd4d
setup subtyping/coercions once in HOL.thy, but enable it only later via configuration option;
wenzelm
parents:
40927
diff
changeset
|
514 |
declare [[coercion_enabled]] |
40866 | 515 |
|
41571 | 516 |
* Command 'partial_function' provides basic support for recursive |
517 |
function definitions over complete partial orders. Concrete instances |
|
40183 | 518 |
are provided for i) the option type, ii) tail recursion on arbitrary |
41571 | 519 |
types, and iii) the heap monad of Imperative_HOL. See |
520 |
src/HOL/ex/Fundefs.thy and src/HOL/Imperative_HOL/ex/Linked_Lists.thy |
|
521 |
for examples. |
|
40183 | 522 |
|
41571 | 523 |
* Function package: f.psimps rules are no longer implicitly declared |
524 |
as [simp]. INCOMPATIBILITY. |
|
41398 | 525 |
|
526 |
* Datatype package: theorems generated for executable equality (class |
|
41571 | 527 |
"eq") carry proper names and are treated as default code equations. |
528 |
||
41594 | 529 |
* Inductive package: now offers command 'inductive_simps' to |
530 |
automatically derive instantiated and simplified equations for |
|
531 |
inductive predicates, similar to 'inductive_cases'. |
|
532 |
||
41571 | 533 |
* Command 'enriched_type' allows to register properties of the |
534 |
functorial structure of types. |
|
39771 | 535 |
|
39644 | 536 |
* Improved infrastructure for term evaluation using code generator |
537 |
techniques, in particular static evaluation conversions. |
|
538 |
||
41594 | 539 |
* Code generator: Scala (2.8 or higher) has been added to the target |
540 |
languages. |
|
541 |
||
41398 | 542 |
* Code generator: globbing constant expressions "*" and "Theory.*" |
543 |
have been replaced by the more idiomatic "_" and "Theory._". |
|
544 |
INCOMPATIBILITY. |
|
545 |
||
546 |
* Code generator: export_code without explicit file declaration prints |
|
547 |
to standard output. INCOMPATIBILITY. |
|
548 |
||
549 |
* Code generator: do not print function definitions for case |
|
550 |
combinators any longer. |
|
551 |
||
41594 | 552 |
* Code generator: simplification with rules determined with |
41571 | 553 |
src/Tools/Code/code_simp.ML and method "code_simp". |
554 |
||
41594 | 555 |
* Code generator for records: more idiomatic representation of record |
40948 | 556 |
types. Warning: records are not covered by ancient SML code |
557 |
generation any longer. INCOMPATIBILITY. In cases of need, a suitable |
|
558 |
rep_datatype declaration helps to succeed then: |
|
38537 | 559 |
|
560 |
record 'a foo = ... |
|
561 |
... |
|
562 |
rep_datatype foo_ext ... |
|
38535 | 563 |
|
41594 | 564 |
* Records: logical foundation type for records does not carry a |
565 |
'_type' suffix any longer (obsolete due to authentic syntax). |
|
566 |
INCOMPATIBILITY. |
|
567 |
||
41398 | 568 |
* Quickcheck now by default uses exhaustive testing instead of random |
41571 | 569 |
testing. Random testing can be invoked by "quickcheck [random]", |
570 |
exhaustive testing by "quickcheck [exhaustive]". |
|
41398 | 571 |
|
572 |
* Quickcheck instantiates polymorphic types with small finite |
|
573 |
datatypes by default. This enables a simple execution mechanism to |
|
574 |
handle quantifiers and function equality over the finite datatypes. |
|
575 |
||
41571 | 576 |
* Quickcheck random generator has been renamed from "code" to |
577 |
"random". INCOMPATIBILITY. |
|
41398 | 578 |
|
579 |
* Quickcheck now has a configurable time limit which is set to 30 |
|
580 |
seconds by default. This can be changed by adding [timeout = n] to the |
|
581 |
quickcheck command. The time limit for Auto Quickcheck is still set |
|
582 |
independently. |
|
38461 | 583 |
|
584 |
* Quickcheck in locales considers interpretations of that locale for |
|
585 |
counter example search. |
|
586 |
||
40059
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
587 |
* Sledgehammer: |
41571 | 588 |
- Added "smt" and "remote_smt" provers based on the "smt" proof |
589 |
method. See the Sledgehammer manual for details ("isabelle doc |
|
590 |
sledgehammer"). |
|
40059
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
591 |
- Renamed commands: |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
592 |
sledgehammer atp_info ~> sledgehammer running_provers |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
593 |
sledgehammer atp_kill ~> sledgehammer kill_provers |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
594 |
sledgehammer available_atps ~> sledgehammer available_provers |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
595 |
INCOMPATIBILITY. |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
596 |
- Renamed options: |
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
597 |
sledgehammer [atps = ...] ~> sledgehammer [provers = ...] |
40062 | 598 |
sledgehammer [atp = ...] ~> sledgehammer [prover = ...] |
40341
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
599 |
sledgehammer [timeout = 77 s] ~> sledgehammer [timeout = 77] |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
600 |
(and "ms" and "min" are no longer supported) |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
601 |
INCOMPATIBILITY. |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
602 |
|
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
603 |
* Nitpick: |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
604 |
- Renamed options: |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
605 |
nitpick [timeout = 77 s] ~> nitpick [timeout = 77] |
03156257040f
standardize on seconds for Nitpick and Sledgehammer timeouts
blanchet
parents:
40318
diff
changeset
|
606 |
nitpick [tac_timeout = 777 ms] ~> nitpick [tac_timeout = 0.777] |
40059
6ad9081665db
use consistent terminology in Sledgehammer: "prover = ATP or SMT solver or ..."
blanchet
parents:
39993
diff
changeset
|
607 |
INCOMPATIBILITY. |
40725 | 608 |
- Added support for partial quotient types. |
609 |
- Added local versions of the "Nitpick.register_xxx" functions. |
|
610 |
- Added "whack" option. |
|
611 |
- Allow registration of quotient types as codatatypes. |
|
612 |
- Improved "merge_type_vars" option to merge more types. |
|
613 |
- Removed unsound "fast_descrs" option. |
|
614 |
- Added custom symmetry breaking for datatypes, making it possible to reach |
|
615 |
higher cardinalities. |
|
616 |
- Prevent the expansion of too large definitions. |
|
39957
2f2d90cc31a2
document latest changes to Meson/Metis/Sledgehammer
blanchet
parents:
39910
diff
changeset
|
617 |
|
41571 | 618 |
* Proof methods "metis" and "meson" now have configuration options |
619 |
"meson_trace", "metis_trace", and "metis_verbose" that can be enabled |
|
620 |
to diagnose these tools. E.g. |
|
621 |
||
622 |
using [[metis_trace = true]] |
|
623 |
||
41398 | 624 |
* Auto Solve: Renamed "Auto Solve Direct". The tool is now available |
625 |
manually as command 'solve_direct'. |
|
626 |
||
41601 | 627 |
* The default SMT solver Z3 must be enabled explicitly (due to |
628 |
licensing issues) by setting the environment variable |
|
41603 | 629 |
Z3_NON_COMMERCIAL in etc/settings of the component, for example. For |
630 |
commercial applications, the SMT solver CVC3 is provided as fall-back; |
|
631 |
changing the SMT solver is done via the configuration option |
|
632 |
"smt_solver". |
|
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
633 |
|
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
634 |
* Remote SMT solvers need to be referred to by the "remote_" prefix, |
41571 | 635 |
i.e. "remote_cvc3" and "remote_z3". |
636 |
||
637 |
* Added basic SMT support for datatypes, records, and typedefs using |
|
638 |
the oracle mode (no proofs). Direct support of pairs has been dropped |
|
639 |
in exchange (pass theorems fst_conv snd_conv pair_collapse to the SMT |
|
640 |
support for a similar behavior). Minor INCOMPATIBILITY. |
|
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
641 |
|
40162
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
642 |
* Changed SMT configuration options: |
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
643 |
- Renamed: |
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
644 |
z3_proofs ~> smt_oracle (with inverted meaning) |
40162
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
645 |
z3_trace_assms ~> smt_trace_used_facts |
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
646 |
INCOMPATIBILITY. |
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
647 |
- Added: |
40424
7550b2cba1cb
better modularization: moved SMT configuration options and diagnostics as well as SMT failure and exception into separate structures (both of which are loaded first and consequently are available to other SMT structures)
boehmes
parents:
40388
diff
changeset
|
648 |
smt_verbose |
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
649 |
smt_random_seed |
40424
7550b2cba1cb
better modularization: moved SMT configuration options and diagnostics as well as SMT failure and exception into separate structures (both of which are loaded first and consequently are available to other SMT structures)
boehmes
parents:
40388
diff
changeset
|
650 |
smt_datatypes |
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
651 |
smt_infer_triggers |
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
652 |
smt_monomorph_limit |
40162
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
653 |
cvc3_options |
41432
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
654 |
remote_cvc3_options |
3214c39777ab
differentiate between local and remote SMT solvers (e.g., "z3" vs. "remote_z3");
boehmes
parents:
41430
diff
changeset
|
655 |
remote_z3_options |
40162
7f58a9a843c2
joined setup of SMT solvers in one place; turned Z3-specific options into SMT options (renamed configuration options from z3_* to smt_*); more detailed SMT exception; improved SMT filter interface
boehmes
parents:
40128
diff
changeset
|
656 |
yices_options |
39957
2f2d90cc31a2
document latest changes to Meson/Metis/Sledgehammer
blanchet
parents:
39910
diff
changeset
|
657 |
|
40948 | 658 |
* Boogie output files (.b2i files) need to be declared in the theory |
659 |
header. |
|
40580
0592d3a39c08
require the b2i file ending in the boogie_open command (for consistency with the theory header)
boehmes
parents:
40424
diff
changeset
|
660 |
|
41594 | 661 |
* Simplification procedure "list_to_set_comprehension" rewrites list |
662 |
comprehensions applied to List.set to set comprehensions. Occasional |
|
663 |
INCOMPATIBILITY, may be deactivated like this: |
|
664 |
||
665 |
declare [[simproc del: list_to_set_comprehension]] |
|
666 |
||
41573 | 667 |
* Removed old version of primrec package. INCOMPATIBILITY. |
41398 | 668 |
|
669 |
* Removed simplifier congruence rule of "prod_case", as has for long |
|
670 |
been the case with "split". INCOMPATIBILITY. |
|
671 |
||
672 |
* String.literal is a type, but not a datatype. INCOMPATIBILITY. |
|
673 |
||
40388
cb9fd7dd641c
abolished obscure goal variant of [split_format] -- unused (cf. d1c14898fd04), unrelated to '(complete)' variant, and not at all canonical
krauss
parents:
40387
diff
changeset
|
674 |
* Removed [split_format ... and ... and ...] version of |
cb9fd7dd641c
abolished obscure goal variant of [split_format] -- unused (cf. d1c14898fd04), unrelated to '(complete)' variant, and not at all canonical
krauss
parents:
40387
diff
changeset
|
675 |
[split_format]. Potential INCOMPATIBILITY. |
cb9fd7dd641c
abolished obscure goal variant of [split_format] -- unused (cf. d1c14898fd04), unrelated to '(complete)' variant, and not at all canonical
krauss
parents:
40387
diff
changeset
|
676 |
|
41571 | 677 |
* Predicate "sorted" now defined inductively, with nice induction |
678 |
rules. INCOMPATIBILITY: former sorted.simps now named sorted_simps. |
|
41398 | 679 |
|
680 |
* Constant "contents" renamed to "the_elem", to free the generic name |
|
681 |
contents for other uses. INCOMPATIBILITY. |
|
682 |
||
683 |
* Renamed class eq and constant eq (for code generation) to class |
|
684 |
equal and constant equal, plus renaming of related facts and various |
|
685 |
tuning. INCOMPATIBILITY. |
|
686 |
||
687 |
* Dropped type classes mult_mono and mult_mono1. INCOMPATIBILITY. |
|
688 |
||
41571 | 689 |
* Removed output syntax "'a ~=> 'b" for "'a => 'b option". |
690 |
INCOMPATIBILITY. |
|
41398 | 691 |
|
692 |
* Renamed theory Fset to Cset, type Fset.fset to Cset.set, in order to |
|
693 |
avoid confusion with finite sets. INCOMPATIBILITY. |
|
694 |
||
695 |
* Abandoned locales equiv, congruent and congruent2 for equivalence |
|
696 |
relations. INCOMPATIBILITY: use equivI rather than equiv_intro (same |
|
697 |
for congruent(2)). |
|
698 |
||
699 |
* Some previously unqualified names have been qualified: |
|
700 |
||
701 |
types |
|
702 |
bool ~> HOL.bool |
|
703 |
nat ~> Nat.nat |
|
704 |
||
705 |
constants |
|
706 |
Trueprop ~> HOL.Trueprop |
|
707 |
True ~> HOL.True |
|
708 |
False ~> HOL.False |
|
709 |
op & ~> HOL.conj |
|
710 |
op | ~> HOL.disj |
|
711 |
op --> ~> HOL.implies |
|
712 |
op = ~> HOL.eq |
|
713 |
Not ~> HOL.Not |
|
714 |
The ~> HOL.The |
|
715 |
All ~> HOL.All |
|
716 |
Ex ~> HOL.Ex |
|
717 |
Ex1 ~> HOL.Ex1 |
|
718 |
Let ~> HOL.Let |
|
719 |
If ~> HOL.If |
|
720 |
Ball ~> Set.Ball |
|
721 |
Bex ~> Set.Bex |
|
722 |
Suc ~> Nat.Suc |
|
723 |
Pair ~> Product_Type.Pair |
|
724 |
fst ~> Product_Type.fst |
|
725 |
snd ~> Product_Type.snd |
|
726 |
curry ~> Product_Type.curry |
|
727 |
op : ~> Set.member |
|
728 |
Collect ~> Set.Collect |
|
729 |
||
730 |
INCOMPATIBILITY. |
|
731 |
||
732 |
* More canonical naming convention for some fundamental definitions: |
|
733 |
||
734 |
bot_bool_eq ~> bot_bool_def |
|
735 |
top_bool_eq ~> top_bool_def |
|
736 |
inf_bool_eq ~> inf_bool_def |
|
737 |
sup_bool_eq ~> sup_bool_def |
|
738 |
bot_fun_eq ~> bot_fun_def |
|
739 |
top_fun_eq ~> top_fun_def |
|
740 |
inf_fun_eq ~> inf_fun_def |
|
741 |
sup_fun_eq ~> sup_fun_def |
|
742 |
||
743 |
INCOMPATIBILITY. |
|
744 |
||
745 |
* More stylized fact names: |
|
746 |
||
747 |
expand_fun_eq ~> fun_eq_iff |
|
748 |
expand_set_eq ~> set_eq_iff |
|
749 |
set_ext ~> set_eqI |
|
750 |
nat_number ~> eval_nat_numeral |
|
751 |
||
752 |
INCOMPATIBILITY. |
|
753 |
||
41571 | 754 |
* Refactoring of code-generation specific operations in theory List: |
41398 | 755 |
|
756 |
constants |
|
757 |
null ~> List.null |
|
758 |
||
759 |
facts |
|
760 |
mem_iff ~> member_def |
|
761 |
null_empty ~> null_def |
|
762 |
||
763 |
INCOMPATIBILITY. Note that these were not supposed to be used |
|
764 |
regularly unless for striking reasons; their main purpose was code |
|
765 |
generation. |
|
766 |
||
767 |
Various operations from the Haskell prelude are used for generating |
|
768 |
Haskell code. |
|
769 |
||
41571 | 770 |
* Term "bij f" is now an abbreviation of "bij_betw f UNIV UNIV". Term |
771 |
"surj f" is now an abbreviation of "range f = UNIV". The theorems |
|
772 |
bij_def and surj_def are unchanged. INCOMPATIBILITY. |
|
41398 | 773 |
|
774 |
* Abolished some non-alphabetic type names: "prod" and "sum" replace |
|
775 |
"*" and "+" respectively. INCOMPATIBILITY. |
|
776 |
||
777 |
* Name "Plus" of disjoint sum operator "<+>" is now hidden. Write |
|
41571 | 778 |
"Sum_Type.Plus" instead. |
41398 | 779 |
|
780 |
* Constant "split" has been merged with constant "prod_case"; names of |
|
781 |
ML functions, facts etc. involving split have been retained so far, |
|
782 |
though. INCOMPATIBILITY. |
|
783 |
||
784 |
* Dropped old infix syntax "_ mem _" for List.member; use "_ : set _" |
|
785 |
instead. INCOMPATIBILITY. |
|
786 |
||
41571 | 787 |
* Removed lemma "Option.is_none_none" which duplicates "is_none_def". |
41398 | 788 |
INCOMPATIBILITY. |
789 |
||
41594 | 790 |
* Former theory Library/Enum is now part of the HOL-Main image. |
791 |
INCOMPATIBILITY: all constants of the Enum theory now have to be |
|
792 |
referred to by its qualified name. |
|
793 |
||
794 |
enum ~> Enum.enum |
|
795 |
nlists ~> Enum.nlists |
|
796 |
product ~> Enum.product |
|
797 |
||
798 |
* Theory Library/Monad_Syntax provides do-syntax for monad types. |
|
799 |
Syntax in Library/State_Monad has been changed to avoid ambiguities. |
|
800 |
INCOMPATIBILITY. |
|
801 |
||
802 |
* Theory Library/SetsAndFunctions has been split into |
|
803 |
Library/Function_Algebras and Library/Set_Algebras; canonical names |
|
804 |
for instance definitions for functions; various improvements. |
|
805 |
INCOMPATIBILITY. |
|
806 |
||
807 |
* Theory Library/Multiset provides stable quicksort implementation of |
|
808 |
sort_key. |
|
809 |
||
810 |
* Theory Library/Multiset: renamed empty_idemp ~> empty_neutral. |
|
811 |
INCOMPATIBILITY. |
|
812 |
||
813 |
* Session Multivariate_Analysis: introduced a type class for euclidean |
|
814 |
space. Most theorems are now stated in terms of euclidean spaces |
|
815 |
instead of finite cartesian products. |
|
816 |
||
817 |
types |
|
818 |
real ^ 'n ~> 'a::real_vector |
|
819 |
~> 'a::euclidean_space |
|
820 |
~> 'a::ordered_euclidean_space |
|
821 |
(depends on your needs) |
|
822 |
||
823 |
constants |
|
824 |
_ $ _ ~> _ $$ _ |
|
825 |
\<chi> x. _ ~> \<chi>\<chi> x. _ |
|
826 |
CARD('n) ~> DIM('a) |
|
827 |
||
828 |
Also note that the indices are now natural numbers and not from some |
|
829 |
finite type. Finite cartesian products of euclidean spaces, products |
|
830 |
of euclidean spaces the real and complex numbers are instantiated to |
|
831 |
be euclidean_spaces. INCOMPATIBILITY. |
|
832 |
||
833 |
* Session Probability: introduced pextreal as positive extended real |
|
834 |
numbers. Use pextreal as value for measures. Introduce the |
|
835 |
Radon-Nikodym derivative, product spaces and Fubini's theorem for |
|
836 |
arbitrary sigma finite measures. Introduces Lebesgue measure based on |
|
837 |
the integral in Multivariate Analysis. INCOMPATIBILITY. |
|
838 |
||
839 |
* Session Imperative_HOL: revamped, corrected dozens of inadequacies. |
|
840 |
INCOMPATIBILITY. |
|
841 |
||
842 |
* Session SPARK (with image HOL-SPARK) provides commands to load and |
|
843 |
prove verification conditions generated by the SPARK Ada program |
|
844 |
verifier. See also src/HOL/SPARK and src/HOL/SPARK/Examples. |
|
41567 | 845 |
|
40621 | 846 |
|
41433
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
847 |
*** HOL-Algebra *** |
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
848 |
|
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
849 |
* Theorems for additive ring operations (locale abelian_monoid and |
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
850 |
descendants) are generated by interpretation from their multiplicative |
41434
710cdb9e0d17
Documentation for 'interpret' and 'sublocale' with mixins.
ballarin
parents:
41433
diff
changeset
|
851 |
counterparts. Names (in particular theorem names) have the mandatory |
710cdb9e0d17
Documentation for 'interpret' and 'sublocale' with mixins.
ballarin
parents:
41433
diff
changeset
|
852 |
qualifier 'add'. Previous theorem names are redeclared for |
710cdb9e0d17
Documentation for 'interpret' and 'sublocale' with mixins.
ballarin
parents:
41433
diff
changeset
|
853 |
compatibility. |
710cdb9e0d17
Documentation for 'interpret' and 'sublocale' with mixins.
ballarin
parents:
41433
diff
changeset
|
854 |
|
41571 | 855 |
* Structure "int_ring" is now an abbreviation (previously a |
41434
710cdb9e0d17
Documentation for 'interpret' and 'sublocale' with mixins.
ballarin
parents:
41433
diff
changeset
|
856 |
definition). This fits more natural with advanced interpretations. |
41433
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
857 |
|
1b8ff770f02c
Abelian group facts obtained from group facts via interpretation (sublocale).
ballarin
parents:
41432
diff
changeset
|
858 |
|
40621 | 859 |
*** HOLCF *** |
860 |
||
861 |
* The domain package now runs in definitional mode by default: The |
|
41571 | 862 |
former command 'new_domain' is now called 'domain'. To use the domain |
40621 | 863 |
package in its original axiomatic mode, use 'domain (unsafe)'. |
864 |
INCOMPATIBILITY. |
|
865 |
||
41571 | 866 |
* The new class "domain" is now the default sort. Class "predomain" |
867 |
is an unpointed version of "domain". Theories can be updated by |
|
868 |
replacing sort annotations as shown below. INCOMPATIBILITY. |
|
40621 | 869 |
|
870 |
'a::type ~> 'a::countable |
|
871 |
'a::cpo ~> 'a::predomain |
|
872 |
'a::pcpo ~> 'a::domain |
|
873 |
||
41571 | 874 |
* The old type class "rep" has been superseded by class "domain". |
40621 | 875 |
Accordingly, users of the definitional package must remove any |
41571 | 876 |
"default_sort rep" declarations. INCOMPATIBILITY. |
40621 | 877 |
|
41401 | 878 |
* The domain package (definitional mode) now supports unpointed |
879 |
predomain argument types, as long as they are marked 'lazy'. (Strict |
|
41571 | 880 |
arguments must be in class "domain".) For example, the following |
41401 | 881 |
domain definition now works: |
882 |
||
883 |
domain natlist = nil | cons (lazy "nat discr") (lazy "natlist") |
|
884 |
||
885 |
* Theory HOLCF/Library/HOL_Cpo provides cpo and predomain class |
|
41571 | 886 |
instances for types from main HOL: bool, nat, int, char, 'a + 'b, |
887 |
'a option, and 'a list. Additionally, it configures fixrec and the |
|
888 |
domain package to work with these types. For example: |
|
41401 | 889 |
|
890 |
fixrec isInl :: "('a + 'b) u -> tr" |
|
891 |
where "isInl$(up$(Inl x)) = TT" | "isInl$(up$(Inr y)) = FF" |
|
892 |
||
893 |
domain V = VFun (lazy "V -> V") | VCon (lazy "nat") (lazy "V list") |
|
894 |
||
41571 | 895 |
* The "(permissive)" option of fixrec has been replaced with a |
896 |
per-equation "(unchecked)" option. See |
|
897 |
src/HOL/HOLCF/Tutorial/Fixrec_ex.thy for examples. INCOMPATIBILITY. |
|
898 |
||
899 |
* The "bifinite" class no longer fixes a constant "approx"; the class |
|
900 |
now just asserts that such a function exists. INCOMPATIBILITY. |
|
901 |
||
902 |
* Former type "alg_defl" has been renamed to "defl". HOLCF no longer |
|
41287
029a6fc1bfb8
type 'defl' takes a type parameter again (cf. b525988432e9)
huffman
parents:
41286
diff
changeset
|
903 |
defines an embedding of type 'a defl into udom by default; instances |
41571 | 904 |
of "bifinite" and "domain" classes are available in |
905 |
src/HOL/HOLCF/Library/Defl_Bifinite.thy. |
|
906 |
||
907 |
* The syntax "REP('a)" has been replaced with "DEFL('a)". |
|
908 |
||
909 |
* The predicate "directed" has been removed. INCOMPATIBILITY. |
|
910 |
||
911 |
* The type class "finite_po" has been removed. INCOMPATIBILITY. |
|
912 |
||
913 |
* The function "cprod_map" has been renamed to "prod_map". |
|
41401 | 914 |
INCOMPATIBILITY. |
915 |
||
916 |
* The monadic bind operator on each powerdomain has new binder syntax |
|
41571 | 917 |
similar to sets, e.g. "\<Union>\<sharp>x\<in>xs. t" represents |
918 |
"upper_bind\<cdot>xs\<cdot>(\<Lambda> x. t)". |
|
41401 | 919 |
|
920 |
* The infix syntax for binary union on each powerdomain has changed |
|
41571 | 921 |
from e.g. "+\<sharp>" to "\<union>\<sharp>", for consistency with set |
922 |
syntax. INCOMPATIBILITY. |
|
923 |
||
924 |
* The constant "UU" has been renamed to "bottom". The syntax "UU" is |
|
41429
cf5f025bc3c7
renamed constant 'UU' to 'bottom', keeping 'UU' as alternative input syntax;
huffman
parents:
41414
diff
changeset
|
925 |
still supported as an input translation. |
cf5f025bc3c7
renamed constant 'UU' to 'bottom', keeping 'UU' as alternative input syntax;
huffman
parents:
41414
diff
changeset
|
926 |
|
40621 | 927 |
* Renamed some theorems (the original names are also still available). |
41571 | 928 |
|
40621 | 929 |
expand_fun_below ~> fun_below_iff |
930 |
below_fun_ext ~> fun_belowI |
|
931 |
expand_cfun_eq ~> cfun_eq_iff |
|
932 |
ext_cfun ~> cfun_eqI |
|
933 |
expand_cfun_below ~> cfun_below_iff |
|
934 |
below_cfun_ext ~> cfun_belowI |
|
935 |
cont2cont_Rep_CFun ~> cont2cont_APP |
|
936 |
||
937 |
* The Abs and Rep functions for various types have changed names. |
|
40948 | 938 |
Related theorem names have also changed to match. INCOMPATIBILITY. |
41571 | 939 |
|
40621 | 940 |
Rep_CFun ~> Rep_cfun |
941 |
Abs_CFun ~> Abs_cfun |
|
942 |
Rep_Sprod ~> Rep_sprod |
|
943 |
Abs_Sprod ~> Abs_sprod |
|
944 |
Rep_Ssum ~> Rep_ssum |
|
945 |
Abs_Ssum ~> Abs_ssum |
|
946 |
||
947 |
* Lemmas with names of the form *_defined_iff or *_strict_iff have |
|
41571 | 948 |
been renamed to *_bottom_iff. INCOMPATIBILITY. |
40621 | 949 |
|
950 |
* Various changes to bisimulation/coinduction with domain package: |
|
41571 | 951 |
|
952 |
- Definitions of "bisim" constants no longer mention definedness. |
|
953 |
- With mutual recursion, "bisim" predicate is now curried. |
|
40621 | 954 |
- With mutual recursion, each type gets a separate coind theorem. |
955 |
- Variable names in bisim_def and coinduct rules have changed. |
|
41571 | 956 |
|
40621 | 957 |
INCOMPATIBILITY. |
958 |
||
41571 | 959 |
* Case combinators generated by the domain package for type "foo" are |
960 |
now named "foo_case" instead of "foo_when". INCOMPATIBILITY. |
|
40621 | 961 |
|
40771 | 962 |
* Several theorems have been renamed to more accurately reflect the |
41571 | 963 |
names of constants and types involved. INCOMPATIBILITY. |
964 |
||
40771 | 965 |
thelub_const ~> lub_const |
966 |
lub_const ~> is_lub_const |
|
967 |
thelubI ~> lub_eqI |
|
968 |
is_lub_lub ~> is_lubD2 |
|
969 |
lubI ~> is_lub_lub |
|
970 |
unique_lub ~> is_lub_unique |
|
971 |
is_ub_lub ~> is_lub_rangeD1 |
|
972 |
lub_bin_chain ~> is_lub_bin_chain |
|
41030
ff7d177128ef
rename lub_fun -> is_lub_fun, thelub_fun -> lub_fun
huffman
parents:
40965
diff
changeset
|
973 |
lub_fun ~> is_lub_fun |
ff7d177128ef
rename lub_fun -> is_lub_fun, thelub_fun -> lub_fun
huffman
parents:
40965
diff
changeset
|
974 |
thelub_fun ~> lub_fun |
41031 | 975 |
thelub_cfun ~> lub_cfun |
40771 | 976 |
thelub_Pair ~> lub_Pair |
977 |
lub_cprod ~> is_lub_prod |
|
978 |
thelub_cprod ~> lub_prod |
|
979 |
minimal_cprod ~> minimal_prod |
|
980 |
inst_cprod_pcpo ~> inst_prod_pcpo |
|
41430
1aa23e9f2c87
change some lemma names containing 'UU' to 'bottom'
huffman
parents:
41429
diff
changeset
|
981 |
UU_I ~> bottomI |
1aa23e9f2c87
change some lemma names containing 'UU' to 'bottom'
huffman
parents:
41429
diff
changeset
|
982 |
compact_UU ~> compact_bottom |
1aa23e9f2c87
change some lemma names containing 'UU' to 'bottom'
huffman
parents:
41429
diff
changeset
|
983 |
deflation_UU ~> deflation_bottom |
1aa23e9f2c87
change some lemma names containing 'UU' to 'bottom'
huffman
parents:
41429
diff
changeset
|
984 |
finite_deflation_UU ~> finite_deflation_bottom |
40771 | 985 |
|
41571 | 986 |
* Many legacy theorem names have been discontinued. INCOMPATIBILITY. |
987 |
||
40621 | 988 |
sq_ord_less_eq_trans ~> below_eq_trans |
989 |
sq_ord_eq_less_trans ~> eq_below_trans |
|
990 |
refl_less ~> below_refl |
|
991 |
trans_less ~> below_trans |
|
992 |
antisym_less ~> below_antisym |
|
993 |
antisym_less_inverse ~> po_eq_conv [THEN iffD1] |
|
994 |
box_less ~> box_below |
|
995 |
rev_trans_less ~> rev_below_trans |
|
996 |
not_less2not_eq ~> not_below2not_eq |
|
997 |
less_UU_iff ~> below_UU_iff |
|
998 |
flat_less_iff ~> flat_below_iff |
|
999 |
adm_less ~> adm_below |
|
1000 |
adm_not_less ~> adm_not_below |
|
1001 |
adm_compact_not_less ~> adm_compact_not_below |
|
1002 |
less_fun_def ~> below_fun_def |
|
1003 |
expand_fun_less ~> fun_below_iff |
|
1004 |
less_fun_ext ~> fun_belowI |
|
1005 |
less_discr_def ~> below_discr_def |
|
1006 |
discr_less_eq ~> discr_below_eq |
|
1007 |
less_unit_def ~> below_unit_def |
|
1008 |
less_cprod_def ~> below_prod_def |
|
1009 |
prod_lessI ~> prod_belowI |
|
1010 |
Pair_less_iff ~> Pair_below_iff |
|
1011 |
fst_less_iff ~> fst_below_iff |
|
1012 |
snd_less_iff ~> snd_below_iff |
|
1013 |
expand_cfun_less ~> cfun_below_iff |
|
1014 |
less_cfun_ext ~> cfun_belowI |
|
1015 |
injection_less ~> injection_below |
|
1016 |
less_up_def ~> below_up_def |
|
1017 |
not_Iup_less ~> not_Iup_below |
|
1018 |
Iup_less ~> Iup_below |
|
1019 |
up_less ~> up_below |
|
1020 |
Def_inject_less_eq ~> Def_below_Def |
|
1021 |
Def_less_is_eq ~> Def_below_iff |
|
1022 |
spair_less_iff ~> spair_below_iff |
|
1023 |
less_sprod ~> below_sprod |
|
1024 |
spair_less ~> spair_below |
|
1025 |
sfst_less_iff ~> sfst_below_iff |
|
1026 |
ssnd_less_iff ~> ssnd_below_iff |
|
1027 |
fix_least_less ~> fix_least_below |
|
1028 |
dist_less_one ~> dist_below_one |
|
1029 |
less_ONE ~> below_ONE |
|
1030 |
ONE_less_iff ~> ONE_below_iff |
|
1031 |
less_sinlD ~> below_sinlD |
|
1032 |
less_sinrD ~> below_sinrD |
|
1033 |
||
1034 |
||
40948 | 1035 |
*** FOL and ZF *** |
38522 | 1036 |
|
41310 | 1037 |
* All constant names are now qualified internally and use proper |
1038 |
identifiers, e.g. "IFOL.eq" instead of "op =". INCOMPATIBILITY. |
|
1039 |
||
38522 | 1040 |
|
37868
59eed00bfd8e
ML antiquotations @{theory} and @{theory_ref} refer to the theory ancestry, not any accidental theory loader state;
wenzelm
parents:
37820
diff
changeset
|
1041 |
*** ML *** |
59eed00bfd8e
ML antiquotations @{theory} and @{theory_ref} refer to the theory ancestry, not any accidental theory loader state;
wenzelm
parents:
37820
diff
changeset
|
1042 |
|
41594 | 1043 |
* Antiquotation @{assert} inlines a function bool -> unit that raises |
1044 |
Fail if the argument is false. Due to inlining the source position of |
|
1045 |
failed assertions is included in the error output. |
|
1046 |
||
1047 |
* Discontinued antiquotation @{theory_ref}, which is obsolete since ML |
|
1048 |
text is in practice always evaluated with a stable theory checkpoint. |
|
1049 |
Minor INCOMPATIBILITY, use (Theory.check_thy @{theory}) instead. |
|
1050 |
||
1051 |
* Antiquotation @{theory A} refers to theory A from the ancestry of |
|
1052 |
the current context, not any accidental theory loader state as before. |
|
1053 |
Potential INCOMPATIBILITY, subtle change in semantics. |
|
41228
e1fce873b814
renamed structure MetaSimplifier to raw_Simplifer, to emphasize its meaning;
wenzelm
parents:
41079
diff
changeset
|
1054 |
|
40956 | 1055 |
* Syntax.pretty_priority (default 0) configures the required priority |
1056 |
of pretty-printed output and thus affects insertion of parentheses. |
|
1057 |
||
40959 | 1058 |
* Syntax.default_root (default "any") configures the inner syntax |
1059 |
category (nonterminal symbol) for parsing of terms. |
|
1060 |
||
40722
441260986b63
make two copies (!) of Library.UnequalLengths coincide with ListPair.UnequalLengths;
wenzelm
parents:
40712
diff
changeset
|
1061 |
* Former exception Library.UnequalLengths now coincides with |
441260986b63
make two copies (!) of Library.UnequalLengths coincide with ListPair.UnequalLengths;
wenzelm
parents:
40712
diff
changeset
|
1062 |
ListPair.UnequalLengths. |
441260986b63
make two copies (!) of Library.UnequalLengths coincide with ListPair.UnequalLengths;
wenzelm
parents:
40712
diff
changeset
|
1063 |
|
41594 | 1064 |
* Renamed structure MetaSimplifier to Raw_Simplifier. Note that the |
1065 |
main functionality is provided by structure Simplifier. |
|
1066 |
||
40627
becf5d5187cc
renamed raw "explode" function to "raw_explode" to emphasize its meaning;
wenzelm
parents:
40624
diff
changeset
|
1067 |
* Renamed raw "explode" function to "raw_explode" to emphasize its |
becf5d5187cc
renamed raw "explode" function to "raw_explode" to emphasize its meaning;
wenzelm
parents:
40624
diff
changeset
|
1068 |
meaning. Note that internally to Isabelle, Symbol.explode is used in |
becf5d5187cc
renamed raw "explode" function to "raw_explode" to emphasize its meaning;
wenzelm
parents:
40624
diff
changeset
|
1069 |
almost all situations. |
becf5d5187cc
renamed raw "explode" function to "raw_explode" to emphasize its meaning;
wenzelm
parents:
40624
diff
changeset
|
1070 |
|
40318
035b2afbeb2e
discontinued obsolete function sys_error and exception SYS_ERROR;
wenzelm
parents:
40295
diff
changeset
|
1071 |
* Discontinued obsolete function sys_error and exception SYS_ERROR. |
035b2afbeb2e
discontinued obsolete function sys_error and exception SYS_ERROR;
wenzelm
parents:
40295
diff
changeset
|
1072 |
See implementation manual for further details on exceptions in |
035b2afbeb2e
discontinued obsolete function sys_error and exception SYS_ERROR;
wenzelm
parents:
40295
diff
changeset
|
1073 |
Isabelle/ML. |
035b2afbeb2e
discontinued obsolete function sys_error and exception SYS_ERROR;
wenzelm
parents:
40295
diff
changeset
|
1074 |
|
39616
8052101883c3
renamed setmp_noncritical to Unsynchronized.setmp to emphasize its meaning;
wenzelm
parents:
39557
diff
changeset
|
1075 |
* Renamed setmp_noncritical to Unsynchronized.setmp to emphasize its |
8052101883c3
renamed setmp_noncritical to Unsynchronized.setmp to emphasize its meaning;
wenzelm
parents:
39557
diff
changeset
|
1076 |
meaning. |
8052101883c3
renamed setmp_noncritical to Unsynchronized.setmp to emphasize its meaning;
wenzelm
parents:
39557
diff
changeset
|
1077 |
|
39557
fe5722fce758
renamed structure PureThy to Pure_Thy and moved most content to Global_Theory, to emphasize that this is global-only;
wenzelm
parents:
39513
diff
changeset
|
1078 |
* Renamed structure PureThy to Pure_Thy and moved most of its |
fe5722fce758
renamed structure PureThy to Pure_Thy and moved most content to Global_Theory, to emphasize that this is global-only;
wenzelm
parents:
39513
diff
changeset
|
1079 |
operations to structure Global_Theory, to emphasize that this is |
fe5722fce758
renamed structure PureThy to Pure_Thy and moved most content to Global_Theory, to emphasize that this is global-only;
wenzelm
parents:
39513
diff
changeset
|
1080 |
rarely-used global-only stuff. |
fe5722fce758
renamed structure PureThy to Pure_Thy and moved most content to Global_Theory, to emphasize that this is global-only;
wenzelm
parents:
39513
diff
changeset
|
1081 |
|
39513
fce2202892c4
discontinued Output.debug, which belongs to early PGIP experiments (b6788dbd2ef9) and causes just too many problems (like spamming the message channel if it is used by more than one module);
wenzelm
parents:
39308
diff
changeset
|
1082 |
* Discontinued Output.debug. Minor INCOMPATIBILITY, use plain writeln |
fce2202892c4
discontinued Output.debug, which belongs to early PGIP experiments (b6788dbd2ef9) and causes just too many problems (like spamming the message channel if it is used by more than one module);
wenzelm
parents:
39308
diff
changeset
|
1083 |
instead (or tracing for high-volume output). |
fce2202892c4
discontinued Output.debug, which belongs to early PGIP experiments (b6788dbd2ef9) and causes just too many problems (like spamming the message channel if it is used by more than one module);
wenzelm
parents:
39308
diff
changeset
|
1084 |
|
38980
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1085 |
* Configuration option show_question_marks only affects regular pretty |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1086 |
printing of types and terms, not raw Term.string_of_vname. |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1087 |
|
39164
e7e12555e763
ML_Context.thm and ML_Context.thms no longer pervasive;
wenzelm
parents:
39154
diff
changeset
|
1088 |
* ML_Context.thm and ML_Context.thms are no longer pervasive. Rare |
e7e12555e763
ML_Context.thm and ML_Context.thms no longer pervasive;
wenzelm
parents:
39154
diff
changeset
|
1089 |
INCOMPATIBILITY, superseded by static antiquotations @{thm} and |
e7e12555e763
ML_Context.thm and ML_Context.thms no longer pervasive;
wenzelm
parents:
39154
diff
changeset
|
1090 |
@{thms} for most purposes. |
e7e12555e763
ML_Context.thm and ML_Context.thms no longer pervasive;
wenzelm
parents:
39154
diff
changeset
|
1091 |
|
41594 | 1092 |
* ML structure Unsynchronized is never opened, not even in Isar |
38980
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1093 |
interaction mode as before. Old Unsynchronized.set etc. have been |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1094 |
discontinued -- use plain := instead. This should be *rare* anyway, |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1095 |
since modern tools always work via official context data, notably |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1096 |
configuration options. |
af73cf0dc31f
turned show_question_marks into proper configuration option;
wenzelm
parents:
38864
diff
changeset
|
1097 |
|
39239 | 1098 |
* Parallel and asynchronous execution requires special care concerning |
1099 |
interrupts. Structure Exn provides some convenience functions that |
|
1100 |
avoid working directly with raw Interrupt. User code must not absorb |
|
1101 |
interrupts -- intermediate handling (for cleanup etc.) needs to be |
|
1102 |
followed by re-raising of the original exception. Another common |
|
1103 |
source of mistakes are "handle _" patterns, which make the meaning of |
|
1104 |
the program subject to physical effects of the environment. |
|
1105 |
||
37868
59eed00bfd8e
ML antiquotations @{theory} and @{theory_ref} refer to the theory ancestry, not any accidental theory loader state;
wenzelm
parents:
37820
diff
changeset
|
1106 |
|
59eed00bfd8e
ML antiquotations @{theory} and @{theory_ref} refer to the theory ancestry, not any accidental theory loader state;
wenzelm
parents:
37820
diff
changeset
|
1107 |
|
37144 | 1108 |
New in Isabelle2009-2 (June 2010) |
1109 |
--------------------------------- |
|
33993 | 1110 |
|
35260 | 1111 |
*** General *** |
1112 |
||
35436 | 1113 |
* Authentic syntax for *all* logical entities (type classes, type |
1114 |
constructors, term constants): provides simple and robust |
|
1115 |
correspondence between formal entities and concrete syntax. Within |
|
1116 |
the parse tree / AST representations, "constants" are decorated by |
|
1117 |
their category (class, type, const) and spelled out explicitly with |
|
1118 |
their full internal name. |
|
1119 |
||
1120 |
Substantial INCOMPATIBILITY concerning low-level syntax declarations |
|
1121 |
and translations (translation rules and translation functions in ML). |
|
1122 |
Some hints on upgrading: |
|
35260 | 1123 |
|
1124 |
- Many existing uses of 'syntax' and 'translations' can be replaced |
|
35436 | 1125 |
by more modern 'type_notation', 'notation' and 'abbreviation', |
1126 |
which are independent of this issue. |
|
35260 | 1127 |
|
1128 |
- 'translations' require markup within the AST; the term syntax |
|
1129 |
provides the following special forms: |
|
1130 |
||
1131 |
CONST c -- produces syntax version of constant c from context |
|
35261 | 1132 |
XCONST c -- literally c, checked as constant from context |
1133 |
c -- literally c, if declared by 'syntax' |
|
1134 |
||
1135 |
Plain identifiers are treated as AST variables -- occasionally the |
|
1136 |
system indicates accidental variables via the error "rhs contains |
|
1137 |
extra variables". |
|
35260 | 1138 |
|
35436 | 1139 |
Type classes and type constructors are marked according to their |
1140 |
concrete syntax. Some old translations rules need to be written |
|
1141 |
for the "type" category, using type constructor application |
|
1142 |
instead of pseudo-term application of the default category |
|
1143 |
"logic". |
|
1144 |
||
35260 | 1145 |
- 'parse_translation' etc. in ML may use the following |
1146 |
antiquotations: |
|
1147 |
||
35436 | 1148 |
@{class_syntax c} -- type class c within parse tree / AST |
1149 |
@{term_syntax c} -- type constructor c within parse tree / AST |
|
35260 | 1150 |
@{const_syntax c} -- ML version of "CONST c" above |
1151 |
@{syntax_const c} -- literally c (checked wrt. 'syntax' declarations) |
|
1152 |
||
35436 | 1153 |
- Literal types within 'typed_print_translations', i.e. those *not* |
1154 |
represented as pseudo-terms are represented verbatim. Use @{class |
|
1155 |
c} or @{type_name c} here instead of the above syntax |
|
1156 |
antiquotations. |
|
1157 |
||
35260 | 1158 |
Note that old non-authentic syntax was based on unqualified base |
35436 | 1159 |
names, so all of the above "constant" names would coincide. Recall |
1160 |
that 'print_syntax' and ML_command "set Syntax.trace_ast" help to |
|
1161 |
diagnose syntax problems. |
|
35260 | 1162 |
|
35351
7425aece4ee3
allow general mixfix syntax for type constructors;
wenzelm
parents:
35306
diff
changeset
|
1163 |
* Type constructors admit general mixfix syntax, not just infix. |
7425aece4ee3
allow general mixfix syntax for type constructors;
wenzelm
parents:
35306
diff
changeset
|
1164 |
|
36508
03d2a2d0ee4a
allow concrete syntax for local entities within a proof body, either via regular mixfix annotations to 'fix' etc. or the separate 'write' command;
wenzelm
parents:
36461
diff
changeset
|
1165 |
* Concrete syntax may be attached to local entities without a proof |
03d2a2d0ee4a
allow concrete syntax for local entities within a proof body, either via regular mixfix annotations to 'fix' etc. or the separate 'write' command;
wenzelm
parents:
36461
diff
changeset
|
1166 |
body, too. This works via regular mixfix annotations for 'fix', |
03d2a2d0ee4a
allow concrete syntax for local entities within a proof body, either via regular mixfix annotations to 'fix' etc. or the separate 'write' command;
wenzelm
parents:
36461
diff
changeset
|
1167 |
'def', 'obtain' etc. or via the explicit 'write' command, which is |
03d2a2d0ee4a
allow concrete syntax for local entities within a proof body, either via regular mixfix annotations to 'fix' etc. or the separate 'write' command;
wenzelm
parents:
36461
diff
changeset
|
1168 |
similar to the 'notation' command in theory specifications. |
03d2a2d0ee4a
allow concrete syntax for local entities within a proof body, either via regular mixfix annotations to 'fix' etc. or the separate 'write' command;
wenzelm
parents:
36461
diff
changeset
|
1169 |
|
37351 | 1170 |
* Discontinued unnamed infix syntax (legacy feature for many years) -- |
1171 |
need to specify constant name and syntax separately. Internal ML |
|
1172 |
datatype constructors have been renamed from InfixName to Infix etc. |
|
1173 |
Minor INCOMPATIBILITY. |
|
1174 |
||
1175 |
* Schematic theorem statements need to be explicitly markup as such, |
|
1176 |
via commands 'schematic_lemma', 'schematic_theorem', |
|
1177 |
'schematic_corollary'. Thus the relevance of the proof is made |
|
1178 |
syntactically clear, which impacts performance in a parallel or |
|
1179 |
asynchronous interactive environment. Minor INCOMPATIBILITY. |
|
1180 |
||
35613 | 1181 |
* Use of cumulative prems via "!" in some proof methods has been |
37351 | 1182 |
discontinued (old legacy feature). |
35613 | 1183 |
|
35979
12bb31230550
replaced references 'trace_simp' and 'debug_simp' by configuration options stored in the context
boehmes
parents:
35845
diff
changeset
|
1184 |
* References 'trace_simp' and 'debug_simp' have been replaced by |
36857 | 1185 |
configuration options stored in the context. Enabling tracing (the |
1186 |
case of debugging is similar) in proofs works via |
|
1187 |
||
1188 |
using [[trace_simp = true]] |
|
1189 |
||
1190 |
Tracing is then active for all invocations of the simplifier in |
|
1191 |
subsequent goal refinement steps. Tracing may also still be enabled or |
|
40780
1cabd6f4a718
recovered Isabelle2009-2 NEWS -- published part is read-only;
wenzelm
parents:
40771
diff
changeset
|
1192 |
disabled via the ProofGeneral settings menu. |
35979
12bb31230550
replaced references 'trace_simp' and 'debug_simp' by configuration options stored in the context
boehmes
parents:
35845
diff
changeset
|
1193 |
|
36177
8e0770d2e499
separate commands 'hide_class', 'hide_type', 'hide_const', 'hide_fact';
wenzelm
parents:
36162
diff
changeset
|
1194 |
* Separate commands 'hide_class', 'hide_type', 'hide_const', |
8e0770d2e499
separate commands 'hide_class', 'hide_type', 'hide_const', 'hide_fact';
wenzelm
parents:
36162
diff
changeset
|
1195 |
'hide_fact' replace the former 'hide' KIND command. Minor |
8e0770d2e499
separate commands 'hide_class', 'hide_type', 'hide_const', 'hide_fact';
wenzelm
parents:
36162
diff
changeset
|
1196 |
INCOMPATIBILITY. |
8e0770d2e499
separate commands 'hide_class', 'hide_type', 'hide_const', 'hide_fact';
wenzelm
parents:
36162
diff
changeset
|
1197 |
|
37298
1f3ca94ccb84
improved parallelism of proof term normalization;
wenzelm
parents:
37273
diff
changeset
|
1198 |
* Improved parallelism of proof term normalization: usedir -p2 -q0 is |
1f3ca94ccb84
improved parallelism of proof term normalization;
wenzelm
parents:
37273
diff
changeset
|
1199 |
more efficient than combinations with -q1 or -q2. |
1f3ca94ccb84
improved parallelism of proof term normalization;
wenzelm
parents:
37273
diff
changeset
|
1200 |
|
35260 | 1201 |
|
34170
254ac75e4c38
reduced code generator cache to the baremost minimum; corrected spelling
haftmann
parents:
34076
diff
changeset
|
1202 |
*** Pure *** |
254ac75e4c38
reduced code generator cache to the baremost minimum; corrected spelling
haftmann
parents:
34076
diff
changeset
|
1203 |
|
37351 | 1204 |
* Proofterms record type-class reasoning explicitly, using the |
1205 |
"unconstrain" operation internally. This eliminates all sort |
|
1206 |
constraints from a theorem and proof, introducing explicit |
|
1207 |
OFCLASS-premises. On the proof term level, this operation is |
|
1208 |
automatically applied at theorem boundaries, such that closed proofs |
|
1209 |
are always free of sort constraints. INCOMPATIBILITY for tools that |
|
1210 |
inspect proof terms. |
|
36147
b43b22f63665
theory RBT with abstract type of red-black trees backed by implementation RBT_Impl
haftmann
parents:
36096
diff
changeset
|
1211 |
|
35765
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1212 |
* Local theory specifications may depend on extra type variables that |
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1213 |
are not present in the result type -- arguments TYPE('a) :: 'a itself |
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1214 |
are added internally. For example: |
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1215 |
|
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1216 |
definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)" |
09e238561460
local theory specifications handle hidden polymorphism implicitly;
wenzelm
parents:
35763
diff
changeset
|
1217 |
|
37351 | 1218 |
* Predicates of locales introduced by classes carry a mandatory |
1219 |
"class" prefix. INCOMPATIBILITY. |
|
1220 |
||
1221 |
* Vacuous class specifications observe default sort. INCOMPATIBILITY. |
|
1222 |
||
1223 |
* Old 'axclass' command has been discontinued. INCOMPATIBILITY, use |
|
1224 |
'class' instead. |
|
1225 |
||
1226 |
* Command 'code_reflect' allows to incorporate generated ML code into |
|
1227 |
runtime environment; replaces immature code_datatype antiquotation. |
|
1228 |
INCOMPATIBILITY. |
|
1229 |
||
1230 |
* Code generator: simple concept for abstract datatypes obeying |
|
1231 |
invariants. |
|
1232 |
||
36857 | 1233 |
* Code generator: details of internal data cache have no impact on the |
1234 |
user space functionality any longer. |
|
1235 |
||
37351 | 1236 |
* Methods "unfold_locales" and "intro_locales" ignore non-locale |
1237 |
subgoals. This is more appropriate for interpretations with 'where'. |
|
36857 | 1238 |
INCOMPATIBILITY. |
34170
254ac75e4c38
reduced code generator cache to the baremost minimum; corrected spelling
haftmann
parents:
34076
diff
changeset
|
1239 |
|
36356
5ab0f8859f9f
command 'example_proof' opens an empty proof body;
wenzelm
parents:
36348
diff
changeset
|
1240 |
* Command 'example_proof' opens an empty proof body. This allows to |
5ab0f8859f9f
command 'example_proof' opens an empty proof body;
wenzelm
parents:
36348
diff
changeset
|
1241 |
experiment with Isar, without producing any persistent result. |
5ab0f8859f9f
command 'example_proof' opens an empty proof body;
wenzelm
parents:
36348
diff
changeset
|
1242 |
|
35413 | 1243 |
* Commands 'type_notation' and 'no_type_notation' declare type syntax |
1244 |
within a local theory context, with explicit checking of the |
|
1245 |
constructors involved (in contrast to the raw 'syntax' versions). |
|
1246 |
||
36178
0e5c133b48b6
keep localized 'types' as regular non-old-style version -- 'type_abbrev' as 'type' just causes too many problems, e.g. clash with "type" in translations or "type:" argument syntax;
wenzelm
parents:
36177
diff
changeset
|
1247 |
* Commands 'types' and 'typedecl' now work within a local theory |
0e5c133b48b6
keep localized 'types' as regular non-old-style version -- 'type_abbrev' as 'type' just causes too many problems, e.g. clash with "type" in translations or "type:" argument syntax;
wenzelm
parents:
36177
diff
changeset
|
1248 |
context -- without introducing dependencies on parameters or |
0e5c133b48b6
keep localized 'types' as regular non-old-style version -- 'type_abbrev' as 'type' just causes too many problems, e.g. clash with "type" in translations or "type:" argument syntax;
wenzelm
parents:
36177
diff
changeset
|
1249 |
assumptions, which is not possible in Isabelle/Pure. |
35681 | 1250 |
|
36857 | 1251 |
* Command 'defaultsort' has been renamed to 'default_sort', it works |
1252 |
within a local theory context. Minor INCOMPATIBILITY. |
|
36454
f2b5bcc61a8c
command 'defaultsort' is renamed to 'default_sort', it works within a local theory context;
wenzelm
parents:
36446
diff
changeset
|
1253 |
|
34170
254ac75e4c38
reduced code generator cache to the baremost minimum; corrected spelling
haftmann
parents:
34076
diff
changeset
|
1254 |
|
33993 | 1255 |
*** HOL *** |
1256 |
||
37351 | 1257 |
* Command 'typedef' now works within a local theory context -- without |
1258 |
introducing dependencies on parameters or assumptions, which is not |
|
1259 |
possible in Isabelle/Pure/HOL. Note that the logical environment may |
|
1260 |
contain multiple interpretations of local typedefs (with different |
|
1261 |
non-emptiness proofs), even in a global theory context. |
|
1262 |
||
1263 |
* New package for quotient types. Commands 'quotient_type' and |
|
1264 |
'quotient_definition' may be used for defining types and constants by |
|
1265 |
quotient constructions. An example is the type of integers created by |
|
1266 |
quotienting pairs of natural numbers: |
|
37380 | 1267 |
|
37351 | 1268 |
fun |
37380 | 1269 |
intrel :: "(nat * nat) => (nat * nat) => bool" |
37351 | 1270 |
where |
1271 |
"intrel (x, y) (u, v) = (x + v = u + y)" |
|
1272 |
||
37380 | 1273 |
quotient_type int = "nat * nat" / intrel |
37351 | 1274 |
by (auto simp add: equivp_def expand_fun_eq) |
37380 | 1275 |
|
37351 | 1276 |
quotient_definition |
1277 |
"0::int" is "(0::nat, 0::nat)" |
|
1278 |
||
1279 |
The method "lifting" can be used to lift of theorems from the |
|
1280 |
underlying "raw" type to the quotient type. The example |
|
1281 |
src/HOL/Quotient_Examples/FSet.thy includes such a quotient |
|
1282 |
construction and provides a reasoning infrastructure for finite sets. |
|
1283 |
||
1284 |
* Renamed Library/Quotient.thy to Library/Quotient_Type.thy to avoid |
|
1285 |
clash with new theory Quotient in Main HOL. |
|
1286 |
||
1287 |
* Moved the SMT binding into the main HOL session, eliminating |
|
1288 |
separate HOL-SMT session. |
|
1289 |
||
37020 | 1290 |
* List membership infix mem operation is only an input abbreviation. |
1291 |
INCOMPATIBILITY. |
|
1292 |
||
37144 | 1293 |
* Theory Library/Word.thy has been removed. Use library Word/Word.thy |
1294 |
for future developements; former Library/Word.thy is still present in |
|
1295 |
the AFP entry RSAPPS. |
|
36963
9a017146675f
dropped old Library/Word.thy and toy example ex/Adder.thy
haftmann
parents:
36953
diff
changeset
|
1296 |
|
36857 | 1297 |
* Theorem Int.int_induct renamed to Int.int_of_nat_induct and is no |
1298 |
longer shadowed. INCOMPATIBILITY. |
|
36808
cbeb3484fa07
theorem Presburger.int_induct has been renamed to Int.int_bidirectional_induct
haftmann
parents:
36714
diff
changeset
|
1299 |
|
36836
49156805321c
removed lemma real_sq_order; use power2_le_imp_le instead
huffman
parents:
36830
diff
changeset
|
1300 |
* Dropped theorem duplicate comp_arith; use semiring_norm instead. |
49156805321c
removed lemma real_sq_order; use power2_le_imp_le instead
huffman
parents:
36830
diff
changeset
|
1301 |
INCOMPATIBILITY. |
49156805321c
removed lemma real_sq_order; use power2_le_imp_le instead
huffman
parents:
36830
diff
changeset
|
1302 |
|
49156805321c
removed lemma real_sq_order; use power2_le_imp_le instead
huffman
parents:
36830
diff
changeset
|
1303 |
* Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead. |
49156805321c
removed lemma real_sq_order; use power2_le_imp_le instead
huffman
parents:
36830
diff
changeset
|
1304 |
INCOMPATIBILITY. |
36714 | 1305 |
|
36857 | 1306 |
* Dropped normalizing_semiring etc; use the facts in semiring classes |
1307 |
instead. INCOMPATIBILITY. |
|
1308 |
||
36979
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1309 |
* Dropped several real-specific versions of lemmas about floor and |
37351 | 1310 |
ceiling; use the generic lemmas from theory "Archimedean_Field" |
1311 |
instead. INCOMPATIBILITY. |
|
36979
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1312 |
|
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1313 |
floor_number_of_eq ~> floor_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1314 |
le_floor_eq_number_of ~> number_of_le_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1315 |
le_floor_eq_zero ~> zero_le_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1316 |
le_floor_eq_one ~> one_le_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1317 |
floor_less_eq_number_of ~> floor_less_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1318 |
floor_less_eq_zero ~> floor_less_zero |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1319 |
floor_less_eq_one ~> floor_less_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1320 |
less_floor_eq_number_of ~> number_of_less_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1321 |
less_floor_eq_zero ~> zero_less_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1322 |
less_floor_eq_one ~> one_less_floor |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1323 |
floor_le_eq_number_of ~> floor_le_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1324 |
floor_le_eq_zero ~> floor_le_zero |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1325 |
floor_le_eq_one ~> floor_le_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1326 |
floor_subtract_number_of ~> floor_diff_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1327 |
floor_subtract_one ~> floor_diff_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1328 |
ceiling_number_of_eq ~> ceiling_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1329 |
ceiling_le_eq_number_of ~> ceiling_le_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1330 |
ceiling_le_zero_eq ~> ceiling_le_zero |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1331 |
ceiling_le_eq_one ~> ceiling_le_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1332 |
less_ceiling_eq_number_of ~> number_of_less_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1333 |
less_ceiling_eq_zero ~> zero_less_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1334 |
less_ceiling_eq_one ~> one_less_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1335 |
ceiling_less_eq_number_of ~> ceiling_less_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1336 |
ceiling_less_eq_zero ~> ceiling_less_zero |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1337 |
ceiling_less_eq_one ~> ceiling_less_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1338 |
le_ceiling_eq_number_of ~> number_of_le_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1339 |
le_ceiling_eq_zero ~> zero_le_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1340 |
le_ceiling_eq_one ~> one_le_ceiling |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1341 |
ceiling_subtract_number_of ~> ceiling_diff_number_of |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1342 |
ceiling_subtract_one ~> ceiling_diff_one |
da7c06ab3169
remove several redundant lemmas about floor and ceiling
huffman
parents:
36972
diff
changeset
|
1343 |
|
37144 | 1344 |
* Theory "Finite_Set": various folding_XXX locales facilitate the |
36857 | 1345 |
application of the various fold combinators on finite sets. |
1346 |
||
1347 |
* Library theory "RBT" renamed to "RBT_Impl"; new library theory "RBT" |
|
1348 |
provides abstract red-black tree type which is backed by "RBT_Impl" as |
|
1349 |
implementation. INCOMPATIBILTY. |
|
36147
b43b22f63665
theory RBT with abstract type of red-black trees backed by implementation RBT_Impl
haftmann
parents:
36096
diff
changeset
|
1350 |
|
36830 | 1351 |
* Theory Library/Coinductive_List has been removed -- superseded by |
35763
765f8adf10f9
removed obsolete HOL/Library/Coinductive_List.thy, superceded by thys/Coinductive/Coinductive_List.thy in AFP/f2f5727b77d0;
wenzelm
parents:
35745
diff
changeset
|
1352 |
AFP/thys/Coinductive. |
765f8adf10f9
removed obsolete HOL/Library/Coinductive_List.thy, superceded by thys/Coinductive/Coinductive_List.thy in AFP/f2f5727b77d0;
wenzelm
parents:
35745
diff
changeset
|
1353 |
|
36829 | 1354 |
* Theory PReal, including the type "preal" and related operations, has |
1355 |
been removed. INCOMPATIBILITY. |
|
1356 |
||
37380 | 1357 |
* Real: new development using Cauchy Sequences. |
1358 |
||
37351 | 1359 |
* Split off theory "Big_Operators" containing setsum, setprod, |
1360 |
Inf_fin, Sup_fin, Min, Max from theory Finite_Set. INCOMPATIBILITY. |
|
36857 | 1361 |
|
1362 |
* Theory "Rational" renamed to "Rat", for consistency with "Nat", |
|
1363 |
"Int" etc. INCOMPATIBILITY. |
|
1364 |
||
37351 | 1365 |
* Constant Rat.normalize needs to be qualified. INCOMPATIBILITY. |
37143 | 1366 |
|
36857 | 1367 |
* New set of rules "ac_simps" provides combined assoc / commute |
1368 |
rewrites for all interpretations of the appropriate generic locales. |
|
1369 |
||
1370 |
* Renamed theory "OrderedGroup" to "Groups" and split theory |
|
1371 |
"Ring_and_Field" into theories "Rings" and "Fields"; for more |
|
1372 |
appropriate and more consistent names suitable for name prefixes |
|
1373 |
within the HOL theories. INCOMPATIBILITY. |
|
35050
9f841f20dca6
renamed OrderedGroup to Groups; split theory Ring_and_Field into Rings Fields
haftmann
parents:
35042
diff
changeset
|
1374 |
|
35084 | 1375 |
* Some generic constants have been put to appropriate theories: |
36857 | 1376 |
- less_eq, less: Orderings |
1377 |
- zero, one, plus, minus, uminus, times, abs, sgn: Groups |
|
1378 |
- inverse, divide: Rings |
|
35084 | 1379 |
INCOMPATIBILITY. |
1380 |
||
36857 | 1381 |
* More consistent naming of type classes involving orderings (and |
1382 |
lattices): |
|
35027
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1383 |
|
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1384 |
lower_semilattice ~> semilattice_inf |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1385 |
upper_semilattice ~> semilattice_sup |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1386 |
|
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1387 |
dense_linear_order ~> dense_linorder |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1388 |
|
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1389 |
pordered_ab_group_add ~> ordered_ab_group_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1390 |
pordered_ab_group_add_abs ~> ordered_ab_group_add_abs |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1391 |
pordered_ab_semigroup_add ~> ordered_ab_semigroup_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1392 |
pordered_ab_semigroup_add_imp_le ~> ordered_ab_semigroup_add_imp_le |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1393 |
pordered_cancel_ab_semigroup_add ~> ordered_cancel_ab_semigroup_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1394 |
pordered_cancel_comm_semiring ~> ordered_cancel_comm_semiring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1395 |
pordered_cancel_semiring ~> ordered_cancel_semiring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1396 |
pordered_comm_monoid_add ~> ordered_comm_monoid_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1397 |
pordered_comm_ring ~> ordered_comm_ring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1398 |
pordered_comm_semiring ~> ordered_comm_semiring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1399 |
pordered_ring ~> ordered_ring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1400 |
pordered_ring_abs ~> ordered_ring_abs |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1401 |
pordered_semiring ~> ordered_semiring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1402 |
|
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1403 |
ordered_ab_group_add ~> linordered_ab_group_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1404 |
ordered_ab_semigroup_add ~> linordered_ab_semigroup_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1405 |
ordered_cancel_ab_semigroup_add ~> linordered_cancel_ab_semigroup_add |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1406 |
ordered_comm_semiring_strict ~> linordered_comm_semiring_strict |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1407 |
ordered_field ~> linordered_field |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1408 |
ordered_field_no_lb ~> linordered_field_no_lb |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1409 |
ordered_field_no_ub ~> linordered_field_no_ub |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1410 |
ordered_field_dense_linear_order ~> dense_linordered_field |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1411 |
ordered_idom ~> linordered_idom |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1412 |
ordered_ring ~> linordered_ring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1413 |
ordered_ring_le_cancel_factor ~> linordered_ring_le_cancel_factor |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1414 |
ordered_ring_less_cancel_factor ~> linordered_ring_less_cancel_factor |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1415 |
ordered_ring_strict ~> linordered_ring_strict |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1416 |
ordered_semidom ~> linordered_semidom |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1417 |
ordered_semiring ~> linordered_semiring |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1418 |
ordered_semiring_1 ~> linordered_semiring_1 |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1419 |
ordered_semiring_1_strict ~> linordered_semiring_1_strict |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1420 |
ordered_semiring_strict ~> linordered_semiring_strict |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1421 |
|
36857 | 1422 |
The following slightly odd type classes have been moved to a |
37351 | 1423 |
separate theory Library/Lattice_Algebras: |
35032
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1424 |
|
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1425 |
lordered_ab_group_add ~> lattice_ab_group_add |
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1426 |
lordered_ab_group_add_abs ~> lattice_ab_group_add_abs |
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1427 |
lordered_ab_group_add_meet ~> semilattice_inf_ab_group_add |
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1428 |
lordered_ab_group_add_join ~> semilattice_sup_ab_group_add |
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1429 |
lordered_ring ~> lattice_ring |
7efe662e41b4
separate library theory for type classes combining lattices with various algebraic structures
haftmann
parents:
35027
diff
changeset
|
1430 |
|
35027
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1431 |
INCOMPATIBILITY. |
ed7d12bcf8f8
more consistent naming of type classes involving orderings (and lattices) -- c.f. NEWS
haftmann
parents:
34974
diff
changeset
|
1432 |
|
36416 | 1433 |
* Refined field classes: |
36857 | 1434 |
- classes division_ring_inverse_zero, field_inverse_zero, |
1435 |
linordered_field_inverse_zero include rule inverse 0 = 0 -- |
|
1436 |
subsumes former division_by_zero class; |
|
1437 |
- numerous lemmas have been ported from field to division_ring. |
|
1438 |
INCOMPATIBILITY. |
|
36416 | 1439 |
|
1440 |
* Refined algebra theorem collections: |
|
36857 | 1441 |
- dropped theorem group group_simps, use algebra_simps instead; |
1442 |
- dropped theorem group ring_simps, use field_simps instead; |
|
1443 |
- proper theorem collection field_simps subsumes former theorem |
|
1444 |
groups field_eq_simps and field_simps; |
|
1445 |
- dropped lemma eq_minus_self_iff which is a duplicate for |
|
1446 |
equal_neg_zero. |
|
1447 |
INCOMPATIBILITY. |
|
35009 | 1448 |
|
1449 |
* Theory Finite_Set and List: some lemmas have been generalized from |
|
34076
e3daf3c07381
Subgoal.FOCUS (and variants): resulting goal state is normalized as usual for resolution;
wenzelm
parents:
34062
diff
changeset
|
1450 |
sets to lattices: |
e3daf3c07381
Subgoal.FOCUS (and variants): resulting goal state is normalized as usual for resolution;
wenzelm
parents:
34062
diff
changeset
|
1451 |
|
34007
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1452 |
fun_left_comm_idem_inter ~> fun_left_comm_idem_inf |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1453 |
fun_left_comm_idem_union ~> fun_left_comm_idem_sup |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1454 |
inter_Inter_fold_inter ~> inf_Inf_fold_inf |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1455 |
union_Union_fold_union ~> sup_Sup_fold_sup |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1456 |
Inter_fold_inter ~> Inf_fold_inf |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1457 |
Union_fold_union ~> Sup_fold_sup |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1458 |
inter_INTER_fold_inter ~> inf_INFI_fold_inf |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1459 |
union_UNION_fold_union ~> sup_SUPR_fold_sup |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1460 |
INTER_fold_inter ~> INFI_fold_inf |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1461 |
UNION_fold_union ~> SUPR_fold_sup |
aea892559fc5
tuned lattices theory fragements; generlized some lemmas from sets to lattices
haftmann
parents:
33994
diff
changeset
|
1462 |
|
37351 | 1463 |
* Theory "Complete_Lattice": lemmas top_def and bot_def have been |
36416 | 1464 |
replaced by the more convenient lemmas Inf_empty and Sup_empty. |
1465 |
Dropped lemmas Inf_insert_simp and Sup_insert_simp, which are subsumed |
|
1466 |
by Inf_insert and Sup_insert. Lemmas Inf_UNIV and Sup_UNIV replace |
|
1467 |
former Inf_Univ and Sup_Univ. Lemmas inf_top_right and sup_bot_right |
|
1468 |
subsume inf_top and sup_bot respectively. INCOMPATIBILITY. |
|
1469 |
||
36857 | 1470 |
* Reorganized theory Multiset: swapped notation of pointwise and |
1471 |
multiset order: |
|
37351 | 1472 |
|
36857 | 1473 |
- pointwise ordering is instance of class order with standard syntax |
1474 |
<= and <; |
|
1475 |
- multiset ordering has syntax <=# and <#; partial order properties |
|
1476 |
are provided by means of interpretation with prefix |
|
1477 |
multiset_order; |
|
1478 |
- less duplication, less historical organization of sections, |
|
1479 |
conversion from associations lists to multisets, rudimentary code |
|
1480 |
generation; |
|
1481 |
- use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union, |
|
1482 |
if needed. |
|
37351 | 1483 |
|
36903 | 1484 |
Renamed: |
37351 | 1485 |
|
1486 |
multiset_eq_conv_count_eq ~> multiset_ext_iff |
|
1487 |
multi_count_ext ~> multiset_ext |
|
1488 |
diff_union_inverse2 ~> diff_union_cancelR |
|
1489 |
||
36857 | 1490 |
INCOMPATIBILITY. |
36416 | 1491 |
|
36903 | 1492 |
* Theory Permutation: replaced local "remove" by List.remove1. |
1493 |
||
36416 | 1494 |
* Code generation: ML and OCaml code is decorated with signatures. |
1495 |
||
35009 | 1496 |
* Theory List: added transpose. |
1497 |
||
35810 | 1498 |
* Library/Nat_Bijection.thy is a collection of bijective functions |
1499 |
between nat and other types, which supersedes the older libraries |
|
1500 |
Library/Nat_Int_Bij.thy and HOLCF/NatIso.thy. INCOMPATIBILITY. |
|
1501 |
||
1502 |
Constants: |
|
1503 |
Nat_Int_Bij.nat2_to_nat ~> prod_encode |
|
1504 |
Nat_Int_Bij.nat_to_nat2 ~> prod_decode |
|
1505 |
Nat_Int_Bij.int_to_nat_bij ~> int_encode |
|
1506 |
Nat_Int_Bij.nat_to_int_bij ~> int_decode |
|
1507 |
Countable.pair_encode ~> prod_encode |
|
1508 |
NatIso.prod2nat ~> prod_encode |
|
1509 |
NatIso.nat2prod ~> prod_decode |
|
1510 |
NatIso.sum2nat ~> sum_encode |
|
1511 |
NatIso.nat2sum ~> sum_decode |
|
1512 |
NatIso.list2nat ~> list_encode |
|
1513 |
NatIso.nat2list ~> list_decode |
|
1514 |
NatIso.set2nat ~> set_encode |
|
1515 |
NatIso.nat2set ~> set_decode |
|
1516 |
||
1517 |
Lemmas: |
|
1518 |
Nat_Int_Bij.bij_nat_to_int_bij ~> bij_int_decode |
|
1519 |
Nat_Int_Bij.nat2_to_nat_inj ~> inj_prod_encode |
|
1520 |
Nat_Int_Bij.nat2_to_nat_surj ~> surj_prod_encode |
|
1521 |
Nat_Int_Bij.nat_to_nat2_inj ~> inj_prod_decode |
|
1522 |
Nat_Int_Bij.nat_to_nat2_surj ~> surj_prod_decode |
|
1523 |
Nat_Int_Bij.i2n_n2i_id ~> int_encode_inverse |
|
1524 |
Nat_Int_Bij.n2i_i2n_id ~> int_decode_inverse |
|
1525 |
Nat_Int_Bij.surj_nat_to_int_bij ~> surj_int_encode |
|
1526 |
Nat_Int_Bij.surj_int_to_nat_bij ~> surj_int_decode |
|
1527 |
Nat_Int_Bij.inj_nat_to_int_bij ~> inj_int_encode |
|
1528 |
Nat_Int_Bij.inj_int_to_nat_bij ~> inj_int_decode |
|
1529 |
Nat_Int_Bij.bij_nat_to_int_bij ~> bij_int_encode |
|
1530 |
Nat_Int_Bij.bij_int_to_nat_bij ~> bij_int_decode |
|
1531 |
||
36929 | 1532 |
* Sledgehammer: |
1533 |
- Renamed ATP commands: |
|
1534 |
atp_info ~> sledgehammer running_atps |
|
1535 |
atp_kill ~> sledgehammer kill_atps |
|
1536 |
atp_messages ~> sledgehammer messages |
|
1537 |
atp_minimize ~> sledgehammer minimize |
|
1538 |
print_atps ~> sledgehammer available_atps |
|
1539 |
INCOMPATIBILITY. |
|
1540 |
- Added user's manual ("isabelle doc sledgehammer"). |
|
1541 |
- Added option syntax and "sledgehammer_params" to customize |
|
1542 |
Sledgehammer's behavior. See the manual for details. |
|
1543 |
- Modified the Isar proof reconstruction code so that it produces |
|
1544 |
direct proofs rather than proofs by contradiction. (This feature |
|
1545 |
is still experimental.) |
|
1546 |
- Made Isar proof reconstruction work for SPASS, remote ATPs, and in |
|
1547 |
full-typed mode. |
|
1548 |
- Added support for TPTP syntax for SPASS via the "spass_tptp" ATP. |
|
1549 |
||
36928 | 1550 |
* Nitpick: |
1551 |
- Added and implemented "binary_ints" and "bits" options. |
|
1552 |
- Added "std" option and implemented support for nonstandard models. |
|
1553 |
- Added and implemented "finitize" option to improve the precision |
|
1554 |
of infinite datatypes based on a monotonicity analysis. |
|
1555 |
- Added support for quotient types. |
|
1556 |
- Added support for "specification" and "ax_specification" |
|
1557 |
constructs. |
|
1558 |
- Added support for local definitions (for "function" and |
|
1559 |
"termination" proofs). |
|
1560 |
- Added support for term postprocessors. |
|
1561 |
- Optimized "Multiset.multiset" and "FinFun.finfun". |
|
1562 |
- Improved efficiency of "destroy_constrs" optimization. |
|
1563 |
- Fixed soundness bugs related to "destroy_constrs" optimization and |
|
1564 |
record getters. |
|
37272 | 1565 |
- Fixed soundness bug related to higher-order constructors. |
1566 |
- Fixed soundness bug when "full_descrs" is enabled. |
|
36928 | 1567 |
- Improved precision of set constructs. |
37260
dde817e6dfb1
added "atoms" option to Nitpick (request from Karlsruhe) + wrap Refute. functions to "nitpick_util.ML"
blanchet
parents:
37158
diff
changeset
|
1568 |
- Added "atoms" option. |
36928 | 1569 |
- Added cache to speed up repeated Kodkod invocations on the same |
1570 |
problems. |
|
1571 |
- Renamed "MiniSatJNI", "zChaffJNI", "BerkMinAlloy", and |
|
1572 |
"SAT4JLight" to "MiniSat_JNI", "zChaff_JNI", "BerkMin_Alloy", and |
|
1573 |
"SAT4J_Light". INCOMPATIBILITY. |
|
1574 |
- Removed "skolemize", "uncurry", "sym_break", "flatten_prop", |
|
1575 |
"sharing_depth", and "show_skolems" options. INCOMPATIBILITY. |
|
37264
8b931fb51cc6
removed "nitpick_intro" attribute -- Nitpick noew uses Spec_Rules instead
blanchet
parents:
37260
diff
changeset
|
1576 |
- Removed "nitpick_intro" attribute. INCOMPATIBILITY. |
36928 | 1577 |
|
37361
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1578 |
* Method "induct" now takes instantiations of the form t, where t is not |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1579 |
a variable, as a shorthand for "x == t", where x is a fresh variable. |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1580 |
If this is not intended, t has to be enclosed in parentheses. |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1581 |
By default, the equalities generated by definitional instantiations |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1582 |
are pre-simplified, which may cause parameters of inductive cases |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1583 |
to disappear, or may even delete some of the inductive cases. |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1584 |
Use "induct (no_simp)" instead of "induct" to restore the old |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1585 |
behaviour. The (no_simp) option is also understood by the "cases" |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1586 |
and "nominal_induct" methods, which now perform pre-simplification, too. |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1587 |
INCOMPATIBILITY. |
250f487b3034
Documented changes in induct, cases, and nominal_induct method.
berghofe
parents:
37352
diff
changeset
|
1588 |
|
33993 | 1589 |
|
36828 | 1590 |
*** HOLCF *** |
1591 |
||
1592 |
* Variable names in lemmas generated by the domain package have |
|
1593 |
changed; the naming scheme is now consistent with the HOL datatype |
|
1594 |
package. Some proof scripts may be affected, INCOMPATIBILITY. |
|
1595 |
||
1596 |
* The domain package no longer defines the function "foo_copy" for |
|
1597 |
recursive domain "foo". The reach lemma is now stated directly in |
|
1598 |
terms of "foo_take". Lemmas and proofs that mention "foo_copy" must |
|
1599 |
be reformulated in terms of "foo_take", INCOMPATIBILITY. |
|
1600 |
||
1601 |
* Most definedness lemmas generated by the domain package (previously |
|
1602 |
of the form "x ~= UU ==> foo$x ~= UU") now have an if-and-only-if form |
|
1603 |
like "foo$x = UU <-> x = UU", which works better as a simp rule. |
|
37351 | 1604 |
Proofs that used definedness lemmas as intro rules may break, |
36828 | 1605 |
potential INCOMPATIBILITY. |
1606 |
||
1607 |
* Induction and casedist rules generated by the domain package now |
|
1608 |
declare proper case_names (one called "bottom", and one named for each |
|
1609 |
constructor). INCOMPATIBILITY. |
|
1610 |
||
1611 |
* For mutually-recursive domains, separate "reach" and "take_lemma" |
|
1612 |
rules are generated for each domain, INCOMPATIBILITY. |
|
1613 |
||
1614 |
foo_bar.reach ~> foo.reach bar.reach |
|
1615 |
foo_bar.take_lemmas ~> foo.take_lemma bar.take_lemma |
|
1616 |
||
1617 |
* Some lemmas generated by the domain package have been renamed for |
|
1618 |
consistency with the datatype package, INCOMPATIBILITY. |
|
1619 |
||
1620 |
foo.ind ~> foo.induct |
|
1621 |
foo.finite_ind ~> foo.finite_induct |
|
1622 |
foo.coind ~> foo.coinduct |
|
1623 |
foo.casedist ~> foo.exhaust |
|
1624 |
foo.exhaust ~> foo.nchotomy |
|
1625 |
||
1626 |
* For consistency with other definition packages, the fixrec package |
|
1627 |
now generates qualified theorem names, INCOMPATIBILITY. |
|
1628 |
||
1629 |
foo_simps ~> foo.simps |
|
1630 |
foo_unfold ~> foo.unfold |
|
1631 |
foo_induct ~> foo.induct |
|
1632 |
||
37087 | 1633 |
* The "fixrec_simp" attribute has been removed. The "fixrec_simp" |
1634 |
method and internal fixrec proofs now use the default simpset instead. |
|
1635 |
INCOMPATIBILITY. |
|
1636 |
||
36828 | 1637 |
* The "contlub" predicate has been removed. Proof scripts should use |
1638 |
lemma contI2 in place of monocontlub2cont, INCOMPATIBILITY. |
|
1639 |
||
1640 |
* The "admw" predicate has been removed, INCOMPATIBILITY. |
|
1641 |
||
1642 |
* The constants cpair, cfst, and csnd have been removed in favor of |
|
1643 |
Pair, fst, and snd from Isabelle/HOL, INCOMPATIBILITY. |
|
1644 |
||
1645 |
||
33993 | 1646 |
*** ML *** |
1647 |
||
37351 | 1648 |
* Antiquotations for basic formal entities: |
1649 |
||
1650 |
@{class NAME} -- type class |
|
1651 |
@{class_syntax NAME} -- syntax representation of the above |
|
1652 |
||
1653 |
@{type_name NAME} -- logical type |
|
1654 |
@{type_abbrev NAME} -- type abbreviation |
|
1655 |
@{nonterminal NAME} -- type of concrete syntactic category |
|
1656 |
@{type_syntax NAME} -- syntax representation of any of the above |
|
1657 |
||
1658 |
@{const_name NAME} -- logical constant (INCOMPATIBILITY) |
|
1659 |
@{const_abbrev NAME} -- abbreviated constant |
|
1660 |
@{const_syntax NAME} -- syntax representation of any of the above |
|
1661 |
||
1662 |
* Antiquotation @{syntax_const NAME} ensures that NAME refers to a raw |
|
1663 |
syntax constant (cf. 'syntax' command). |
|
1664 |
||
1665 |
* Antiquotation @{make_string} inlines a function to print arbitrary |
|
1666 |
values similar to the ML toplevel. The result is compiler dependent |
|
1667 |
and may fall back on "?" in certain situations. |
|
1668 |
||
1669 |
* Diagnostic commands 'ML_val' and 'ML_command' may refer to |
|
1670 |
antiquotations @{Isar.state} and @{Isar.goal}. This replaces impure |
|
1671 |
Isar.state() and Isar.goal(), which belong to the old TTY loop and do |
|
1672 |
not work with the asynchronous Isar document model. |
|
1673 |
||
1674 |
* Configuration options now admit dynamic default values, depending on |
|
1675 |
the context or even global references. |
|
1676 |
||
1677 |
* SHA1.digest digests strings according to SHA-1 (see RFC 3174). It |
|
1678 |
uses an efficient external library if available (for Poly/ML). |
|
1679 |
||
37144 | 1680 |
* Renamed some important ML structures, while keeping the old names |
1681 |
for some time as aliases within the structure Legacy: |
|
1682 |
||
1683 |
OuterKeyword ~> Keyword |
|
1684 |
OuterLex ~> Token |
|
1685 |
OuterParse ~> Parse |
|
1686 |
OuterSyntax ~> Outer_Syntax |
|
37216
3165bc303f66
modernized some structure names, keeping a few legacy aliases;
wenzelm
parents:
37158
diff
changeset
|
1687 |
PrintMode ~> Print_Mode |
37144 | 1688 |
SpecParse ~> Parse_Spec |
37216
3165bc303f66
modernized some structure names, keeping a few legacy aliases;
wenzelm
parents:
37158
diff
changeset
|
1689 |
ThyInfo ~> Thy_Info |
3165bc303f66
modernized some structure names, keeping a few legacy aliases;
wenzelm
parents:
37158
diff
changeset
|
1690 |
ThyLoad ~> Thy_Load |
3165bc303f66
modernized some structure names, keeping a few legacy aliases;
wenzelm
parents:
37158
diff
changeset
|
1691 |
ThyOutput ~> Thy_Output |
37145
01aa36932739
renamed structure TypeInfer to Type_Infer, keeping the old name as legacy alias for some time;
wenzelm
parents:
37144
diff
changeset
|
1692 |
TypeInfer ~> Type_Infer |
37144 | 1693 |
|
1694 |
Note that "open Legacy" simplifies porting of sources, but forgetting |
|
1695 |
to remove it again will complicate porting again in the future. |
|
1696 |
||
1697 |
* Most operations that refer to a global context are named |
|
1698 |
accordingly, e.g. Simplifier.global_context or |
|
1699 |
ProofContext.init_global. There are some situations where a global |
|
1700 |
context actually works, but under normal circumstances one needs to |
|
1701 |
pass the proper local context through the code! |
|
1702 |
||
1703 |
* Discontinued old TheoryDataFun with its copy/init operation -- data |
|
1704 |
needs to be pure. Functor Theory_Data_PP retains the traditional |
|
1705 |
Pretty.pp argument to merge, which is absent in the standard |
|
1706 |
Theory_Data version. |
|
36429
9d6b3be996d4
monotonic sort certification: sorts are no longer minimized at the kernel boundary, only when reading input from the end-user;
wenzelm
parents:
36416
diff
changeset
|
1707 |
|
37144 | 1708 |
* Sorts.certify_sort and derived "cert" operations for types and terms |
1709 |
no longer minimize sorts. Thus certification at the boundary of the |
|
1710 |
inference kernel becomes invariant under addition of class relations, |
|
1711 |
which is an important monotonicity principle. Sorts are now minimized |
|
1712 |
in the syntax layer only, at the boundary between the end-user and the |
|
1713 |
system. Subtle INCOMPATIBILITY, may have to use Sign.minimize_sort |
|
1714 |
explicitly in rare situations. |
|
1715 |
||
35021
c839a4c670c6
renamed old-style Drule.standard to Drule.export_without_context, to emphasize that this is in no way a standard operation;
wenzelm
parents:
35009
diff
changeset
|
1716 |
* Renamed old-style Drule.standard to Drule.export_without_context, to |
c839a4c670c6
renamed old-style Drule.standard to Drule.export_without_context, to emphasize that this is in no way a standard operation;
wenzelm
parents:
35009
diff
changeset
|
1717 |
emphasize that this is in no way a standard operation. |
c839a4c670c6
renamed old-style Drule.standard to Drule.export_without_context, to emphasize that this is in no way a standard operation;
wenzelm
parents:
35009
diff
changeset
|
1718 |
INCOMPATIBILITY. |
c839a4c670c6
renamed old-style Drule.standard to Drule.export_without_context, to emphasize that this is in no way a standard operation;
wenzelm
parents:
35009
diff
changeset
|
1719 |
|
34076
e3daf3c07381
Subgoal.FOCUS (and variants): resulting goal state is normalized as usual for resolution;
wenzelm
parents:
34062
diff
changeset
|
1720 |
* Subgoal.FOCUS (and variants): resulting goal state is normalized as |
e3daf3c07381
Subgoal.FOCUS (and variants): resulting goal state is normalized as usual for resolution;
wenzelm
parents:
34062
diff
changeset
|
1721 |
usual for resolution. Rare INCOMPATIBILITY. |
e3daf3c07381
Subgoal.FOCUS (and variants): resulting goal state is normalized as usual for resolution;
wenzelm
parents:
34062
diff
changeset
|
1722 |
|
35845
e5980f0ad025
renamed varify/unvarify operations to varify_global/unvarify_global to emphasize that these only work in a global situation;
wenzelm
parents:
35810
diff
changeset
|
1723 |
* Renamed varify/unvarify operations to varify_global/unvarify_global |
e5980f0ad025
renamed varify/unvarify operations to varify_global/unvarify_global to emphasize that these only work in a global situation;
wenzelm
parents:
35810
diff
changeset
|
1724 |
to emphasize that these only work in a global situation (which is |
e5980f0ad025
renamed varify/unvarify operations to varify_global/unvarify_global to emphasize that these only work in a global situation;
wenzelm
parents:
35810
diff
changeset
|
1725 |
quite rare). |
e5980f0ad025
renamed varify/unvarify operations to varify_global/unvarify_global to emphasize that these only work in a global situation;
wenzelm
parents:
35810
diff
changeset
|
1726 |
|
37144 | 1727 |
* Curried take and drop in library.ML; negative length is interpreted |
1728 |
as infinity (as in chop). Subtle INCOMPATIBILITY. |
|
36961 | 1729 |
|
37351 | 1730 |
* Proof terms: type substitutions on proof constants now use canonical |
1731 |
order of type variables. INCOMPATIBILITY for tools working with proof |
|
1732 |
terms. |
|
1733 |
||
1734 |
* Raw axioms/defs may no longer carry sort constraints, and raw defs |
|
1735 |
may no longer carry premises. User-level specifications are |
|
1736 |
transformed accordingly by Thm.add_axiom/add_def. |
|
1737 |
||
33993 | 1738 |
|
34238 | 1739 |
*** System *** |
1740 |
||
1741 |
* Discontinued special HOL_USEDIR_OPTIONS for the main HOL image; |
|
1742 |
ISABELLE_USEDIR_OPTIONS applies uniformly to all sessions. Note that |
|
1743 |
proof terms are enabled unconditionally in the new HOL-Proofs image. |
|
1744 |
||
34255
2dd2547acb41
discontinued old ISABELLE and ISATOOL environment settings;
wenzelm
parents:
34238
diff
changeset
|
1745 |
* Discontinued old ISABELLE and ISATOOL environment settings (legacy |
2dd2547acb41
discontinued old ISABELLE and ISATOOL environment settings;
wenzelm
parents:
34238
diff
changeset
|
1746 |
feature since Isabelle2009). Use ISABELLE_PROCESS and ISABELLE_TOOL, |
2dd2547acb41
discontinued old ISABELLE and ISATOOL environment settings;
wenzelm
parents:
34238
diff
changeset
|
1747 |
respectively. |
2dd2547acb41
discontinued old ISABELLE and ISATOOL environment settings;
wenzelm
parents:
34238
diff
changeset
|
1748 |
|
36201
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1749 |
* Old lib/scripts/polyml-platform is superseded by the |
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1750 |
ISABELLE_PLATFORM setting variable, which defaults to the 32 bit |
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1751 |
variant, even on a 64 bit machine. The following example setting |
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1752 |
prefers 64 bit if available: |
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1753 |
|
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1754 |
ML_PLATFORM="${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}" |
07d4f74abd12
polyml-platform script is superseded by ISABELLE_PLATFORM;
wenzelm
parents:
36178
diff
changeset
|
1755 |
|
37218 | 1756 |
* The preliminary Isabelle/jEdit application demonstrates the emerging |
1757 |
Isabelle/Scala layer for advanced prover interaction and integration. |
|
1758 |
See src/Tools/jEdit or "isabelle jedit" provided by the properly built |
|
1759 |
component. |
|
1760 |
||
37375 | 1761 |
* "IsabelleText" is a Unicode font derived from Bitstream Vera Mono |
1762 |
and Bluesky TeX fonts. It provides the usual Isabelle symbols, |
|
1763 |
similar to the default assignment of the document preparation system |
|
1764 |
(cf. isabellesym.sty). The Isabelle/Scala class Isabelle_System |
|
1765 |
provides some operations for direct access to the font without asking |
|
1766 |
the user for manual installation. |
|
1767 |
||
34238 | 1768 |
|
33993 | 1769 |
|
33842 | 1770 |
New in Isabelle2009-1 (December 2009) |
1771 |
------------------------------------- |
|
30904 | 1772 |
|
31547 | 1773 |
*** General *** |
1774 |
||
1775 |
* Discontinued old form of "escaped symbols" such as \\<forall>. Only |
|
1776 |
one backslash should be used, even in ML sources. |
|
1777 |
||
1778 |
||
30951
a6e26a248f03
formal declaration of undefined parameters after class instantiation
haftmann
parents:
30949
diff
changeset
|
1779 |
*** Pure *** |
a6e26a248f03
formal declaration of undefined parameters after class instantiation
haftmann
parents:
30949
diff
changeset
|
1780 |
|
32846
29941e925c82
News entry: inheritance of mixins; print_interps.
ballarin
parents:
32775
diff
changeset
|
1781 |
* Locale interpretation propagates mixins along the locale hierarchy. |
29941e925c82
News entry: inheritance of mixins; print_interps.
ballarin
parents:
32775
diff
changeset
|
1782 |
The currently only available mixins are the equations used to map |
29941e925c82
News entry: inheritance of mixins; print_interps.
ballarin
parents:
32775
diff
changeset
|
1783 |
local definitions to terms of the target domain of an interpretation. |
29941e925c82
News entry: inheritance of mixins; print_interps.
ballarin
parents:
32775
diff
changeset
|
1784 |
|
33842 | 1785 |
* Reactivated diagnostic command 'print_interps'. Use "print_interps |
1786 |
loc" to print all interpretations of locale "loc" in the theory. |
|
1787 |
Interpretations in proofs are not shown. |
|
32846
29941e925c82
News entry: inheritance of mixins; print_interps.
ballarin
parents:
32775
diff
changeset
|
1788 |
|
32983 | 1789 |
* Thoroughly revised locales tutorial. New section on conditional |
1790 |
interpretation. |
|
1791 |
||
33843 | 1792 |
* On instantiation of classes, remaining undefined class parameters |
1793 |
are formally declared. INCOMPATIBILITY. |
|
1794 |
||
30951
a6e26a248f03
formal declaration of undefined parameters after class instantiation
haftmann
parents:
30949
diff
changeset
|
1795 |
|
33842 | 1796 |
*** Document preparation *** |
1797 |
||
1798 |
* New generalized style concept for printing terms: @{foo (style) ...} |
|
1799 |
instead of @{foo_style style ...} (old form is still retained for |
|
1800 |
backward compatibility). Styles can be also applied for |
|
1801 |
antiquotations prop, term_type and typeof. |
|
32891 | 1802 |
|
1803 |
||
30930 | 1804 |
*** HOL *** |
1805 |
||
33842 | 1806 |
* New proof method "smt" for a combination of first-order logic with |
1807 |
equality, linear and nonlinear (natural/integer/real) arithmetic, and |
|
1808 |
fixed-size bitvectors; there is also basic support for higher-order |
|
1809 |
features (esp. lambda abstractions). It is an incomplete decision |
|
1810 |
procedure based on external SMT solvers using the oracle mechanism; |
|
1811 |
for the SMT solver Z3, this method is proof-producing. Certificates |
|
1812 |
are provided to avoid calling the external solvers solely for |
|
1813 |
re-checking proofs. Due to a remote SMT service there is no need for |
|
1814 |
installing SMT solvers locally. See src/HOL/SMT. |
|
1815 |
||
1816 |
* New commands to load and prove verification conditions generated by |
|
1817 |
the Boogie program verifier or derived systems (e.g. the Verifying C |
|
1818 |
Compiler (VCC) or Spec#). See src/HOL/Boogie. |
|
1819 |
||
1820 |
* New counterexample generator tool 'nitpick' based on the Kodkod |
|
1821 |
relational model finder. See src/HOL/Tools/Nitpick and |
|
1822 |
src/HOL/Nitpick_Examples. |
|
1823 |
||
33860 | 1824 |
* New commands 'code_pred' and 'values' to invoke the predicate |
1825 |
compiler and to enumerate values of inductive predicates. |
|
1826 |
||
1827 |
* A tabled implementation of the reflexive transitive closure. |
|
1828 |
||
1829 |
* New implementation of quickcheck uses generic code generator; |
|
1830 |
default generators are provided for all suitable HOL types, records |
|
1831 |
and datatypes. Old quickcheck can be re-activated importing theory |
|
1832 |
Library/SML_Quickcheck. |
|
1833 |
||
33843 | 1834 |
* New testing tool Mirabelle for automated proof tools. Applies |
1835 |
several tools and tactics like sledgehammer, metis, or quickcheck, to |
|
1836 |
every proof step in a theory. To be used in batch mode via the |
|
1837 |
"mirabelle" utility. |
|
1838 |
||
1839 |
* New proof method "sos" (sum of squares) for nonlinear real |
|
1840 |
arithmetic (originally due to John Harison). It requires theory |
|
1841 |
Library/Sum_Of_Squares. It is not a complete decision procedure but |
|
1842 |
works well in practice on quantifier-free real arithmetic with +, -, |
|
1843 |
*, ^, =, <= and <, i.e. boolean combinations of equalities and |
|
1844 |
inequalities between polynomials. It makes use of external |
|
1845 |
semidefinite programming solvers. Method "sos" generates a |
|
1846 |
certificate that can be pasted into the proof thus avoiding the need |
|
1847 |
to call an external tool every time the proof is checked. See |
|
1848 |
src/HOL/Library/Sum_Of_Squares. |
|
1849 |
||
1850 |
* New method "linarith" invokes existing linear arithmetic decision |
|
1851 |
procedure only. |
|
1852 |
||
1853 |
* New command 'atp_minimal' reduces result produced by Sledgehammer. |
|
1854 |
||
1855 |
* New Sledgehammer option "Full Types" in Proof General settings menu. |
|
1856 |
Causes full type information to be output to the ATPs. This slows |
|
1857 |
ATPs down considerably but eliminates a source of unsound "proofs" |
|
1858 |
that fail later. |
|
1859 |
||
1860 |
* New method "metisFT": A version of metis that uses full type |
|
1861 |
information in order to avoid failures of proof reconstruction. |
|
1862 |
||
1863 |
* New evaluator "approximate" approximates an real valued term using |
|
1864 |
the same method as the approximation method. |
|
1865 |
||
1866 |
* Method "approximate" now supports arithmetic expressions as |
|
1867 |
boundaries of intervals and implements interval splitting and Taylor |
|
1868 |
series expansion. |
|
1869 |
||
1870 |
* ML antiquotation @{code_datatype} inserts definition of a datatype |
|
1871 |
generated by the code generator; e.g. see src/HOL/Predicate.thy. |
|
1872 |
||
33860 | 1873 |
* New theory SupInf of the supremum and infimum operators for sets of |
1874 |
reals. |
|
1875 |
||
1876 |
* New theory Probability, which contains a development of measure |
|
1877 |
theory, eventually leading to Lebesgue integration and probability. |
|
1878 |
||
1879 |
* Extended Multivariate Analysis to include derivation and Brouwer's |
|
1880 |
fixpoint theorem. |
|
33843 | 1881 |
|
33842 | 1882 |
* Reorganization of number theory, INCOMPATIBILITY: |
33873 | 1883 |
- new number theory development for nat and int, in theories Divides |
1884 |
and GCD as well as in new session Number_Theory |
|
1885 |
- some constants and facts now suffixed with _nat and _int |
|
1886 |
accordingly |
|
1887 |
- former session NumberTheory now named Old_Number_Theory, including |
|
1888 |
theories Legacy_GCD and Primes (prefer Number_Theory if possible) |
|
33842 | 1889 |
- moved theory Pocklington from src/HOL/Library to |
1890 |
src/HOL/Old_Number_Theory |
|
32479 | 1891 |
|
33873 | 1892 |
* Theory GCD includes functions Gcd/GCD and Lcm/LCM for the gcd and |
1893 |
lcm of finite and infinite sets. It is shown that they form a complete |
|
32600 | 1894 |
lattice. |
1895 |
||
1896 |
* Class semiring_div requires superclass no_zero_divisors and proof of |
|
1897 |
div_mult_mult1; theorems div_mult_mult1, div_mult_mult2, |
|
1898 |
div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been |
|
1899 |
generalized to class semiring_div, subsuming former theorems |
|
1900 |
zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and |
|
1901 |
zdiv_zmult_zmult2. div_mult_mult1 is now [simp] by default. |
|
1902 |
INCOMPATIBILITY. |
|
1903 |
||
32588
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1904 |
* Refinements to lattice classes and sets: |
32064 | 1905 |
- less default intro/elim rules in locale variant, more default |
1906 |
intro/elim rules in class variant: more uniformity |
|
33842 | 1907 |
- lemma ge_sup_conv renamed to le_sup_iff, in accordance with |
1908 |
le_inf_iff |
|
1909 |
- dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and |
|
1910 |
sup_aci) |
|
32064 | 1911 |
- renamed ACI to inf_sup_aci |
32600 | 1912 |
- new class "boolean_algebra" |
33842 | 1913 |
- class "complete_lattice" moved to separate theory |
33860 | 1914 |
"Complete_Lattice"; corresponding constants (and abbreviations) |
33842 | 1915 |
renamed and with authentic syntax: |
33860 | 1916 |
Set.Inf ~> Complete_Lattice.Inf |
1917 |
Set.Sup ~> Complete_Lattice.Sup |
|
1918 |
Set.INFI ~> Complete_Lattice.INFI |
|
1919 |
Set.SUPR ~> Complete_Lattice.SUPR |
|
1920 |
Set.Inter ~> Complete_Lattice.Inter |
|
1921 |
Set.Union ~> Complete_Lattice.Union |
|
1922 |
Set.INTER ~> Complete_Lattice.INTER |
|
1923 |
Set.UNION ~> Complete_Lattice.UNION |
|
32600 | 1924 |
- authentic syntax for |
1925 |
Set.Pow |
|
1926 |
Set.image |
|
32588
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1927 |
- mere abbreviations: |
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1928 |
Set.empty (for bot) |
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1929 |
Set.UNIV (for top) |
33860 | 1930 |
Set.inter (for inf, formerly Set.Int) |
1931 |
Set.union (for sup, formerly Set.Un) |
|
32588
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1932 |
Complete_Lattice.Inter (for Inf) |
5e06a1634e55
Inter and Union are mere abbreviations for Inf and Sup; tuned
haftmann
parents:
32485
diff
changeset
|
1933 |
Complete_Lattice.Union (for Sup) |
32606
b5c3a8a75772
INTER and UNION are mere abbreviations for INFI and SUPR
haftmann
parents:
32600
diff
changeset
|
1934 |
Complete_Lattice.INTER (for INFI) |
b5c3a8a75772
INTER and UNION are mere abbreviations for INFI and SUPR
haftmann
parents:
32600
diff
changeset
|
1935 |
Complete_Lattice.UNION (for SUPR) |
32600 | 1936 |
- object-logic definitions as far as appropriate |
32217 | 1937 |
|
32691 | 1938 |
INCOMPATIBILITY. Care is required when theorems Int_subset_iff or |
33842 | 1939 |
Un_subset_iff are explicitly deleted as default simp rules; then also |
1940 |
their lattice counterparts le_inf_iff and le_sup_iff have to be |
|
32691 | 1941 |
deleted to achieve the desired effect. |
32064 | 1942 |
|
33842 | 1943 |
* Rules inf_absorb1, inf_absorb2, sup_absorb1, sup_absorb2 are no simp |
1944 |
rules by default any longer; the same applies to min_max.inf_absorb1 |
|
1945 |
etc. INCOMPATIBILITY. |
|
1946 |
||
1947 |
* Rules sup_Int_eq and sup_Un_eq are no longer declared as |
|
1948 |
pred_set_conv by default. INCOMPATIBILITY. |
|
1949 |
||
1950 |
* Power operations on relations and functions are now one dedicated |
|
32706 | 1951 |
constant "compow" with infix syntax "^^". Power operation on |
31547 | 1952 |
multiplicative monoids retains syntax "^" and is now defined generic |
1953 |
in class power. INCOMPATIBILITY. |
|
1954 |
||
33842 | 1955 |
* Relation composition "R O S" now has a more standard argument order: |
1956 |
"R O S = {(x, z). EX y. (x, y) : R & (y, z) : S}". INCOMPATIBILITY, |
|
1957 |
rewrite propositions with "S O R" --> "R O S". Proofs may occasionally |
|
1958 |
break, since the O_assoc rule was not rewritten like this. Fix using |
|
1959 |
O_assoc[symmetric]. The same applies to the curried version "R OO S". |
|
32427 | 1960 |
|
33057 | 1961 |
* Function "Inv" is renamed to "inv_into" and function "inv" is now an |
33842 | 1962 |
abbreviation for "inv_into UNIV". Lemmas are renamed accordingly. |
32988 | 1963 |
INCOMPATIBILITY. |
1964 |
||
33860 | 1965 |
* Most rules produced by inductive and datatype package have mandatory |
1966 |
prefixes. INCOMPATIBILITY. |
|
31790 | 1967 |
|
33842 | 1968 |
* Changed "DERIV_intros" to a dynamic fact, which can be augmented by |
1969 |
the attribute of the same name. Each of the theorems in the list |
|
1970 |
DERIV_intros assumes composition with an additional function and |
|
1971 |
matches a variable to the derivative, which has to be solved by the |
|
1972 |
Simplifier. Hence (auto intro!: DERIV_intros) computes the derivative |
|
33873 | 1973 |
of most elementary terms. Former Maclauren.DERIV_tac and |
1974 |
Maclauren.deriv_tac should be replaced by (auto intro!: DERIV_intros). |
|
1975 |
INCOMPATIBILITY. |
|
33860 | 1976 |
|
1977 |
* Code generator attributes follow the usual underscore convention: |
|
1978 |
code_unfold replaces code unfold |
|
1979 |
code_post replaces code post |
|
1980 |
etc. |
|
1981 |
INCOMPATIBILITY. |
|
31900 | 1982 |
|
33471 | 1983 |
* Renamed methods: |
1984 |
sizechange -> size_change |
|
1985 |
induct_scheme -> induction_schema |
|
33860 | 1986 |
INCOMPATIBILITY. |
33673 | 1987 |
|
33843 | 1988 |
* Discontinued abbreviation "arbitrary" of constant "undefined". |
1989 |
INCOMPATIBILITY, use "undefined" directly. |
|
1990 |
||
33860 | 1991 |
* Renamed theorems: |
1992 |
Suc_eq_add_numeral_1 -> Suc_eq_plus1 |
|
1993 |
Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left |
|
1994 |
Suc_plus1 -> Suc_eq_plus1 |
|
1995 |
*anti_sym -> *antisym* |
|
1996 |
vector_less_eq_def -> vector_le_def |
|
1997 |
INCOMPATIBILITY. |
|
1998 |
||
1999 |
* Added theorem List.map_map as [simp]. Removed List.map_compose. |
|
2000 |
INCOMPATIBILITY. |
|
2001 |
||
2002 |
* Removed predicate "M hassize n" (<--> card M = n & finite M). |
|
2003 |
INCOMPATIBILITY. |
|
2004 |
||
31812 | 2005 |
|
33825 | 2006 |
*** HOLCF *** |
2007 |
||
33842 | 2008 |
* Theory Representable defines a class "rep" of domains that are |
2009 |
representable (via an ep-pair) in the universal domain type "udom". |
|
33825 | 2010 |
Instances are provided for all type constructors defined in HOLCF. |
2011 |
||
2012 |
* The 'new_domain' command is a purely definitional version of the |
|
2013 |
domain package, for representable domains. Syntax is identical to the |
|
2014 |
old domain package. The 'new_domain' package also supports indirect |
|
2015 |
recursion using previously-defined type constructors. See |
|
33842 | 2016 |
src/HOLCF/ex/New_Domain.thy for examples. |
2017 |
||
2018 |
* Method "fixrec_simp" unfolds one step of a fixrec-defined constant |
|
33825 | 2019 |
on the left-hand side of an equation, and then performs |
2020 |
simplification. Rewriting is done using rules declared with the |
|
33842 | 2021 |
"fixrec_simp" attribute. The "fixrec_simp" method is intended as a |
2022 |
replacement for "fixpat"; see src/HOLCF/ex/Fixrec_ex.thy for examples. |
|
33825 | 2023 |
|
2024 |
* The pattern-match compiler in 'fixrec' can now handle constructors |
|
2025 |
with HOL function types. Pattern-match combinators for the Pair |
|
2026 |
constructor are pre-configured. |
|
2027 |
||
2028 |
* The 'fixrec' package now produces better fixed-point induction rules |
|
2029 |
for mutually-recursive definitions: Induction rules have conclusions |
|
2030 |
of the form "P foo bar" instead of "P <foo, bar>". |
|
2031 |
||
2032 |
* The constant "sq_le" (with infix syntax "<<" or "\<sqsubseteq>") has |
|
2033 |
been renamed to "below". The name "below" now replaces "less" in many |
|
33842 | 2034 |
theorem names. (Legacy theorem names using "less" are still supported |
2035 |
as well.) |
|
33825 | 2036 |
|
2037 |
* The 'fixrec' package now supports "bottom patterns". Bottom |
|
2038 |
patterns can be used to generate strictness rules, or to make |
|
2039 |
functions more strict (much like the bang-patterns supported by the |
|
33873 | 2040 |
Glasgow Haskell Compiler). See src/HOLCF/ex/Fixrec_ex.thy for |
2041 |
examples. |
|
33825 | 2042 |
|
2043 |
||
31304 | 2044 |
*** ML *** |
2045 |
||
33843 | 2046 |
* Support for Poly/ML 5.3.0, with improved reporting of compiler |
2047 |
errors and run-time exceptions, including detailed source positions. |
|
2048 |
||
2049 |
* Structure Name_Space (formerly NameSpace) now manages uniquely |
|
2050 |
identified entries, with some additional information such as source |
|
2051 |
position, logical grouping etc. |
|
2052 |
||
33524
a08e6c1cbc04
updated functor Theory_Data, Proof_Data, Generic_Data;
wenzelm
parents:
33472
diff
changeset
|
2053 |
* Theory and context data is now introduced by the simplified and |
a08e6c1cbc04
updated functor Theory_Data, Proof_Data, Generic_Data;
wenzelm
parents:
33472
diff
changeset
|
2054 |
modernized functors Theory_Data, Proof_Data, Generic_Data. Data needs |
a08e6c1cbc04
updated functor Theory_Data, Proof_Data, Generic_Data;
wenzelm
parents:
33472
diff
changeset
|
2055 |
to be pure, but the old TheoryDataFun for mutable data (with explicit |
a08e6c1cbc04
updated functor Theory_Data, Proof_Data, Generic_Data;
wenzelm
parents:
33472
diff
changeset
|
2056 |
copy operation) is still available for some time. |
a08e6c1cbc04
updated functor Theory_Data, Proof_Data, Generic_Data;
wenzelm
parents:
33472
diff
changeset
|
2057 |
|
32742 | 2058 |
* Structure Synchronized (cf. src/Pure/Concurrent/synchronized.ML) |
2059 |
provides a high-level programming interface to synchronized state |
|
2060 |
variables with atomic update. This works via pure function |
|
2061 |
application within a critical section -- its runtime should be as |
|
2062 |
short as possible; beware of deadlocks if critical code is nested, |
|
2063 |
either directly or indirectly via other synchronized variables! |
|
2064 |
||
2065 |
* Structure Unsynchronized (cf. src/Pure/ML-Systems/unsynchronized.ML) |
|
2066 |
wraps raw ML references, explicitly indicating their non-thread-safe |
|
2067 |
behaviour. The Isar toplevel keeps this structure open, to |
|
2068 |
accommodate Proof General as well as quick and dirty interactive |
|
2069 |
experiments with references. |
|
2070 |
||
32365 | 2071 |
* PARALLEL_CHOICE and PARALLEL_GOALS provide basic support for |
2072 |
parallel tactical reasoning. |
|
2073 |
||
32427 | 2074 |
* Tacticals Subgoal.FOCUS, Subgoal.FOCUS_PREMS, Subgoal.FOCUS_PARAMS |
2075 |
are similar to SUBPROOF, but are slightly more flexible: only the |
|
2076 |
specified parts of the subgoal are imported into the context, and the |
|
2077 |
body tactic may introduce new subgoals and schematic variables. |
|
2078 |
||
2079 |
* Old tactical METAHYPS, which does not observe the proof context, has |
|
2080 |
been renamed to Old_Goals.METAHYPS and awaits deletion. Use SUBPROOF |
|
2081 |
or Subgoal.FOCUS etc. |
|
32216 | 2082 |
|
31971
8c1b845ed105
renamed functor TableFun to Table, and GraphFun to Graph;
wenzelm
parents:
31901
diff
changeset
|
2083 |
* Renamed functor TableFun to Table, and GraphFun to Graph. (Since |
8c1b845ed105
renamed functor TableFun to Table, and GraphFun to Graph;
wenzelm
parents:
31901
diff
changeset
|
2084 |
functors have their own ML name space there is no point to mark them |
8c1b845ed105
renamed functor TableFun to Table, and GraphFun to Graph;
wenzelm
parents:
31901
diff
changeset
|
2085 |
separately.) Minor INCOMPATIBILITY. |
8c1b845ed105
renamed functor TableFun to Table, and GraphFun to Graph;
wenzelm
parents:
31901
diff
changeset
|
2086 |
|
31901 | 2087 |
* Renamed NamedThmsFun to Named_Thms. INCOMPATIBILITY. |
2088 |
||
33842 | 2089 |
* Renamed several structures FooBar to Foo_Bar. Occasional, |
2090 |
INCOMPATIBILITY. |
|
2091 |
||
33843 | 2092 |
* Operations of structure Skip_Proof no longer require quick_and_dirty |
2093 |
mode, which avoids critical setmp. |
|
2094 |
||
31306
a74ee84288a0
eliminated old Attrib.add_attributes (and Attrib.syntax);
wenzelm
parents:
31304
diff
changeset
|
2095 |
* Eliminated old Attrib.add_attributes, Method.add_methods and related |
33842 | 2096 |
combinators for "args". INCOMPATIBILITY, need to use simplified |
31306
a74ee84288a0
eliminated old Attrib.add_attributes (and Attrib.syntax);
wenzelm
parents:
31304
diff
changeset
|
2097 |
Attrib/Method.setup introduced in Isabelle2009. |
31304 | 2098 |
|
32151
2f65c45c2e7e
Proper context for simpset_of, claset_of, clasimpset_of.
wenzelm
parents:
32136
diff
changeset
|
2099 |
* Proper context for simpset_of, claset_of, clasimpset_of. May fall |
2f65c45c2e7e
Proper context for simpset_of, claset_of, clasimpset_of.
wenzelm
parents:
32136
diff
changeset
|
2100 |
back on global_simpset_of, global_claset_of, global_clasimpset_of as |
2f65c45c2e7e
Proper context for simpset_of, claset_of, clasimpset_of.
wenzelm
parents:
32136
diff
changeset
|
2101 |
last resort. INCOMPATIBILITY. |
2f65c45c2e7e
Proper context for simpset_of, claset_of, clasimpset_of.
wenzelm
parents:
32136
diff
changeset
|
2102 |
|
32092
6a5995438266
Display.pretty_thm now requires a proper context;
wenzelm
parents:
32079
diff
changeset
|
2103 |
* Display.pretty_thm now requires a proper context (cf. former |
6a5995438266
Display.pretty_thm now requires a proper context;
wenzelm
parents:
32079
diff
changeset
|
2104 |
ProofContext.pretty_thm). May fall back on Display.pretty_thm_global |
6a5995438266
Display.pretty_thm now requires a proper context;
wenzelm
parents:
32079
diff
changeset
|
2105 |
or even Display.pretty_thm_without_context as last resort. |
6a5995438266
Display.pretty_thm now requires a proper context;
wenzelm
parents:
32079
diff
changeset
|
2106 |
INCOMPATIBILITY. |
6a5995438266
Display.pretty_thm now requires a proper context;
wenzelm
parents:
32079
diff
changeset
|
2107 |
|
32433 | 2108 |
* Discontinued Display.pretty_ctyp/cterm etc. INCOMPATIBILITY, use |
2109 |
Syntax.pretty_typ/term directly, preferably with proper context |
|
2110 |
instead of global theory. |
|
2111 |
||
31304 | 2112 |
|
31308 | 2113 |
*** System *** |
2114 |
||
33842 | 2115 |
* Further fine tuning of parallel proof checking, scales up to 8 cores |
2116 |
(max. speedup factor 5.0). See also Goal.parallel_proofs in ML and |
|
2117 |
usedir option -q. |
|
2118 |
||
32326 | 2119 |
* Support for additional "Isabelle components" via etc/components, see |
2120 |
also the system manual. |
|
2121 |
||
2122 |
* The isabelle makeall tool now operates on all components with |
|
2123 |
IsaMakefile, not just hardwired "logics". |
|
2124 |
||
33842 | 2125 |
* Removed "compress" option from isabelle-process and isabelle usedir; |
2126 |
this is always enabled. |
|
33818 | 2127 |
|
31308 | 2128 |
* Discontinued support for Poly/ML 4.x versions. |
2129 |
||
33842 | 2130 |
* Isabelle tool "wwwfind" provides web interface for 'find_theorems' |
2131 |
on a given logic image. This requires the lighttpd webserver and is |
|
2132 |
currently supported on Linux only. |
|
32061
11f8ee55662d
parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents:
31997
diff
changeset
|
2133 |
|
31308 | 2134 |
|
31304 | 2135 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2136 |
New in Isabelle2009 (April 2009) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2137 |
-------------------------------- |
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2138 |
|
27599 | 2139 |
*** General *** |
2140 |
||
28504
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2141 |
* Simplified main Isabelle executables, with less surprises on |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2142 |
case-insensitive file-systems (such as Mac OS). |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2143 |
|
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2144 |
- The main Isabelle tool wrapper is now called "isabelle" instead of |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2145 |
"isatool." |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2146 |
|
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2147 |
- The former "isabelle" alias for "isabelle-process" has been |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2148 |
removed (should rarely occur to regular users). |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2149 |
|
28915
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2150 |
- The former "isabelle-interface" and its alias "Isabelle" have been |
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2151 |
removed (interfaces are now regular Isabelle tools). |
28504
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2152 |
|
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2153 |
Within scripts and make files, the Isabelle environment variables |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2154 |
ISABELLE_TOOL and ISABELLE_PROCESS replace old ISATOOL and ISABELLE, |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2155 |
respectively. (The latter are still available as legacy feature.) |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2156 |
|
28915
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2157 |
The old isabelle-interface wrapper could react in confusing ways if |
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2158 |
the interface was uninstalled or changed otherwise. Individual |
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2159 |
interface tool configuration is now more explicit, see also the |
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2160 |
Isabelle system manual. In particular, Proof General is now available |
0642cbb60c98
removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
28914
diff
changeset
|
2161 |
via "isabelle emacs". |
28504
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2162 |
|
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2163 |
INCOMPATIBILITY, need to adapt derivative scripts. Users may need to |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2164 |
purge installed copies of Isabelle executables and re-run "isabelle |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2165 |
install -p ...", or use symlinks. |
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents:
28475
diff
changeset
|
2166 |
|
28914
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2167 |
* The default for ISABELLE_HOME_USER is now ~/.isabelle instead of the |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2168 |
old ~/isabelle, which was slightly non-standard and apt to cause |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2169 |
surprises on case-insensitive file-systems (such as Mac OS). |
28914
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2170 |
|
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2171 |
INCOMPATIBILITY, need to move existing ~/isabelle/etc, |
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2172 |
~/isabelle/heaps, ~/isabelle/browser_info to the new place. Special |
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2173 |
care is required when using older releases of Isabelle. Note that |
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2174 |
ISABELLE_HOME_USER can be changed in Isabelle/etc/settings of any |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2175 |
Isabelle distribution, in order to use the new ~/.isabelle uniformly. |
28914
f993cbffc42a
default for ISABELLE_HOME_USER is now ~/.isabelle instead of ~/isabelle;
wenzelm
parents:
28856
diff
changeset
|
2176 |
|
29161
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2177 |
* Proofs of fully specified statements are run in parallel on |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2178 |
multi-core systems. A speedup factor of 2.5 to 3.2 can be expected on |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2179 |
a regular 4-core machine, if the initial heap space is made reasonably |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2180 |
large (cf. Poly/ML option -H). (Requires Poly/ML 5.2.1 or later.) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2181 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2182 |
* The main reference manuals ("isar-ref", "implementation", and |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2183 |
"system") have been updated and extended. Formally checked references |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2184 |
as hyperlinks are now available uniformly. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2185 |
|
30163
faf95eb3f375
* New prover for coherent logic (see src/Tools/coherent.ML).
wenzelm
parents:
30106
diff
changeset
|
2186 |
|
27599 | 2187 |
*** Pure *** |
2188 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2189 |
* Complete re-implementation of locales. INCOMPATIBILITY in several |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2190 |
respects. The most important changes are listed below. See the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2191 |
Tutorial on Locales ("locales" manual) for details. |
29253 | 2192 |
|
2193 |
- In locale expressions, instantiation replaces renaming. Parameters |
|
2194 |
must be declared in a for clause. To aid compatibility with previous |
|
2195 |
parameter inheritance, in locale declarations, parameters that are not |
|
2196 |
'touched' (instantiation position "_" or omitted) are implicitly added |
|
2197 |
with their syntax at the beginning of the for clause. |
|
2198 |
||
2199 |
- Syntax from abbreviations and definitions in locales is available in |
|
2200 |
locale expressions and context elements. The latter is particularly |
|
2201 |
useful in locale declarations. |
|
2202 |
||
2203 |
- More flexible mechanisms to qualify names generated by locale |
|
2204 |
expressions. Qualifiers (prefixes) may be specified in locale |
|
30728
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2205 |
expressions, and can be marked as mandatory (syntax: "name!:") or |
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2206 |
optional (syntax "name?:"). The default depends for plain "name:" |
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2207 |
depends on the situation where a locale expression is used: in |
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2208 |
commands 'locale' and 'sublocale' prefixes are optional, in |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2209 |
'interpretation' and 'interpret' prefixes are mandatory. The old |
30728
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2210 |
implicit qualifiers derived from the parameter names of a locale are |
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2211 |
no longer generated. |
30106 | 2212 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2213 |
- Command "sublocale l < e" replaces "interpretation l < e". The |
30106 | 2214 |
instantiation clause in "interpretation" and "interpret" (square |
2215 |
brackets) is no longer available. Use locale expressions. |
|
29253 | 2216 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2217 |
- When converting proof scripts, mandatory qualifiers in |
30728
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2218 |
'interpretation' and 'interpret' should be retained by default, even |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2219 |
if this is an INCOMPATIBILITY compared to former behavior. In the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2220 |
worst case, use the "name?:" form for non-mandatory ones. Qualifiers |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2221 |
in locale expressions range over a single locale instance only. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2222 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2223 |
- Dropped locale element "includes". This is a major INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2224 |
In existing theorem specifications replace the includes element by the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2225 |
respective context elements of the included locale, omitting those |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2226 |
that are already present in the theorem specification. Multiple |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2227 |
assume elements of a locale should be replaced by a single one |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2228 |
involving the locale predicate. In the proof body, declarations (most |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2229 |
notably theorems) may be regained by interpreting the respective |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2230 |
locales in the proof context as required (command "interpret"). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2231 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2232 |
If using "includes" in replacement of a target solely because the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2233 |
parameter types in the theorem are not as general as in the target, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2234 |
consider declaring a new locale with additional type constraints on |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2235 |
the parameters (context element "constrains"). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2236 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2237 |
- Discontinued "locale (open)". INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2238 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2239 |
- Locale interpretation commands no longer attempt to simplify goal. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2240 |
INCOMPATIBILITY: in rare situations the generated goal differs. Use |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2241 |
methods intro_locales and unfold_locales to clarify. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2242 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2243 |
- Locale interpretation commands no longer accept interpretation |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2244 |
attributes. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2245 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2246 |
* Class declaration: so-called "base sort" must not be given in import |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2247 |
list any longer, but is inferred from the specification. Particularly |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2248 |
in HOL, write |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2249 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2250 |
class foo = ... |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2251 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2252 |
instead of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2253 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2254 |
class foo = type + ... |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2255 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2256 |
* Class target: global versions of theorems stemming do not carry a |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2257 |
parameter prefix any longer. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2258 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2259 |
* Class 'instance' command no longer accepts attached definitions. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2260 |
INCOMPATIBILITY, use proper 'instantiation' target instead. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2261 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2262 |
* Recovered hiding of consts, which was accidentally broken in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2263 |
Isabelle2007. Potential INCOMPATIBILITY, ``hide const c'' really |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2264 |
makes c inaccessible; consider using ``hide (open) const c'' instead. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2265 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2266 |
* Slightly more coherent Pure syntax, with updated documentation in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2267 |
isar-ref manual. Removed locales meta_term_syntax and |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2268 |
meta_conjunction_syntax: TERM and &&& (formerly &&) are now permanent, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2269 |
INCOMPATIBILITY in rare situations. Note that &&& should not be used |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2270 |
directly in regular applications. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2271 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2272 |
* There is a new syntactic category "float_const" for signed decimal |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2273 |
fractions (e.g. 123.45 or -123.45). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2274 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2275 |
* Removed exotic 'token_translation' command. INCOMPATIBILITY, use ML |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2276 |
interface with 'setup' command instead. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2277 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2278 |
* Command 'local_setup' is similar to 'setup', but operates on a local |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2279 |
theory context. |
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2280 |
|
28114 | 2281 |
* The 'axiomatization' command now only works within a global theory |
2282 |
context. INCOMPATIBILITY. |
|
2283 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2284 |
* Goal-directed proof now enforces strict proof irrelevance wrt. sort |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2285 |
hypotheses. Sorts required in the course of reasoning need to be |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2286 |
covered by the constraints in the initial statement, completed by the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2287 |
type instance information of the background theory. Non-trivial sort |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2288 |
hypotheses, which rarely occur in practice, may be specified via |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2289 |
vacuous propositions of the form SORT_CONSTRAINT('a::c). For example: |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2290 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2291 |
lemma assumes "SORT_CONSTRAINT('a::empty)" shows False ... |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2292 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2293 |
The result contains an implicit sort hypotheses as before -- |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2294 |
SORT_CONSTRAINT premises are eliminated as part of the canonical rule |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2295 |
normalization. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2296 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2297 |
* Generalized Isar history, with support for linear undo, direct state |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2298 |
addressing etc. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2299 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2300 |
* Changed defaults for unify configuration options: |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2301 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2302 |
unify_trace_bound = 50 (formerly 25) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2303 |
unify_search_bound = 60 (formerly 30) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2304 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2305 |
* Different bookkeeping for code equations (INCOMPATIBILITY): |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2306 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2307 |
a) On theory merge, the last set of code equations for a particular |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2308 |
constant is taken (in accordance with the policy applied by other |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2309 |
parts of the code generator framework). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2310 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2311 |
b) Code equations stemming from explicit declarations (e.g. code |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2312 |
attribute) gain priority over default code equations stemming |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2313 |
from definition, primrec, fun etc. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2314 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2315 |
* Keyword 'code_exception' now named 'code_abort'. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2316 |
|
30965 | 2317 |
* Unified theorem tables for both code generators. Thus [code |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2318 |
func] has disappeared and only [code] remains. INCOMPATIBILITY. |
30577 | 2319 |
|
2320 |
* Command 'find_consts' searches for constants based on type and name |
|
2321 |
patterns, e.g. |
|
29883 | 2322 |
|
2323 |
find_consts "_ => bool" |
|
2324 |
||
30106 | 2325 |
By default, matching is against subtypes, but it may be restricted to |
30728
f0aeca99b5d9
interpretation/interpret: prefixes are mandatory by default;
wenzelm
parents:
30706
diff
changeset
|
2326 |
the whole type. Searching by name is possible. Multiple queries are |
30106 | 2327 |
conjunctive and queries may be negated by prefixing them with a |
2328 |
hyphen: |
|
29883 | 2329 |
|
2330 |
find_consts strict: "_ => bool" name: "Int" -"int => int" |
|
29861
3c348f5873f3
updated NEWS etc with "solves" criterion and auto_solves
kleing
parents:
29823
diff
changeset
|
2331 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2332 |
* New 'find_theorems' criterion "solves" matches theorems that |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2333 |
directly solve the current goal (modulo higher-order unification). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2334 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2335 |
* Auto solve feature for main theorem statements: whenever a new goal |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2336 |
is stated, "find_theorems solves" is called; any theorems that could |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2337 |
solve the lemma directly are listed as part of the goal state. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2338 |
Cf. associated options in Proof General Isabelle settings menu, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2339 |
enabled by default, with reasonable timeout for pathological cases of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2340 |
higher-order unification. |
30415
9501af91c4a3
Instead of giving up entirely, arith now ignores all inequalities when there are too many.
webertj
parents:
30399
diff
changeset
|
2341 |
|
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2342 |
|
27381 | 2343 |
*** Document preparation *** |
2344 |
||
2345 |
* Antiquotation @{lemma} now imitates a regular terminal proof, |
|
27392 | 2346 |
demanding keyword 'by' and supporting the full method expression |
27519
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2347 |
syntax just like the Isar command 'by'. |
27381 | 2348 |
|
2349 |
||
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2350 |
*** HOL *** |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2351 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2352 |
* Integrated main parts of former image HOL-Complex with HOL. Entry |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2353 |
points Main and Complex_Main remain as before. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2354 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2355 |
* Logic image HOL-Plain provides a minimal HOL with the most important |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2356 |
tools available (inductive, datatype, primrec, ...). This facilitates |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2357 |
experimentation and tool development. Note that user applications |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2358 |
(and library theories) should never refer to anything below theory |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2359 |
Main, as before. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2360 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2361 |
* Logic image HOL-Main stops at theory Main, and thus facilitates |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2362 |
experimentation due to shorter build times. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2363 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2364 |
* Logic image HOL-NSA contains theories of nonstandard analysis which |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2365 |
were previously part of former HOL-Complex. Entry point Hyperreal |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2366 |
remains valid, but theories formerly using Complex_Main should now use |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2367 |
new entry point Hypercomplex. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2368 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2369 |
* Generic ATP manager for Sledgehammer, based on ML threads instead of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2370 |
Posix processes. Avoids potentially expensive forking of the ML |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2371 |
process. New thread-based implementation also works on non-Unix |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2372 |
platforms (Cygwin). Provers are no longer hardwired, but defined |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2373 |
within the theory via plain ML wrapper functions. Basic Sledgehammer |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2374 |
commands are covered in the isar-ref manual. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2375 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2376 |
* Wrapper scripts for remote SystemOnTPTP service allows to use |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2377 |
sledgehammer without local ATP installation (Vampire etc.). Other |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2378 |
provers may be included via suitable ML wrappers, see also |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2379 |
src/HOL/ATP_Linkup.thy. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2380 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2381 |
* ATP selection (E/Vampire/Spass) is now via Proof General's settings |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2382 |
menu. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2383 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2384 |
* The metis method no longer fails because the theorem is too trivial |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2385 |
(contains the empty clause). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2386 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2387 |
* The metis method now fails in the usual manner, rather than raising |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2388 |
an exception, if it determines that it cannot prove the theorem. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2389 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2390 |
* Method "coherent" implements a prover for coherent logic (see also |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2391 |
src/Tools/coherent.ML). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2392 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2393 |
* Constants "undefined" and "default" replace "arbitrary". Usually |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2394 |
"undefined" is the right choice to replace "arbitrary", though |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2395 |
logically there is no difference. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2396 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2397 |
* Command "value" now integrates different evaluation mechanisms. The |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2398 |
result of the first successful evaluation mechanism is printed. In |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2399 |
square brackets a particular named evaluation mechanisms may be |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2400 |
specified (currently, [SML], [code] or [nbe]). See further |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2401 |
src/HOL/ex/Eval_Examples.thy. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2402 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2403 |
* Normalization by evaluation now allows non-leftlinear equations. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2404 |
Declare with attribute [code nbe]. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2405 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2406 |
* Methods "case_tac" and "induct_tac" now refer to the very same rules |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2407 |
as the structured Isar versions "cases" and "induct", cf. the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2408 |
corresponding "cases" and "induct" attributes. Mutual induction rules |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2409 |
are now presented as a list of individual projections |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2410 |
(e.g. foo_bar.inducts for types foo and bar); the old format with |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2411 |
explicit HOL conjunction is no longer supported. INCOMPATIBILITY, in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2412 |
rare situations a different rule is selected --- notably nested tuple |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2413 |
elimination instead of former prod.exhaust: use explicit (case_tac t |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2414 |
rule: prod.exhaust) here. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2415 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2416 |
* Attributes "cases", "induct", "coinduct" support "del" option. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2417 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2418 |
* Removed fact "case_split_thm", which duplicates "case_split". |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2419 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2420 |
* The option datatype has been moved to a new theory Option. Renamed |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2421 |
option_map to Option.map, and o2s to Option.set, INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2422 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2423 |
* New predicate "strict_mono" classifies strict functions on partial |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2424 |
orders. With strict functions on linear orders, reasoning about |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2425 |
(in)equalities is facilitated by theorems "strict_mono_eq", |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2426 |
"strict_mono_less_eq" and "strict_mono_less". |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2427 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2428 |
* Some set operations are now proper qualified constants with |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2429 |
authentic syntax. INCOMPATIBILITY: |
30304
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2430 |
|
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2431 |
op Int ~> Set.Int |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2432 |
op Un ~> Set.Un |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2433 |
INTER ~> Set.INTER |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2434 |
UNION ~> Set.UNION |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2435 |
Inter ~> Set.Inter |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2436 |
Union ~> Set.Union |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2437 |
{} ~> Set.empty |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2438 |
UNIV ~> Set.UNIV |
d8e4cd2ac2a1
set operations Int, Un, INTER, UNION, Inter, Union, empty, UNIV are now proper qualified constants with authentic syntax
haftmann
parents:
30085
diff
changeset
|
2439 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2440 |
* Class complete_lattice with operations Inf, Sup, INFI, SUPR now in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2441 |
theory Set. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2442 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2443 |
* Auxiliary class "itself" has disappeared -- classes without any |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2444 |
parameter are treated as expected by the 'class' command. |
29797 | 2445 |
|
29823
0ab754d13ccd
session Reflecion renamed to Decision_Procs, moved Dense_Linear_Order there
haftmann
parents:
29810
diff
changeset
|
2446 |
* Leibnitz's Series for Pi and the arcus tangens and logarithm series. |
0ab754d13ccd
session Reflecion renamed to Decision_Procs, moved Dense_Linear_Order there
haftmann
parents:
29810
diff
changeset
|
2447 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2448 |
* Common decision procedures (Cooper, MIR, Ferrack, Approximation, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2449 |
Dense_Linear_Order) are now in directory HOL/Decision_Procs. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2450 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2451 |
* Theory src/HOL/Decision_Procs/Approximation provides the new proof |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2452 |
method "approximation". It proves formulas on real values by using |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2453 |
interval arithmetic. In the formulas are also the transcendental |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2454 |
functions sin, cos, tan, atan, ln, exp and the constant pi are |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2455 |
allowed. For examples see |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2456 |
src/HOL/Descision_Procs/ex/Approximation_Ex.thy. |
29823
0ab754d13ccd
session Reflecion renamed to Decision_Procs, moved Dense_Linear_Order there
haftmann
parents:
29810
diff
changeset
|
2457 |
|
0ab754d13ccd
session Reflecion renamed to Decision_Procs, moved Dense_Linear_Order there
haftmann
parents:
29810
diff
changeset
|
2458 |
* Theory "Reflection" now resides in HOL/Library. |
29650 | 2459 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2460 |
* Entry point to Word library now simply named "Word". |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2461 |
INCOMPATIBILITY. |
29628 | 2462 |
|
29197
6d4cb27ed19c
adapted HOL source structure to distribution layout
haftmann
parents:
29182
diff
changeset
|
2463 |
* Made source layout more coherent with logical distribution |
6d4cb27ed19c
adapted HOL source structure to distribution layout
haftmann
parents:
29182
diff
changeset
|
2464 |
structure: |
28952
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2465 |
|
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2466 |
src/HOL/Library/RType.thy ~> src/HOL/Typerep.thy |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2467 |
src/HOL/Library/Code_Message.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2468 |
src/HOL/Library/GCD.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2469 |
src/HOL/Library/Order_Relation.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2470 |
src/HOL/Library/Parity.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2471 |
src/HOL/Library/Univ_Poly.thy ~> src/HOL/ |
30176
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2472 |
src/HOL/Real/ContNotDenum.thy ~> src/HOL/Library/ |
28952
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2473 |
src/HOL/Real/Lubs.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2474 |
src/HOL/Real/PReal.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2475 |
src/HOL/Real/Rational.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2476 |
src/HOL/Real/RComplete.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2477 |
src/HOL/Real/RealDef.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2478 |
src/HOL/Real/RealPow.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2479 |
src/HOL/Real/Real.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2480 |
src/HOL/Complex/Complex_Main.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2481 |
src/HOL/Complex/Complex.thy ~> src/HOL/ |
30176
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2482 |
src/HOL/Complex/FrechetDeriv.thy ~> src/HOL/Library/ |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2483 |
src/HOL/Complex/Fundamental_Theorem_Algebra.thy ~> src/HOL/Library/ |
28952
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2484 |
src/HOL/Hyperreal/Deriv.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2485 |
src/HOL/Hyperreal/Fact.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2486 |
src/HOL/Hyperreal/Integration.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2487 |
src/HOL/Hyperreal/Lim.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2488 |
src/HOL/Hyperreal/Ln.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2489 |
src/HOL/Hyperreal/Log.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2490 |
src/HOL/Hyperreal/MacLaurin.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2491 |
src/HOL/Hyperreal/NthRoot.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2492 |
src/HOL/Hyperreal/Series.thy ~> src/HOL/ |
29197
6d4cb27ed19c
adapted HOL source structure to distribution layout
haftmann
parents:
29182
diff
changeset
|
2493 |
src/HOL/Hyperreal/SEQ.thy ~> src/HOL/ |
28952
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2494 |
src/HOL/Hyperreal/Taylor.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2495 |
src/HOL/Hyperreal/Transcendental.thy ~> src/HOL/ |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2496 |
src/HOL/Real/Float ~> src/HOL/Library/ |
29197
6d4cb27ed19c
adapted HOL source structure to distribution layout
haftmann
parents:
29182
diff
changeset
|
2497 |
src/HOL/Real/HahnBanach ~> src/HOL/HahnBanach |
6d4cb27ed19c
adapted HOL source structure to distribution layout
haftmann
parents:
29182
diff
changeset
|
2498 |
src/HOL/Real/RealVector.thy ~> src/HOL/ |
28952
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2499 |
|
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2500 |
src/HOL/arith_data.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2501 |
src/HOL/hologic.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2502 |
src/HOL/simpdata.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2503 |
src/HOL/int_arith1.ML ~> src/HOL/Tools/int_arith.ML |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2504 |
src/HOL/int_factor_simprocs.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2505 |
src/HOL/nat_simprocs.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2506 |
src/HOL/Real/float_arith.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2507 |
src/HOL/Real/float_syntax.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2508 |
src/HOL/Real/rat_arith.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2509 |
src/HOL/Real/real_arith.ML ~> src/HOL/Tools |
15a4b2cf8c34
made repository layout more coherent with logical distribution structure; stripped some $Id$s
haftmann
parents:
28915
diff
changeset
|
2510 |
|
29398 | 2511 |
src/HOL/Library/Array.thy ~> src/HOL/Imperative_HOL |
2512 |
src/HOL/Library/Heap_Monad.thy ~> src/HOL/Imperative_HOL |
|
2513 |
src/HOL/Library/Heap.thy ~> src/HOL/Imperative_HOL |
|
2514 |
src/HOL/Library/Imperative_HOL.thy ~> src/HOL/Imperative_HOL |
|
2515 |
src/HOL/Library/Ref.thy ~> src/HOL/Imperative_HOL |
|
2516 |
src/HOL/Library/Relational.thy ~> src/HOL/Imperative_HOL |
|
2517 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2518 |
* If methods "eval" and "evaluation" encounter a structured proof |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2519 |
state with !!/==>, only the conclusion is evaluated to True (if |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2520 |
possible), avoiding strange error messages. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2521 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2522 |
* Method "sizechange" automates termination proofs using (a |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2523 |
modification of) the size-change principle. Requires SAT solver. See |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2524 |
src/HOL/ex/Termination.thy for examples. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2525 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2526 |
* Simplifier: simproc for let expressions now unfolds if bound |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2527 |
variable occurs at most once in let expression body. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2528 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2529 |
* Method "arith": Linear arithmetic now ignores all inequalities when |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2530 |
fast_arith_neq_limit is exceeded, instead of giving up entirely. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2531 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2532 |
* New attribute "arith" for facts that should always be used |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2533 |
automatically by arithmetic. It is intended to be used locally in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2534 |
proofs, e.g. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2535 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2536 |
assumes [arith]: "x > 0" |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2537 |
|
30706 | 2538 |
Global usage is discouraged because of possible performance impact. |
2539 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2540 |
* New classes "top" and "bot" with corresponding operations "top" and |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2541 |
"bot" in theory Orderings; instantiation of class "complete_lattice" |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2542 |
requires instantiation of classes "top" and "bot". INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2543 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2544 |
* Changed definition lemma "less_fun_def" in order to provide an |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2545 |
instance for preorders on functions; use lemma "less_le" instead. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2546 |
INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2547 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2548 |
* Theory Orderings: class "wellorder" moved here, with explicit |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2549 |
induction rule "less_induct" as assumption. For instantiation of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2550 |
"wellorder" by means of predicate "wf", use rule wf_wellorderI. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2551 |
INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2552 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2553 |
* Theory Orderings: added class "preorder" as superclass of "order". |
27793 | 2554 |
INCOMPATIBILITY: Instantiation proofs for order, linorder |
2555 |
etc. slightly changed. Some theorems named order_class.* now named |
|
2556 |
preorder_class.*. |
|
2557 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2558 |
* Theory Relation: renamed "refl" to "refl_on", "reflexive" to "refl, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2559 |
"diag" to "Id_on". |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2560 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2561 |
* Theory Finite_Set: added a new fold combinator of type |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2562 |
|
28855 | 2563 |
('a => 'b => 'b) => 'b => 'a set => 'b |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2564 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2565 |
Occasionally this is more convenient than the old fold combinator |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2566 |
which is now defined in terms of the new one and renamed to |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2567 |
fold_image. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2568 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2569 |
* Theories Ring_and_Field and OrderedGroup: The lemmas "group_simps" |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2570 |
and "ring_simps" have been replaced by "algebra_simps" (which can be |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2571 |
extended with further lemmas!). At the moment both still exist but |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2572 |
the former will disappear at some point. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2573 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2574 |
* Theory Power: Lemma power_Suc is now declared as a simp rule in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2575 |
class recpower. Type-specific simp rules for various recpower types |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2576 |
have been removed. INCOMPATIBILITY, rename old lemmas as follows: |
30273
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2577 |
|
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2578 |
rat_power_0 -> power_0 |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2579 |
rat_power_Suc -> power_Suc |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2580 |
realpow_0 -> power_0 |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2581 |
realpow_Suc -> power_Suc |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2582 |
complexpow_0 -> power_0 |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2583 |
complexpow_Suc -> power_Suc |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2584 |
power_poly_0 -> power_0 |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2585 |
power_poly_Suc -> power_Suc |
ecd6f0ca62ea
declare power_Suc [simp]; remove redundant type-specific versions of power_Suc
huffman
parents:
30250
diff
changeset
|
2586 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2587 |
* Theories Ring_and_Field and Divides: Definition of "op dvd" has been |
27793 | 2588 |
moved to separate class dvd in Ring_and_Field; a couple of lemmas on |
2589 |
dvd has been generalized to class comm_semiring_1. Likewise a bunch |
|
2590 |
of lemmas from Divides has been generalized from nat to class |
|
2591 |
semiring_div. INCOMPATIBILITY. This involves the following theorem |
|
2592 |
renames resulting from duplicate elimination: |
|
27651
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2593 |
|
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2594 |
dvd_def_mod ~> dvd_eq_mod_eq_0 |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2595 |
zero_dvd_iff ~> dvd_0_left_iff |
28559 | 2596 |
dvd_0 ~> dvd_0_right |
27651
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2597 |
DIVISION_BY_ZERO_DIV ~> div_by_0 |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2598 |
DIVISION_BY_ZERO_MOD ~> mod_by_0 |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2599 |
mult_div ~> div_mult_self2_is_id |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2600 |
mult_mod ~> mod_mult_self2_is_0 |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2601 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2602 |
* Theory IntDiv: removed many lemmas that are instances of class-based |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2603 |
generalizations (from Divides and Ring_and_Field). INCOMPATIBILITY, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2604 |
rename old lemmas as follows: |
30044 | 2605 |
|
2606 |
dvd_diff -> nat_dvd_diff |
|
2607 |
dvd_zminus_iff -> dvd_minus_iff |
|
30224 | 2608 |
mod_add1_eq -> mod_add_eq |
2609 |
mod_mult1_eq -> mod_mult_right_eq |
|
2610 |
mod_mult1_eq' -> mod_mult_left_eq |
|
2611 |
mod_mult_distrib_mod -> mod_mult_eq |
|
30044 | 2612 |
nat_mod_add_left_eq -> mod_add_left_eq |
2613 |
nat_mod_add_right_eq -> mod_add_right_eq |
|
2614 |
nat_mod_div_trivial -> mod_div_trivial |
|
2615 |
nat_mod_mod_trivial -> mod_mod_trivial |
|
2616 |
zdiv_zadd_self1 -> div_add_self1 |
|
2617 |
zdiv_zadd_self2 -> div_add_self2 |
|
30181 | 2618 |
zdiv_zmult_self1 -> div_mult_self2_is_id |
30044 | 2619 |
zdiv_zmult_self2 -> div_mult_self1_is_id |
2620 |
zdvd_triv_left -> dvd_triv_left |
|
2621 |
zdvd_triv_right -> dvd_triv_right |
|
2622 |
zdvd_zmult_cancel_disj -> dvd_mult_cancel_left |
|
30085 | 2623 |
zmod_eq0_zdvd_iff -> dvd_eq_mod_eq_0[symmetric] |
30044 | 2624 |
zmod_zadd_left_eq -> mod_add_left_eq |
2625 |
zmod_zadd_right_eq -> mod_add_right_eq |
|
2626 |
zmod_zadd_self1 -> mod_add_self1 |
|
2627 |
zmod_zadd_self2 -> mod_add_self2 |
|
30224 | 2628 |
zmod_zadd1_eq -> mod_add_eq |
30044 | 2629 |
zmod_zdiff1_eq -> mod_diff_eq |
2630 |
zmod_zdvd_zmod -> mod_mod_cancel |
|
2631 |
zmod_zmod_cancel -> mod_mod_cancel |
|
2632 |
zmod_zmult_self1 -> mod_mult_self2_is_0 |
|
2633 |
zmod_zmult_self2 -> mod_mult_self1_is_0 |
|
2634 |
zmod_1 -> mod_by_1 |
|
2635 |
zdiv_1 -> div_by_1 |
|
2636 |
zdvd_abs1 -> abs_dvd_iff |
|
2637 |
zdvd_abs2 -> dvd_abs_iff |
|
2638 |
zdvd_refl -> dvd_refl |
|
2639 |
zdvd_trans -> dvd_trans |
|
2640 |
zdvd_zadd -> dvd_add |
|
2641 |
zdvd_zdiff -> dvd_diff |
|
2642 |
zdvd_zminus_iff -> dvd_minus_iff |
|
2643 |
zdvd_zminus2_iff -> minus_dvd_iff |
|
2644 |
zdvd_zmultD -> dvd_mult_right |
|
2645 |
zdvd_zmultD2 -> dvd_mult_left |
|
2646 |
zdvd_zmult_mono -> mult_dvd_mono |
|
2647 |
zdvd_0_right -> dvd_0_right |
|
2648 |
zdvd_0_left -> dvd_0_left_iff |
|
2649 |
zdvd_1_left -> one_dvd |
|
2650 |
zminus_dvd_iff -> minus_dvd_iff |
|
2651 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2652 |
* Theory Rational: 'Fract k 0' now equals '0'. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2653 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2654 |
* The real numbers offer decimal input syntax: 12.34 is translated |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2655 |
into 1234/10^2. This translation is not reversed upon output. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2656 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2657 |
* Theory Library/Polynomial defines an abstract type 'a poly of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2658 |
univariate polynomials with coefficients of type 'a. In addition to |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2659 |
the standard ring operations, it also supports div and mod. Code |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2660 |
generation is also supported, using list-style constructors. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2661 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2662 |
* Theory Library/Inner_Product defines a class of real_inner for real |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2663 |
inner product spaces, with an overloaded operation inner :: 'a => 'a |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2664 |
=> real. Class real_inner is a subclass of real_normed_vector from |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2665 |
theory RealVector. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2666 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2667 |
* Theory Library/Product_Vector provides instances for the product |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2668 |
type 'a * 'b of several classes from RealVector and Inner_Product. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2669 |
Definitions of addition, subtraction, scalar multiplication, norms, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2670 |
and inner products are included. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2671 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2672 |
* Theory Library/Bit defines the field "bit" of integers modulo 2. In |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2673 |
addition to the field operations, numerals and case syntax are also |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2674 |
supported. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2675 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2676 |
* Theory Library/Diagonalize provides constructive version of Cantor's |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2677 |
first diagonalization argument. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2678 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2679 |
* Theory Library/GCD: Curried operations gcd, lcm (for nat) and zgcd, |
27599 | 2680 |
zlcm (for int); carried together from various gcd/lcm developements in |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2681 |
the HOL Distribution. Constants zgcd and zlcm replace former igcd and |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2682 |
ilcm; corresponding theorems renamed accordingly. INCOMPATIBILITY, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2683 |
may recover tupled syntax as follows: |
27556 | 2684 |
|
2685 |
hide (open) const gcd |
|
2686 |
abbreviation gcd where |
|
2687 |
"gcd == (%(a, b). GCD.gcd a b)" |
|
2688 |
notation (output) |
|
2689 |
GCD.gcd ("gcd '(_, _')") |
|
2690 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2691 |
The same works for lcm, zgcd, zlcm. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2692 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2693 |
* Theory Library/Nat_Infinity: added addition, numeral syntax and more |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2694 |
instantiations for algebraic structures. Removed some duplicate |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2695 |
theorems. Changes in simp rules. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2696 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2697 |
* ML antiquotation @{code} takes a constant as argument and generates |
27651
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2698 |
corresponding code in background and inserts name of the corresponding |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2699 |
resulting ML value/function/datatype constructor binding in place. |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2700 |
All occurrences of @{code} with a single ML block are generated |
16a26996c30e
moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents:
27599
diff
changeset
|
2701 |
simultaneously. Provides a generic and safe interface for |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2702 |
instrumentalizing code generation. See |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2703 |
src/HOL/Decision_Procs/Ferrack.thy for a more ambitious application. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2704 |
In future you ought to refrain from ad-hoc compiling generated SML |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2705 |
code on the ML toplevel. Note that (for technical reasons) @{code} |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2706 |
cannot refer to constants for which user-defined serializations are |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2707 |
set. Refer to the corresponding ML counterpart directly in that |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2708 |
cases. |
27122 | 2709 |
|
2710 |
* Command 'rep_datatype': instead of theorem names the command now |
|
2711 |
takes a list of terms denoting the constructors of the type to be |
|
2712 |
represented as datatype. The characteristic theorems have to be |
|
2713 |
proven. INCOMPATIBILITY. Also observe that the following theorems |
|
2714 |
have disappeared in favour of existing ones: |
|
2715 |
||
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2716 |
unit_induct ~> unit.induct |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2717 |
prod_induct ~> prod.induct |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2718 |
sum_induct ~> sum.induct |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2719 |
Suc_Suc_eq ~> nat.inject |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2720 |
Suc_not_Zero Zero_not_Suc ~> nat.distinct |
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2721 |
|
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
2722 |
|
27696 | 2723 |
*** HOL-Algebra *** |
2724 |
||
27713
95b36bfe7fc4
New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents:
27704
diff
changeset
|
2725 |
* New locales for orders and lattices where the equivalence relation |
30106 | 2726 |
is not restricted to equality. INCOMPATIBILITY: all order and lattice |
2727 |
locales use a record structure with field eq for the equivalence. |
|
27713
95b36bfe7fc4
New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents:
27704
diff
changeset
|
2728 |
|
95b36bfe7fc4
New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents:
27704
diff
changeset
|
2729 |
* New theory of factorial domains. |
95b36bfe7fc4
New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents:
27704
diff
changeset
|
2730 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2731 |
* Units_l_inv and Units_r_inv are now simp rules by default. |
27696 | 2732 |
INCOMPATIBILITY. Simplifier proof that require deletion of l_inv |
2733 |
and/or r_inv will now also require deletion of these lemmas. |
|
2734 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2735 |
* Renamed the following theorems, INCOMPATIBILITY: |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2736 |
|
27696 | 2737 |
UpperD ~> Upper_memD |
2738 |
LowerD ~> Lower_memD |
|
2739 |
least_carrier ~> least_closed |
|
2740 |
greatest_carrier ~> greatest_closed |
|
2741 |
greatest_Lower_above ~> greatest_Lower_below |
|
27717
21bbd410ba04
Generalised polynomial lemmas from cring to ring.
ballarin
parents:
27713
diff
changeset
|
2742 |
one_zero ~> carrier_one_zero |
21bbd410ba04
Generalised polynomial lemmas from cring to ring.
ballarin
parents:
27713
diff
changeset
|
2743 |
one_not_zero ~> carrier_one_not_zero (collision with assumption) |
27696 | 2744 |
|
27793 | 2745 |
|
30849 | 2746 |
*** HOL-Nominal *** |
2747 |
||
30855 | 2748 |
* Nominal datatypes can now contain type-variables. |
2749 |
||
2750 |
* Commands 'nominal_inductive' and 'equivariance' work with local |
|
2751 |
theory targets. |
|
2752 |
||
2753 |
* Nominal primrec can now works with local theory targets and its |
|
2754 |
specification syntax now conforms to the general format as seen in |
|
2755 |
'inductive' etc. |
|
2756 |
||
2757 |
* Method "perm_simp" honours the standard simplifier attributes |
|
2758 |
(no_asm), (no_asm_use) etc. |
|
2759 |
||
2760 |
* The new predicate #* is defined like freshness, except that on the |
|
2761 |
left hand side can be a set or list of atoms. |
|
2762 |
||
2763 |
* Experimental command 'nominal_inductive2' derives strong induction |
|
2764 |
principles for inductive definitions. In contrast to |
|
2765 |
'nominal_inductive', which can only deal with a fixed number of |
|
2766 |
binders, it can deal with arbitrary expressions standing for sets of |
|
2767 |
atoms to be avoided. The only inductive definition we have at the |
|
2768 |
moment that needs this generalisation is the typing rule for Lets in |
|
2769 |
the algorithm W: |
|
2770 |
||
2771 |
Gamma |- t1 : T1 (x,close Gamma T1)::Gamma |- t2 : T2 x#Gamma |
|
2772 |
----------------------------------------------------------------- |
|
2773 |
Gamma |- Let x be t1 in t2 : T2 |
|
2774 |
||
2775 |
In this rule one wants to avoid all the binders that are introduced by |
|
2776 |
"close Gamma T1". We are looking for other examples where this |
|
2777 |
feature might be useful. Please let us know. |
|
30849 | 2778 |
|
2779 |
||
30176
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2780 |
*** HOLCF *** |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2781 |
|
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2782 |
* Reimplemented the simplification procedure for proving continuity |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2783 |
subgoals. The new simproc is extensible; users can declare additional |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2784 |
continuity introduction rules with the attribute [cont2cont]. |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2785 |
|
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2786 |
* The continuity simproc now uses a different introduction rule for |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2787 |
solving continuity subgoals on terms with lambda abstractions. In |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2788 |
some rare cases the new simproc may fail to solve subgoals that the |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2789 |
old one could solve, and "simp add: cont2cont_LAM" may be necessary. |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2790 |
Potential INCOMPATIBILITY. |
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2791 |
|
30847 | 2792 |
* Command 'fixrec': specification syntax now conforms to the general |
30855 | 2793 |
format as seen in 'inductive' etc. See src/HOLCF/ex/Fixrec_ex.thy for |
2794 |
examples. INCOMPATIBILITY. |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2795 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2796 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2797 |
*** ZF *** |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2798 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2799 |
* Proof of Zorn's Lemma for partial orders. |
30176
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2800 |
|
78610979b3c6
add news for HOLCF; fixed some typos and inaccuracies
huffman
parents:
30163
diff
changeset
|
2801 |
|
27246
df85326af57c
* Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents:
27200
diff
changeset
|
2802 |
*** ML *** |
28088
723735f2d73a
* Name bindings in higher specification mechanisms;
wenzelm
parents:
28085
diff
changeset
|
2803 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2804 |
* Multithreading for Poly/ML 5.1/5.2 is no longer supported, only for |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2805 |
Poly/ML 5.2.1 or later. Important note: the TimeLimit facility |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2806 |
depends on multithreading, so timouts will not work before Poly/ML |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2807 |
5.2.1! |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2808 |
|
29161
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2809 |
* High-level support for concurrent ML programming, see |
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2810 |
src/Pure/Cuncurrent. The data-oriented model of "future values" is |
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2811 |
particularly convenient to organize independent functional |
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2812 |
computations. The concept of "synchronized variables" provides a |
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2813 |
higher-order interface for components with shared state, avoiding the |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2814 |
delicate details of mutexes and condition variables. (Requires |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2815 |
Poly/ML 5.2.1 or later.) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2816 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2817 |
* ML bindings produced via Isar commands are stored within the Isar |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2818 |
context (theory or proof). Consequently, commands like 'use' and 'ML' |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2819 |
become thread-safe and work with undo as expected (concerning |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2820 |
top-level bindings, not side-effects on global references). |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2821 |
INCOMPATIBILITY, need to provide proper Isar context when invoking the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2822 |
compiler at runtime; really global bindings need to be given outside a |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2823 |
theory. (Requires Poly/ML 5.2 or later.) |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2824 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2825 |
* Command 'ML_prf' is analogous to 'ML' but works within a proof |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2826 |
context. Top-level ML bindings are stored within the proof context in |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2827 |
a purely sequential fashion, disregarding the nested proof structure. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2828 |
ML bindings introduced by 'ML_prf' are discarded at the end of the |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2829 |
proof. (Requires Poly/ML 5.2 or later.) |
29161
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
2830 |
|
30530 | 2831 |
* Simplified ML attribute and method setup, cf. functions Attrib.setup |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2832 |
and Method.setup, as well as Isar commands 'attribute_setup' and |
30547 | 2833 |
'method_setup'. INCOMPATIBILITY for 'method_setup', need to simplify |
2834 |
existing code accordingly, or use plain 'setup' together with old |
|
2835 |
Method.add_method. |
|
30530 | 2836 |
|
28294 | 2837 |
* Simplified ML oracle interface Thm.add_oracle promotes 'a -> cterm |
2838 |
to 'a -> thm, while results are always tagged with an authentic oracle |
|
2839 |
name. The Isar command 'oracle' is now polymorphic, no argument type |
|
2840 |
is specified. INCOMPATIBILITY, need to simplify existing oracle code |
|
2841 |
accordingly. Note that extra performance may be gained by producing |
|
2842 |
the cterm carefully, avoiding slow Thm.cterm_of. |
|
2843 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2844 |
* Simplified interface for defining document antiquotations via |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2845 |
ThyOutput.antiquotation, ThyOutput.output, and optionally |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2846 |
ThyOutput.maybe_pretty_source. INCOMPATIBILITY, need to simplify user |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2847 |
antiquotations accordingly, see src/Pure/Thy/thy_output.ML for common |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2848 |
examples. |
28099
fb16a07d6580
* Generic Toplevel.add_hook interface allows to analyze the result of
wenzelm
parents:
28089
diff
changeset
|
2849 |
|
30395
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2850 |
* More systematic treatment of long names, abstract name bindings, and |
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2851 |
name space operations. Basic operations on qualified names have been |
30399 | 2852 |
move from structure NameSpace to Long_Name, e.g. Long_Name.base_name, |
30395
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2853 |
Long_Name.append. Old type bstring has been mostly replaced by |
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2854 |
abstract type binding (see structure Binding), which supports precise |
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2855 |
qualification by packages and local theory targets, as well as proper |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2856 |
tracking of source positions. INCOMPATIBILITY, need to wrap old |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2857 |
bstring values into Binding.name, or better pass through abstract |
30399 | 2858 |
bindings everywhere. See further src/Pure/General/long_name.ML, |
30395
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2859 |
src/Pure/General/binding.ML and src/Pure/General/name_space.ML |
f3103bd2b167
* More systematic treatment of long names, abstract name bindings, and name space operations.
wenzelm
parents:
30326
diff
changeset
|
2860 |
|
28089
66ae1926482a
* Result facts now refer to the *full* internal name;
wenzelm
parents:
28088
diff
changeset
|
2861 |
* Result facts (from PureThy.note_thms, ProofContext.note_thms, |
66ae1926482a
* Result facts now refer to the *full* internal name;
wenzelm
parents:
28088
diff
changeset
|
2862 |
LocalTheory.note etc.) now refer to the *full* internal name, not the |
66ae1926482a
* Result facts now refer to the *full* internal name;
wenzelm
parents:
28088
diff
changeset
|
2863 |
bstring as before. INCOMPATIBILITY, not detected by ML type-checking! |
66ae1926482a
* Result facts now refer to the *full* internal name;
wenzelm
parents:
28088
diff
changeset
|
2864 |
|
27287 | 2865 |
* Disposed old type and term read functions (Sign.read_def_typ, |
2866 |
Sign.read_typ, Sign.read_def_terms, Sign.read_term, |
|
2867 |
Thm.read_def_cterms, Thm.read_cterm etc.). INCOMPATIBILITY, should |
|
2868 |
use regular Syntax.read_typ, Syntax.read_term, Syntax.read_typ_global, |
|
27269 | 2869 |
Syntax.read_term_global etc.; see also OldGoals.read_term as last |
2870 |
resort for legacy applications. |
|
2871 |
||
30609
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2872 |
* Disposed old declarations, tactics, tactic combinators that refer to |
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2873 |
the simpset or claset of an implicit theory (such as Addsimps, |
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2874 |
Simp_tac, SIMPSET). INCOMPATIBILITY, should use @{simpset} etc. in |
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2875 |
embedded ML text, or local_simpset_of with a proper context passed as |
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2876 |
explicit runtime argument. |
983e8b6e4e69
Disposed old declarations, tactics, tactic combinators that refer to the simpset or claset of an implicit theory;
wenzelm
parents:
30577
diff
changeset
|
2877 |
|
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2878 |
* Rules and tactics that read instantiations (read_instantiate, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2879 |
res_inst_tac, thin_tac, subgoal_tac etc.) now demand a proper proof |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2880 |
context, which is required for parsing and type-checking. Moreover, |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2881 |
the variables are specified as plain indexnames, not string encodings |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2882 |
thereof. INCOMPATIBILITY. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2883 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2884 |
* Generic Toplevel.add_hook interface allows to analyze the result of |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2885 |
transactions. E.g. see src/Pure/ProofGeneral/proof_general_pgip.ML |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2886 |
for theorem dependency output of transactions resulting in a new |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2887 |
theory state. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2888 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2889 |
* ML antiquotations: block-structured compilation context indicated by |
27391 | 2890 |
\<lbrace> ... \<rbrace>; additional antiquotation forms: |
2891 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2892 |
@{binding name} - basic name binding |
27519
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2893 |
@{let ?pat = term} - term abbreviation (HO matching) |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2894 |
@{note name = fact} - fact abbreviation |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2895 |
@{thm fact} - singleton fact (with attributes) |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2896 |
@{thms fact} - general fact (with attributes) |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2897 |
@{lemma prop by method} - singleton goal |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2898 |
@{lemma prop by meth1 meth2} - singleton goal |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2899 |
@{lemma prop1 ... propN by method} - general goal |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2900 |
@{lemma prop1 ... propN by meth1 meth2} - general goal |
59b54d80d2ae
slightly improved @{lemma} (both for latex and ML);
wenzelm
parents:
27485
diff
changeset
|
2901 |
@{lemma (open) ...} - open derivation |
27380 | 2902 |
|
27246
df85326af57c
* Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents:
27200
diff
changeset
|
2903 |
|
27979 | 2904 |
*** System *** |
2905 |
||
28248 | 2906 |
* The Isabelle "emacs" tool provides a specific interface to invoke |
2907 |
Proof General / Emacs, with more explicit failure if that is not |
|
2908 |
installed (the old isabelle-interface script silently falls back on |
|
2909 |
isabelle-process). The PROOFGENERAL_HOME setting determines the |
|
2910 |
installation location of the Proof General distribution. |
|
2911 |
||
27979 | 2912 |
* Isabelle/lib/classes/Pure.jar provides basic support to integrate |
2913 |
the Isabelle process into a JVM/Scala application. See |
|
2914 |
Isabelle/lib/jedit/plugin for a minimal example. (The obsolete Java |
|
2915 |
process wrapper has been discontinued.) |
|
2916 |
||
30845
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2917 |
* Added homegrown Isabelle font with unicode layout, see lib/fonts. |
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2918 |
|
9a887484de53
misc cleanup and rearrangements for Isabelle2009 release;
wenzelm
parents:
30741
diff
changeset
|
2919 |
* Various status messages (with exact source position information) are |
27979 | 2920 |
emitted, if proper markup print mode is enabled. This allows |
2921 |
user-interface components to provide detailed feedback on internal |
|
2922 |
prover operations. |
|
2923 |
||
2924 |
||
27143 | 2925 |
|
27008 | 2926 |
New in Isabelle2008 (June 2008) |
2927 |
------------------------------- |
|
25464
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
2928 |
|
25522 | 2929 |
*** General *** |
2930 |
||
27061 | 2931 |
* The Isabelle/Isar Reference Manual (isar-ref) has been reorganized |
2932 |
and updated, with formally checked references as hyperlinks. |
|
2933 |
||
25994 | 2934 |
* Theory loader: use_thy (and similar operations) no longer set the |
2935 |
implicit ML context, which was occasionally hard to predict and in |
|
2936 |
conflict with concurrency. INCOMPATIBILITY, use ML within Isar which |
|
2937 |
provides a proper context already. |
|
2938 |
||
26323
73efc70edeef
theory loader: discontinued *attached* ML scripts;
wenzelm
parents:
26315
diff
changeset
|
2939 |
* Theory loader: old-style ML proof scripts being *attached* to a thy |
73efc70edeef
theory loader: discontinued *attached* ML scripts;
wenzelm
parents:
26315
diff
changeset
|
2940 |
file are no longer supported. INCOMPATIBILITY, regular 'uses' and |
73efc70edeef
theory loader: discontinued *attached* ML scripts;
wenzelm
parents:
26315
diff
changeset
|
2941 |
'use' within a theory file will do the job. |
73efc70edeef
theory loader: discontinued *attached* ML scripts;
wenzelm
parents:
26315
diff
changeset
|
2942 |
|
26650 | 2943 |
* Name space merge now observes canonical order, i.e. the second space |
2944 |
is inserted into the first one, while existing entries in the first |
|
26659 | 2945 |
space take precedence. INCOMPATIBILITY in rare situations, may try to |
26650 | 2946 |
swap theory imports. |
2947 |
||
27067 | 2948 |
* Syntax: symbol \<chi> is now considered a letter. Potential |
2949 |
INCOMPATIBILITY in identifier syntax etc. |
|
2950 |
||
2951 |
* Outer syntax: string tokens no longer admit escaped white space, |
|
2952 |
which was an accidental (undocumented) feature. INCOMPATIBILITY, use |
|
2953 |
white space without escapes. |
|
2954 |
||
2955 |
* Outer syntax: string tokens may contain arbitrary character codes |
|
2956 |
specified via 3 decimal digits (as in SML). E.g. "foo\095bar" for |
|
2957 |
"foo_bar". |
|
2958 |
||
25522 | 2959 |
|
25502 | 2960 |
*** Pure *** |
2961 |
||
26718 | 2962 |
* Context-dependent token translations. Default setup reverts locally |
2963 |
fixed variables, and adds hilite markup for undeclared frees. |
|
2964 |
||
26681 | 2965 |
* Unused theorems can be found using the new command 'unused_thms'. |
2966 |
There are three ways of invoking it: |
|
2967 |
||
2968 |
(1) unused_thms |
|
2969 |
Only finds unused theorems in the current theory. |
|
2970 |
||
2971 |
(2) unused_thms thy_1 ... thy_n - |
|
2972 |
Finds unused theorems in the current theory and all of its ancestors, |
|
2973 |
excluding the theories thy_1 ... thy_n and all of their ancestors. |
|
2974 |
||
2975 |
(3) unused_thms thy_1 ... thy_n - thy'_1 ... thy'_m |
|
2976 |
Finds unused theorems in the theories thy'_1 ... thy'_m and all of |
|
2977 |
their ancestors, excluding the theories thy_1 ... thy_n and all of |
|
2978 |
their ancestors. |
|
2979 |
||
26718 | 2980 |
In order to increase the readability of the list produced by |
2981 |
unused_thms, theorems that have been created by a particular instance |
|
26874 | 2982 |
of a theory command such as 'inductive' or 'function' are considered |
2983 |
to belong to the same "group", meaning that if at least one theorem in |
|
26718 | 2984 |
this group is used, the other theorems in the same group are no longer |
2985 |
reported as unused. Moreover, if all theorems in the group are |
|
2986 |
unused, only one theorem in the group is displayed. |
|
2987 |
||
2988 |
Note that proof objects have to be switched on in order for |
|
2989 |
unused_thms to work properly (i.e. !proofs must be >= 1, which is |
|
26874 | 2990 |
usually the case when using Proof General with the default settings). |
26681 | 2991 |
|
26650 | 2992 |
* Authentic naming of facts disallows ad-hoc overwriting of previous |
2993 |
theorems within the same name space. INCOMPATIBILITY, need to remove |
|
2994 |
duplicate fact bindings, or even accidental fact duplications. Note |
|
2995 |
that tools may maintain dynamically scoped facts systematically, using |
|
2996 |
PureThy.add_thms_dynamic. |
|
2997 |
||
26660 | 2998 |
* Command 'hide' now allows to hide from "fact" name space as well. |
2999 |
||
26496
49ae9456eba9
purely functional setup of claset/simpset/clasimpset;
wenzelm
parents:
26495
diff
changeset
|
3000 |
* Eliminated destructive theorem database, simpset, claset, and |
49ae9456eba9
purely functional setup of claset/simpset/clasimpset;
wenzelm
parents:
26495
diff
changeset
|
3001 |
clasimpset. Potential INCOMPATIBILITY, really need to observe linear |
49ae9456eba9
purely functional setup of claset/simpset/clasimpset;
wenzelm
parents:
26495
diff
changeset
|
3002 |
update of theories within ML code. |
26479 | 3003 |
|
26955
ebbaa935eae0
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents:
26925
diff
changeset
|
3004 |
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory. |
ebbaa935eae0
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents:
26925
diff
changeset
|
3005 |
INCOMPATIBILITY, object-logics depending on former Pure require |
ebbaa935eae0
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents:
26925
diff
changeset
|
3006 |
additional setup PureThy.old_appl_syntax_setup; object-logics |
ebbaa935eae0
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents:
26925
diff
changeset
|
3007 |
depending on former CPure need to refer to Pure. |
26650 | 3008 |
|
26495 | 3009 |
* Commands 'use' and 'ML' are now purely functional, operating on |
26479 | 3010 |
theory/local_theory. Removed former 'ML_setup' (on theory), use 'ML' |
3011 |
instead. Added 'ML_val' as mere diagnostic replacement for 'ML'. |
|
3012 |
INCOMPATIBILITY. |
|
3013 |
||
26874 | 3014 |
* Command 'setup': discontinued implicit version with ML reference. |
26434 | 3015 |
|
25970
9053fd546501
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents:
25961
diff
changeset
|
3016 |
* Instantiation target allows for simultaneous specification of class |
9053fd546501
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents:
25961
diff
changeset
|
3017 |
instance operations together with an instantiation proof. |
9053fd546501
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents:
25961
diff
changeset
|
3018 |
Type-checking phase allows to refer to class operations uniformly. |
27067 | 3019 |
See src/HOL/Complex/Complex.thy for an Isar example and |
3020 |
src/HOL/Library/Eval.thy for an ML example. |
|
25502 | 3021 |
|
26201
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3022 |
* Indexing of literal facts: be more serious about including only |
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3023 |
facts from the visible specification/proof context, but not the |
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3024 |
background context (locale etc.). Affects `prop` notation and method |
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3025 |
"fact". INCOMPATIBILITY: need to name facts explicitly in rare |
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3026 |
situations. |
d3363a854708
indexing literal facts: exclude background context;
wenzelm
parents:
26197
diff
changeset
|
3027 |
|
26925
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3028 |
* Method "cases", "induct", "coinduct": removed obsolete/undocumented |
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3029 |
"(open)" option, which used to expose internal bound variables to the |
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3030 |
proof text. |
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3031 |
|
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3032 |
* Isar statements: removed obsolete case "rule_context". |
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3033 |
INCOMPATIBILITY, better use explicit fixes/assumes. |
ce964f0df281
* Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents:
26920
diff
changeset
|
3034 |
|
26874 | 3035 |
* Locale proofs: default proof step now includes 'unfold_locales'; |
3036 |
hence 'proof' without argument may be used to unfold locale |
|
3037 |
predicates. |
|
26765 | 3038 |
|
3039 |
||
26762 | 3040 |
*** Document preparation *** |
3041 |
||
26914 | 3042 |
* Simplified pdfsetup.sty: color/hyperref is used unconditionally for |
3043 |
both pdf and dvi (hyperlinks usually work in xdvi as well); removed |
|
3044 |
obsolete thumbpdf setup (contemporary PDF viewers do this on the |
|
3045 |
spot); renamed link color from "darkblue" to "linkcolor" (default |
|
26920 | 3046 |
value unchanged, can be redefined via \definecolor); no longer sets |
3047 |
"a4paper" option (unnecessary or even intrusive). |
|
26914 | 3048 |
|
27008 | 3049 |
* Antiquotation @{lemma A method} proves proposition A by the given |
3050 |
method (either a method name or a method name plus (optional) method |
|
3051 |
arguments in parentheses) and prints A just like @{prop A}. |
|
26762 | 3052 |
|
3053 |
||
25464
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
3054 |
*** HOL *** |
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
3055 |
|
27067 | 3056 |
* New primrec package. Specification syntax conforms in style to |
3057 |
definition/function/.... No separate induction rule is provided. The |
|
3058 |
"primrec" command distinguishes old-style and new-style specifications |
|
3059 |
by syntax. The former primrec package is now named OldPrimrecPackage. |
|
3060 |
When adjusting theories, beware: constants stemming from new-style |
|
3061 |
primrec specifications have authentic syntax. |
|
3062 |
||
3063 |
* Metis prover is now an order of magnitude faster, and also works |
|
3064 |
with multithreading. |
|
3065 |
||
3066 |
* Metis: the maximum number of clauses that can be produced from a |
|
3067 |
theorem is now given by the attribute max_clauses. Theorems that |
|
3068 |
exceed this number are ignored, with a warning printed. |
|
3069 |
||
3070 |
* Sledgehammer no longer produces structured proofs by default. To |
|
3071 |
enable, declare [[sledgehammer_full = true]]. Attributes |
|
3072 |
reconstruction_modulus, reconstruction_sorts renamed |
|
3073 |
sledgehammer_modulus, sledgehammer_sorts. INCOMPATIBILITY. |
|
3074 |
||
27104
791607529f6d
rep_datatype command now takes list of constructors as input arguments
haftmann
parents:
27067
diff
changeset
|
3075 |
* Method "induct_scheme" derives user-specified induction rules |
27067 | 3076 |
from well-founded induction and completeness of patterns. This factors |
3077 |
out some operations that are done internally by the function package |
|
3078 |
and makes them available separately. See |
|
3079 |
src/HOL/ex/Induction_Scheme.thy for examples. |
|
3080 |
||
3081 |
* More flexible generation of measure functions for termination |
|
3082 |
proofs: Measure functions can be declared by proving a rule of the |
|
3083 |
form "is_measure f" and giving it the [measure_function] attribute. |
|
3084 |
The "is_measure" predicate is logically meaningless (always true), and |
|
3085 |
just guides the heuristic. To find suitable measure functions, the |
|
3086 |
termination prover sets up the goal "is_measure ?f" of the appropriate |
|
3087 |
type and generates all solutions by prolog-style backwards proof using |
|
3088 |
the declared rules. |
|
3089 |
||
3090 |
This setup also deals with rules like |
|
3091 |
||
3092 |
"is_measure f ==> is_measure (list_size f)" |
|
3093 |
||
3094 |
which accommodates nested datatypes that recurse through lists. |
|
3095 |
Similar rules are predeclared for products and option types. |
|
3096 |
||
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3097 |
* Turned the type of sets "'a set" into an abbreviation for "'a => bool" |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3098 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3099 |
INCOMPATIBILITIES: |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3100 |
|
27008 | 3101 |
- Definitions of overloaded constants on sets have to be replaced by |
3102 |
definitions on => and bool. |
|
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3103 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3104 |
- Some definitions of overloaded operators on sets can now be proved |
27008 | 3105 |
using the definitions of the operators on => and bool. Therefore, |
3106 |
the following theorems have been renamed: |
|
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3107 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3108 |
subset_def -> subset_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3109 |
psubset_def -> psubset_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3110 |
set_diff_def -> set_diff_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3111 |
Compl_def -> Compl_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3112 |
Sup_set_def -> Sup_set_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3113 |
Inf_set_def -> Inf_set_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3114 |
sup_set_def -> sup_set_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3115 |
inf_set_def -> inf_set_eq |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3116 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3117 |
- Due to the incompleteness of the HO unification algorithm, some |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3118 |
rules such as subst may require manual instantiation, if some of |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3119 |
the unknowns in the rule is a set. |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3120 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3121 |
- Higher order unification and forward proofs: |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3122 |
The proof pattern |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3123 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3124 |
have "P (S::'a set)" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3125 |
then have "EX S. P S" .. |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3126 |
|
27008 | 3127 |
no longer works (due to the incompleteness of the HO unification |
3128 |
algorithm) and must be replaced by the pattern |
|
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3129 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3130 |
have "EX S. P S" |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3131 |
proof |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3132 |
show "P S" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3133 |
qed |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3134 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3135 |
- Calculational reasoning with subst (or similar rules): |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3136 |
The proof pattern |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3137 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3138 |
have "P (S::'a set)" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3139 |
also have "S = T" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3140 |
finally have "P T" . |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3141 |
|
27008 | 3142 |
no longer works (for similar reasons as the previous example) and |
3143 |
must be replaced by something like |
|
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3144 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3145 |
have "P (S::'a set)" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3146 |
moreover have "S = T" <...> |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3147 |
ultimately have "P T" by simp |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3148 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3149 |
- Tactics or packages written in ML code: |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3150 |
Code performing pattern matching on types via |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3151 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3152 |
Type ("set", [T]) => ... |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3153 |
|
27008 | 3154 |
must be rewritten. Moreover, functions like strip_type or |
3155 |
binder_types no longer return the right value when applied to a |
|
3156 |
type of the form |
|
26964
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3157 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3158 |
T1 => ... => Tn => U => bool |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3159 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3160 |
rather than |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3161 |
|
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3162 |
T1 => ... => Tn => U set |
df1f238a05f7
Added entry explaining incompatibilities introduced by replacing sets by predicates.
berghofe
parents:
26955
diff
changeset
|
3163 |
|
26874 | 3164 |
* Merged theories Wellfounded_Recursion, Accessible_Part and |
27067 | 3165 |
Wellfounded_Relations to theory Wellfounded. |
26748
4d51ddd6aa5c
Merged theories about wellfoundedness into one: Wellfounded.thy
krauss
parents:
26724
diff
changeset
|
3166 |
|
26513 | 3167 |
* Explicit class "eq" for executable equality. INCOMPATIBILITY. |
3168 |
||
26874 | 3169 |
* Class finite no longer treats UNIV as class parameter. Use class |
3170 |
enum from theory Library/Enum instead to achieve a similar effect. |
|
26445 | 3171 |
INCOMPATIBILITY. |
3172 |
||
26874 | 3173 |
* Theory List: rule list_induct2 now has explicitly named cases "Nil" |
3174 |
and "Cons". INCOMPATIBILITY. |
|
3175 |
||
26422
d5883907c514
HOL (and FOL): renamed variables in rules imp_elim and swap;
wenzelm
parents:
26401
diff
changeset
|
3176 |
* HOL (and FOL): renamed variables in rules imp_elim and swap. |
d5883907c514
HOL (and FOL): renamed variables in rules imp_elim and swap;
wenzelm
parents:
26401
diff
changeset
|
3177 |
Potential INCOMPATIBILITY. |
d5883907c514
HOL (and FOL): renamed variables in rules imp_elim and swap;
wenzelm
parents:
26401
diff
changeset
|
3178 |
|
26874 | 3179 |
* Theory Product_Type: duplicated lemmas split_Pair_apply and |
3180 |
injective_fst_snd removed, use split_eta and prod_eqI instead. |
|
3181 |
Renamed upd_fst to apfst and upd_snd to apsnd. INCOMPATIBILITY. |
|
26355 | 3182 |
|
26335
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3183 |
* Theory Nat: removed redundant lemmas that merely duplicate lemmas of |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3184 |
the same name in theory Orderings: |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3185 |
|
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3186 |
less_trans |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3187 |
less_linear |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3188 |
le_imp_less_or_eq |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3189 |
le_less_trans |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3190 |
less_le_trans |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3191 |
less_not_sym |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3192 |
less_asym |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3193 |
|
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3194 |
Renamed less_imp_le to less_imp_le_nat, and less_irrefl to |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3195 |
less_irrefl_nat. Potential INCOMPATIBILITY due to more general types |
961bbcc9d85b
removed redundant Nat.less_not_sym, Nat.less_asym;
wenzelm
parents:
26333
diff
changeset
|
3196 |
and different variable names. |
26315
cb3badaa192e
removed redundant less_trans, less_linear, le_imp_less_or_eq, le_less_trans, less_le_trans (cf. Orderings.thy);
wenzelm
parents:
26231
diff
changeset
|
3197 |
|
26231 | 3198 |
* Library/Option_ord.thy: Canonical order on option type. |
3199 |
||
27008 | 3200 |
* Library/RBT.thy: Red-black trees, an efficient implementation of |
3201 |
finite maps. |
|
26197 | 3202 |
|
26231 | 3203 |
* Library/Countable.thy: Type class for countable types. |
3204 |
||
26180
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3205 |
* Theory Int: The representation of numerals has changed. The infix |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3206 |
operator BIT and the bit datatype with constructors B0 and B1 have |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3207 |
disappeared. INCOMPATIBILITY, use "Int.Bit0 x" and "Int.Bit1 y" in |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3208 |
place of "x BIT bit.B0" and "y BIT bit.B1", respectively. Theorems |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3209 |
involving BIT, B0, or B1 have been renamed with "Bit0" or "Bit1" |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3210 |
accordingly. |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3211 |
|
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3212 |
* Theory Nat: definition of <= and < on natural numbers no longer |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3213 |
depend on well-founded relations. INCOMPATIBILITY. Definitions |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3214 |
le_def and less_def have disappeared. Consider lemmas not_less |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3215 |
[symmetric, where ?'a = nat] and less_eq [symmetric] instead. |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3216 |
|
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3217 |
* Theory Finite_Set: locales ACf, ACe, ACIf, ACIfSL and ACIfSLlin |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3218 |
(whose purpose mainly is for various fold_set functionals) have been |
26874 | 3219 |
abandoned in favor of the existing algebraic classes |
26180
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3220 |
ab_semigroup_mult, comm_monoid_mult, ab_semigroup_idem_mult, |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3221 |
lower_semilattice (resp. upper_semilattice) and linorder. |
26139 | 3222 |
INCOMPATIBILITY. |
26041
c2e15e65165f
locales ACf, ACIf, ACIfSL and ACIfSLlin have been abandoned in favour of the existing algebraic classes ab_semigroup_mult, ab_semigroup_idem_mult, lower_semilattice (resp. uper_semilattice) and linorder
haftmann
parents:
26013
diff
changeset
|
3223 |
|
26180
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3224 |
* Theory Transitive_Closure: induct and cases rules now declare proper |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3225 |
case_names ("base" and "step"). INCOMPATIBILITY. |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3226 |
|
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3227 |
* Theorem Inductive.lfp_ordinal_induct generalized to complete |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3228 |
lattices. The form set-specific version is available as |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3229 |
Inductive.lfp_ordinal_induct_set. |
26013
8764a1f1253b
Theorem Inductive.lfp_ordinal_induct generalized to complete lattices
haftmann
parents:
26006
diff
changeset
|
3230 |
|
26874 | 3231 |
* Renamed theorems "power.simps" to "power_int.simps". |
27067 | 3232 |
INCOMPATIBILITY. |
25961 | 3233 |
|
26180
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3234 |
* Class semiring_div provides basic abstract properties of semirings |
25942 | 3235 |
with division and modulo operations. Subsumes former class dvd_mod. |
3236 |
||
26180
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3237 |
* Merged theories IntDef, Numeral and IntArith into unified theory |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3238 |
Int. INCOMPATIBILITY. |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3239 |
|
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3240 |
* Theory Library/Code_Index: type "index" now represents natural |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3241 |
numbers rather than integers. INCOMPATIBILITY. |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3242 |
|
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3243 |
* New class "uminus" with operation "uminus" (split of from class |
cc85eaab20f6
Transitive_Closure: induct and cases rules now declare proper case_names;
wenzelm
parents:
26139
diff
changeset
|
3244 |
"minus" which now only has operation "minus", binary). |
25919
8b1c0d434824
joined theories IntDef, Numeral, IntArith to theory Int
haftmann
parents:
25900
diff
changeset
|
3245 |
INCOMPATIBILITY. |
8b1c0d434824
joined theories IntDef, Numeral, IntArith to theory Int
haftmann
parents:
25900
diff
changeset
|
3246 |
|
25522 | 3247 |
* Constants "card", "internal_split", "option_map" now with authentic |
25919
8b1c0d434824
joined theories IntDef, Numeral, IntArith to theory Int
haftmann
parents:
25900
diff
changeset
|
3248 |
syntax. INCOMPATIBILITY. |
25522 | 3249 |
|
3250 |
* Definitions subset_def, psubset_def, set_diff_def, Compl_def, |
|
3251 |
le_bool_def, less_bool_def, le_fun_def, less_fun_def, inf_bool_def, |
|
3252 |
sup_bool_def, Inf_bool_def, Sup_bool_def, inf_fun_def, sup_fun_def, |
|
3253 |
Inf_fun_def, Sup_fun_def, inf_set_def, sup_set_def, Inf_set_def, |
|
3254 |
Sup_set_def, le_def, less_def, option_map_def now with object |
|
25919
8b1c0d434824
joined theories IntDef, Numeral, IntArith to theory Int
haftmann
parents:
25900
diff
changeset
|
3255 |
equality. INCOMPATIBILITY. |
25464
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
3256 |
|
25705 | 3257 |
* Records. Removed K_record, and replaced it by pure lambda term |
25726
9728f319ffc6
* Metis prover an order of magnitude faster, works with multithreading.
wenzelm
parents:
25712
diff
changeset
|
3258 |
%x. c. The simplifier setup is now more robust against eta expansion. |
25705 | 3259 |
INCOMPATIBILITY: in cases explicitly referring to K_record. |
25464
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
3260 |
|
27067 | 3261 |
* Library/Multiset: {#a, b, c#} abbreviates {#a#} + {#b#} + {#c#}. |
3262 |
||
3263 |
* Library/ListVector: new theory of arithmetic vector operations. |
|
3264 |
||
3265 |
* Library/Order_Relation: new theory of various orderings as sets of |
|
3266 |
pairs. Defines preorders, partial orders, linear orders and |
|
3267 |
well-orders on sets and on types. |
|
26877 | 3268 |
|
25726
9728f319ffc6
* Metis prover an order of magnitude faster, works with multithreading.
wenzelm
parents:
25712
diff
changeset
|
3269 |
|
26197 | 3270 |
*** ZF *** |
3271 |
||
26874 | 3272 |
* Renamed some theories to allow to loading both ZF and HOL in the |
3273 |
same session: |
|
3274 |
||
3275 |
Datatype -> Datatype_ZF |
|
3276 |
Inductive -> Inductive_ZF |
|
3277 |
Int -> Int_ZF |
|
3278 |
IntDiv -> IntDiv_ZF |
|
3279 |
Nat -> Nat_ZF |
|
3280 |
List -> List_ZF |
|
3281 |
Main -> Main_ZF |
|
3282 |
||
3283 |
INCOMPATIBILITY: ZF theories that import individual theories below |
|
3284 |
Main might need to be adapted. Regular theory Main is still |
|
3285 |
available, as trivial extension of Main_ZF. |
|
26197 | 3286 |
|
3287 |
||
25737
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3288 |
*** ML *** |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3289 |
|
27067 | 3290 |
* ML within Isar: antiquotation @{const name} or @{const |
3291 |
name(typargs)} produces statically-checked Const term. |
|
3292 |
||
26401
e7a94081dce7
Functor NamedThmsFun: data is available to the user as dynamic fact;
wenzelm
parents:
26387
diff
changeset
|
3293 |
* Functor NamedThmsFun: data is available to the user as dynamic fact |
26724
ff6ff3a9010e
NamedThmsFun: removed obsolete print command -- facts are accesible via dynamic name;
wenzelm
parents:
26718
diff
changeset
|
3294 |
(of the same name). Removed obsolete print command. |
26401
e7a94081dce7
Functor NamedThmsFun: data is available to the user as dynamic fact;
wenzelm
parents:
26387
diff
changeset
|
3295 |
|
27067 | 3296 |
* Removed obsolete "use_legacy_bindings" function. |
26188 | 3297 |
|
25737
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3298 |
* The ``print mode'' is now a thread-local value derived from a global |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3299 |
template (the former print_mode reference), thus access becomes |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3300 |
non-critical. The global print_mode reference is for session |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3301 |
management only; user-code should use print_mode_value, |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3302 |
print_mode_active, PrintMode.setmp etc. INCOMPATIBILITY. |
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3303 |
|
26874 | 3304 |
* Functions system/system_out provide a robust way to invoke external |
29161
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
3305 |
shell commands, with propagation of interrupts (requires Poly/ML |
9903e84a9c9c
* Proofs of are run in parallel on multi-core systems;
wenzelm
parents:
29145
diff
changeset
|
3306 |
5.2.1). Do not use OS.Process.system etc. from the basis library! |
26222
edf6473ac9e9
* system/system_out provides a robust way to invoke external shell
wenzelm
parents:
26218
diff
changeset
|
3307 |
|
25737
84c92fc48e36
``print mode'' is now a thread-local value derived from a global template;
wenzelm
parents:
25726
diff
changeset
|
3308 |
|
25626
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3309 |
*** System *** |
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3310 |
|
25971 | 3311 |
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs --- |
3312 |
in accordance with Proof General 3.7, which prefers GNU emacs. |
|
25970
9053fd546501
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents:
25961
diff
changeset
|
3313 |
|
25626
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3314 |
* isatool tty runs Isabelle process with plain tty interaction; |
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3315 |
optional line editor may be specified via ISABELLE_LINE_EDITOR |
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3316 |
setting, the default settings attempt to locate "ledit" and "rlwrap". |
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3317 |
|
25651 | 3318 |
* isatool browser now works with Cygwin as well, using general |
3319 |
"javapath" function defined in Isabelle process environment. |
|
3320 |
||
27067 | 3321 |
* YXML notation provides a simple and efficient alternative to |
3322 |
standard XML transfer syntax. See src/Pure/General/yxml.ML and |
|
3323 |
isatool yxml as described in the Isabelle system manual. |
|
25651 | 3324 |
|
25652 | 3325 |
* JVM class isabelle.IsabelleProcess (located in Isabelle/lib/classes) |
25651 | 3326 |
provides general wrapper for managing an Isabelle process in a robust |
3327 |
fashion, with ``cooked'' output from stdin/stderr. |
|
3328 |
||
25855 | 3329 |
* Rudimentary Isabelle plugin for jEdit (see Isabelle/lib/jedit), |
3330 |
based on Isabelle/JVM process wrapper (see Isabelle/lib/classes). |
|
3331 |
||
27067 | 3332 |
* Removed obsolete THIS_IS_ISABELLE_BUILD feature. NB: the documented |
3333 |
way of changing the user's settings is via |
|
3334 |
ISABELLE_HOME_USER/etc/settings, which is a fully featured bash |
|
3335 |
script. |
|
3336 |
||
3337 |
* Multithreading.max_threads := 0 refers to the number of actual CPU |
|
3338 |
cores of the underlying machine, which is a good starting point for |
|
3339 |
optimal performance tuning. The corresponding usedir option -M allows |
|
3340 |
"max" as an alias for "0". WARNING: does not work on certain versions |
|
3341 |
of Mac OS (with Poly/ML 5.1). |
|
3342 |
||
3343 |
* isabelle-process: non-ML sessions are run with "nice", to reduce the |
|
3344 |
adverse effect of Isabelle flooding interactive front-ends (notably |
|
3345 |
ProofGeneral / XEmacs). |
|
3346 |
||
25626
3000965b1fdf
* isatool tty runs Isabelle process with plain tty interaction;
wenzelm
parents:
25609
diff
changeset
|
3347 |
|
25464
0ca80ce89001
moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents:
25459
diff
changeset
|
3348 |
|
25429 | 3349 |
New in Isabelle2007 (November 2007) |
3350 |
----------------------------------- |
|
17754
58a306d9f736
* Command 'find_theorems': support * wildcard in name: criterion.
wenzelm
parents:
17725
diff
changeset
|
3351 |
|
58a306d9f736
* Command 'find_theorems': support * wildcard in name: criterion.
wenzelm
parents:
17725
diff
changeset
|
3352 |
*** General *** |
58a306d9f736
* Command 'find_theorems': support * wildcard in name: criterion.
wenzelm
parents:
17725
diff
changeset
|
3353 |
|
22826 | 3354 |
* More uniform information about legacy features, notably a |
3355 |
warning/error of "Legacy feature: ...", depending on the state of the |
|
23367 | 3356 |
tolerate_legacy_features flag (default true). FUTURE INCOMPATIBILITY: |
3357 |
legacy features will disappear eventually. |
|
22826 | 3358 |
|
17918
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3359 |
* Theory syntax: the header format ``theory A = B + C:'' has been |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3360 |
discontinued in favour of ``theory A imports B C begin''. Use isatool |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3361 |
fixheaders to convert existing theory files. INCOMPATIBILITY. |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3362 |
|
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3363 |
* Theory syntax: the old non-Isar theory file format has been |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3364 |
discontinued altogether. Note that ML proof scripts may still be used |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3365 |
with Isar theories; migration is usually quite simple with the ML |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3366 |
function use_legacy_bindings. INCOMPATIBILITY. |
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3367 |
|
22871 | 3368 |
* Theory syntax: some popular names (e.g. 'class', 'declaration', |
3369 |
'fun', 'help', 'if') are now keywords. INCOMPATIBILITY, use double |
|
3370 |
quotes. |
|
19814
faa698d46686
* Theory syntax: some popular names (e.g. "class", "if") are now keywords.
wenzelm
parents:
19783
diff
changeset
|
3371 |
|
23888
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3372 |
* Theory loader: be more serious about observing the static theory |
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3373 |
header specifications (including optional directories), but not the |
24172
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3374 |
accidental file locations of previously successful loads. The strict |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3375 |
update policy of former update_thy is now already performed by |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3376 |
use_thy, so the former has been removed; use_thys updates several |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3377 |
theories simultaneously, just as 'imports' within a theory header |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3378 |
specification, but without merging the results. Potential |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3379 |
INCOMPATIBILITY: may need to refine theory headers and commands |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3380 |
ROOT.ML which depend on load order. |
23888
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3381 |
|
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3382 |
* Theory loader: optional support for content-based file |
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3383 |
identification, instead of the traditional scheme of full physical |
23889 | 3384 |
path plus date stamp; configured by the ISABELLE_FILE_IDENT setting |
23888
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3385 |
(cf. the system manual). The new scheme allows to work with |
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3386 |
non-finished theories in persistent session images, such that source |
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3387 |
files may be moved later on without requiring reloads. |
babe337cce2d
* Theory loader: be more serious about observing the static theory header specifications;
wenzelm
parents:
23881
diff
changeset
|
3388 |
|
24187
8bdf5ca5871f
* Theory loader: old-style ML proof scripts are considered a legacy feature;
wenzelm
parents:
24172
diff
changeset
|
3389 |
* Theory loader: old-style ML proof scripts being *attached* to a thy |
8bdf5ca5871f
* Theory loader: old-style ML proof scripts are considered a legacy feature;
wenzelm
parents:
24172
diff
changeset
|
3390 |
file (with the same base name as the theory) are considered a legacy |
24800 | 3391 |
feature, which will disappear eventually. Even now, the theory loader |
3392 |
no longer maintains dependencies on such files. |
|
3393 |
||
3394 |
* Syntax: the scope for resolving ambiguities via type-inference is |
|
3395 |
now limited to individual terms, instead of whole simultaneous |
|
24234
4714e04fb8e9
* Syntax: scope for resolving ambiguities via type-inference is now limited to individual terms;
wenzelm
parents:
24213
diff
changeset
|
3396 |
specifications as before. This greatly reduces the complexity of the |
4714e04fb8e9
* Syntax: scope for resolving ambiguities via type-inference is now limited to individual terms;
wenzelm
parents:
24213
diff
changeset
|
3397 |
syntax module and improves flexibility by separating parsing and |
4714e04fb8e9
* Syntax: scope for resolving ambiguities via type-inference is now limited to individual terms;
wenzelm
parents:
24213
diff
changeset
|
3398 |
type-checking. INCOMPATIBILITY: additional type-constraints (explicit |
4714e04fb8e9
* Syntax: scope for resolving ambiguities via type-inference is now limited to individual terms;
wenzelm
parents:
24213
diff
changeset
|
3399 |
'fixes' etc.) are required in rare situations. |
4714e04fb8e9
* Syntax: scope for resolving ambiguities via type-inference is now limited to individual terms;
wenzelm
parents:
24213
diff
changeset
|
3400 |
|
25034 | 3401 |
* Syntax: constants introduced by new-style packages ('definition', |
3402 |
'abbreviation' etc.) are passed through the syntax module in |
|
3403 |
``authentic mode''. This means that associated mixfix annotations |
|
3404 |
really stick to such constants, independently of potential name space |
|
3405 |
ambiguities introduced later on. INCOMPATIBILITY: constants in parse |
|
3406 |
trees are represented slightly differently, may need to adapt syntax |
|
3407 |
translations accordingly. Use CONST marker in 'translations' and |
|
3408 |
@{const_syntax} antiquotation in 'parse_translation' etc. |
|
3409 |
||
17981
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3410 |
* Legacy goal package: reduced interface to the bare minimum required |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3411 |
to keep existing proof scripts running. Most other user-level |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3412 |
functions are now part of the OldGoals structure, which is *not* open |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3413 |
by default (consider isatool expandshort before open OldGoals). |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3414 |
Removed top_sg, prin, printyp, pprint_term/typ altogether, because |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3415 |
these tend to cause confusion about the actual goal (!) context being |
2602be0d99ae
* Legacy goal package: reduced interface to the bare minimum required to keep existing proof scripts running.
wenzelm
parents:
17918
diff
changeset
|
3416 |
used here, which is not necessarily the same as the_context(). |
17918
93e26302733e
* Theory syntax: discontinued non-Isar format and old Isar headers;
wenzelm
parents:
17890
diff
changeset
|
3417 |
|
23379
d0e3f790bd73
updated 'find_theorems' -- moved ProofGeneral specifics to ProofGeneral/CHANGES;
wenzelm
parents:
23377
diff
changeset
|
3418 |
* Command 'find_theorems': supports "*" wild-card in "name:" |
d0e3f790bd73
updated 'find_theorems' -- moved ProofGeneral specifics to ProofGeneral/CHANGES;
wenzelm
parents:
23377
diff
changeset
|
3419 |
criterion; "with_dups" option. Certain ProofGeneral versions might |
d0e3f790bd73
updated 'find_theorems' -- moved ProofGeneral specifics to ProofGeneral/CHANGES;
wenzelm
parents:
23377
diff
changeset
|
3420 |
support a specific search form (see ProofGeneral/CHANGES). |
22965 | 3421 |
|
20370 | 3422 |
* The ``prems limit'' option (cf. ProofContext.prems_limit) is now -1 |
3423 |
by default, which means that "prems" (and also "fixed variables") are |
|
3424 |
suppressed from proof state output. Note that the ProofGeneral |
|
3425 |
settings mechanism allows to change and save options persistently, but |
|
3426 |
older versions of Isabelle will fail to start up if a negative prems |
|
3427 |
limit is imposed. |
|
3428 |
||
21308
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3429 |
* Local theory targets may be specified by non-nested blocks of |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3430 |
``context/locale/class ... begin'' followed by ``end''. The body may |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3431 |
contain definitions, theorems etc., including any derived mechanism |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3432 |
that has been implemented on top of these primitives. This concept |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3433 |
generalizes the existing ``theorem (in ...)'' towards more versatility |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3434 |
and scalability. |
73883a528b26
* Local theory targets ``context/locale/class ... begin'' followed by ``end''.
wenzelm
parents:
21265
diff
changeset
|
3435 |
|
21960
0574f192b78a
* Proof General: proper undo of final 'end'; discontinued Isabelle/classic;
wenzelm
parents:
21896
diff
changeset
|
3436 |
* Proof General interface: proper undo of final 'end' command; |
0574f192b78a
* Proof General: proper undo of final 'end'; discontinued Isabelle/classic;
wenzelm
parents:
21896
diff
changeset
|
3437 |
discontinued Isabelle/classic mode (ML proof scripts). |
0574f192b78a
* Proof General: proper undo of final 'end'; discontinued Isabelle/classic;
wenzelm
parents:
21896
diff
changeset
|
3438 |
|
17754
58a306d9f736
* Command 'find_theorems': support * wildcard in name: criterion.
wenzelm
parents:
17725
diff
changeset
|
3439 |
|
17865 | 3440 |
*** Document preparation *** |
3441 |
||
21717 | 3442 |
* Added antiquotation @{theory name} which prints the given name, |
3443 |
after checking that it refers to a valid ancestor theory in the |
|
3444 |
current context. |
|
21339 | 3445 |
|
17869 | 3446 |
* Added antiquotations @{ML_type text} and @{ML_struct text} which |
3447 |
check the given source text as ML type/structure, printing verbatim. |
|
17865 | 3448 |
|
21717 | 3449 |
* Added antiquotation @{abbrev "c args"} which prints the abbreviation |
3450 |
"c args == rhs" given in the current context. (Any number of |
|
21735 | 3451 |
arguments may be given on the LHS.) |
21717 | 3452 |
|
3453 |
||
17779 | 3454 |
*** Pure *** |
3455 |
||
24800 | 3456 |
* The 'class' package offers a combination of axclass and locale to |
25129 | 3457 |
achieve Haskell-like type classes in Isabelle. Definitions and |
3458 |
theorems within a class context produce both relative results (with |
|
3459 |
implicit parameters according to the locale context), and polymorphic |
|
3460 |
constants with qualified polymorphism (according to the class |
|
3461 |
context). Within the body context of a 'class' target, a separate |
|
3462 |
syntax layer ("user space type system") takes care of converting |
|
3463 |
between global polymorphic consts and internal locale representation. |
|
25177 | 3464 |
See src/HOL/ex/Classpackage.thy for examples (as well as main HOL). |
25184 | 3465 |
"isatool doc classes" provides a tutorial. |
20807 | 3466 |
|
25199 | 3467 |
* Generic code generator framework allows to generate executable |
24800 | 3468 |
code for ML and Haskell (including Isabelle classes). A short usage |
3469 |
sketch: |
|
20188
8b22026445af
added notes on class_package.ML and codegen_package.ML
haftmann
parents:
20169
diff
changeset
|
3470 |
|
8b22026445af
added notes on class_package.ML and codegen_package.ML
haftmann
parents:
20169
diff
changeset
|
3471 |
internal compilation: |
25199 | 3472 |
export_code <list of constants (term syntax)> in SML |
20453
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3473 |
writing SML code to a file: |
25199 | 3474 |
export_code <list of constants (term syntax)> in SML <filename> |
22735 | 3475 |
writing OCaml code to a file: |
25199 | 3476 |
export_code <list of constants (term syntax)> in OCaml <filename> |
20188
8b22026445af
added notes on class_package.ML and codegen_package.ML
haftmann
parents:
20169
diff
changeset
|
3477 |
writing Haskell code to a bunch of files: |
25199 | 3478 |
export_code <list of constants (term syntax)> in Haskell <filename> |
3479 |
||
3480 |
evaluating closed propositions to True/False using code generation: |
|
25184 | 3481 |
method ``eval'' |
3482 |
||
3483 |
Reasonable default setup of framework in HOL. |
|
20453
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3484 |
|
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3485 |
Theorem attributs for selecting and transforming function equations theorems: |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3486 |
|
22845 | 3487 |
[code fun]: select a theorem as function equation for a specific constant |
3488 |
[code fun del]: deselect a theorem as function equation for a specific constant |
|
3489 |
[code inline]: select an equation theorem for unfolding (inlining) in place |
|
3490 |
[code inline del]: deselect an equation theorem for unfolding (inlining) in place |
|
20453
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3491 |
|
22735 | 3492 |
User-defined serializations (target in {SML, OCaml, Haskell}): |
20453
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3493 |
|
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3494 |
code_const <and-list of constants (term syntax)> |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3495 |
{(target) <and-list of const target syntax>}+ |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3496 |
|
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3497 |
code_type <and-list of type constructors> |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3498 |
{(target) <and-list of type target syntax>}+ |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3499 |
|
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3500 |
code_instance <and-list of instances> |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3501 |
{(target)}+ |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3502 |
where instance ::= <type constructor> :: <class> |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3503 |
|
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3504 |
code_class <and_list of classes> |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3505 |
{(target) <and-list of class target syntax>}+ |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3506 |
where class target syntax ::= <class name> {where {<classop> == <target syntax>}+}? |
855f07fabd76
final syntax for some Isar code generator keywords
haftmann
parents:
20375
diff
changeset
|
3507 |
|
25199 | 3508 |
code_instance and code_class only are effective to target Haskell. |
22735 | 3509 |
|
25177 | 3510 |
For example usage see src/HOL/ex/Codegenerator.thy and |
3511 |
src/HOL/ex/Codegenerator_Pretty.thy. A separate tutorial on code |
|
24800 | 3512 |
generation from Isabelle/HOL theories is available via "isatool doc |
3513 |
codegen". |
|
20188
8b22026445af
added notes on class_package.ML and codegen_package.ML
haftmann
parents:
20169
diff
changeset
|
3514 |
|
25129 | 3515 |
* Code generator: consts in 'consts_code' Isar commands are now |
3516 |
referred to by usual term syntax (including optional type |
|
3517 |
annotations). |
|
3518 |
||
19254 | 3519 |
* Command 'no_translations' removes translation rules from theory |
3520 |
syntax. |
|
3521 |
||
19625
285771cec083
* Pure: overloaded definitions are now actually checked for acyclic dependencies;
wenzelm
parents:
19587
diff
changeset
|
3522 |
* Overloaded definitions are now actually checked for acyclic |
19714 | 3523 |
dependencies. The overloading scheme is slightly more general than |
3524 |
that of Haskell98, although Isabelle does not demand an exact |
|
3525 |
correspondence to type class and instance declarations. |
|
3526 |
INCOMPATIBILITY, use ``defs (unchecked overloaded)'' to admit more |
|
3527 |
exotic versions of overloading -- at the discretion of the user! |
|
19711 | 3528 |
|
3529 |
Polymorphic constants are represented via type arguments, i.e. the |
|
3530 |
instantiation that matches an instance against the most general |
|
3531 |
declaration given in the signature. For example, with the declaration |
|
3532 |
c :: 'a => 'a => 'a, an instance c :: nat => nat => nat is represented |
|
3533 |
as c(nat). Overloading is essentially simultaneous structural |
|
3534 |
recursion over such type arguments. Incomplete specification patterns |
|
19714 | 3535 |
impose global constraints on all occurrences, e.g. c('a * 'a) on the |
19715 | 3536 |
LHS means that more general c('a * 'b) will be disallowed on any RHS. |
19714 | 3537 |
Command 'print_theory' outputs the normalized system of recursive |
3538 |
equations, see section "definitions". |
|
19625
285771cec083
* Pure: overloaded definitions are now actually checked for acyclic dependencies;
wenzelm
parents:
19587
diff
changeset
|
3539 |
|
24086 | 3540 |
* Configuration options are maintained within the theory or proof |
3541 |
context (with name and type bool/int/string), providing a very simple |
|
3542 |
interface to a poor-man's version of general context data. Tools may |
|
24110
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3543 |
declare options in ML (e.g. using Attrib.config_int) and then refer to |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3544 |
these values using Config.get etc. Users may change options via an |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3545 |
associated attribute of the same name. This form of context |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3546 |
declaration works particularly well with commands 'declare' or |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3547 |
'using', for example ``declare [[foo = 42]]''. Thus it has become |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3548 |
very easy to avoid global references, which would not observe Isar |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3549 |
toplevel undo/redo and fail to work with multithreading. |
24086 | 3550 |
|
24172
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3551 |
Various global ML references of Pure and HOL have been turned into |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3552 |
configuration options: |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3553 |
|
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3554 |
Unify.search_bound unify_search_bound |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3555 |
Unify.trace_bound unify_trace_bound |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3556 |
Unify.trace_simp unify_trace_simp |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3557 |
Unify.trace_types unify_trace_types |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3558 |
Simplifier.simp_depth_limit simp_depth_limit |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3559 |
Blast.depth_limit blast_depth_limit |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3560 |
DatatypeProp.dtK datatype_distinctness_limit |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3561 |
fast_arith_neq_limit fast_arith_neq_limit |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3562 |
fast_arith_split_limit fast_arith_split_limit |
06e42cf7df4e
theory loader: added use_thys, removed obsolete update_thy;
wenzelm
parents:
24110
diff
changeset
|
3563 |
|
24086 | 3564 |
* Named collections of theorems may be easily installed as context |
24800 | 3565 |
data using the functor NamedThmsFun (see also |
24086 | 3566 |
src/Pure/Tools/named_thms.ML). The user may add or delete facts via |
24110
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3567 |
attributes; there is also a toplevel print command. This facility is |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3568 |
just a common case of general context data, which is the preferred way |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3569 |
for anything more complex than just a list of facts in canonical |
4ab3084e311c
tuned config options: eliminated separate attribute "option";
wenzelm
parents:
24086
diff
changeset
|
3570 |
order. |
24086 | 3571 |
|
24032 | 3572 |
* Isar: command 'declaration' augments a local theory by generic |
3573 |
declaration functions written in ML. This enables arbitrary content |
|
3574 |
being added to the context, depending on a morphism that tells the |
|
3575 |
difference of the original declaration context wrt. the application |
|
3576 |
context encountered later on. |
|
3577 |
||
3578 |
* Isar: proper interfaces for simplification procedures. Command |
|
3579 |
'simproc_setup' declares named simprocs (with match patterns, and body |
|
3580 |
text in ML). Attribute "simproc" adds/deletes simprocs in the current |
|
3581 |
context. ML antiquotation @{simproc name} retrieves named simprocs. |
|
3582 |
||
3583 |
* Isar: an extra pair of brackets around attribute declarations |
|
3584 |
abbreviates a theorem reference involving an internal dummy fact, |
|
3585 |
which will be ignored later --- only the effect of the attribute on |
|
3586 |
the background context will persist. This form of in-place |
|
3587 |
declarations is particularly useful with commands like 'declare' and |
|
3588 |
'using', for example ``have A using [[simproc a]] by simp''. |
|
3589 |
||
23369
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3590 |
* Isar: method "assumption" (and implicit closing of subproofs) now |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3591 |
takes simple non-atomic goal assumptions into account: after applying |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3592 |
an assumption as a rule the resulting subgoals are solved by atomic |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3593 |
assumption steps. This is particularly useful to finish 'obtain' |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3594 |
goals, such as "!!x. (!!x. P x ==> thesis) ==> P x ==> thesis", |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3595 |
without referring to the original premise "!!x. P x ==> thesis" in the |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3596 |
Isar proof context. POTENTIAL INCOMPATIBILITY: method "assumption" is |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3597 |
more permissive. |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3598 |
|
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3599 |
* Isar: implicit use of prems from the Isar proof context is |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3600 |
considered a legacy feature. Common applications like ``have A .'' |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3601 |
may be replaced by ``have A by fact'' or ``note `A`''. In general, |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3602 |
referencing facts explicitly here improves readability and |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3603 |
maintainability of proof texts. |
227c51012cdb
* Isar: method "assumption" (implicit closing of subproofs) takes non-atomic goal assumptions into account;
wenzelm
parents:
23367
diff
changeset
|
3604 |
|
17865 | 3605 |
* Isar: improper proof element 'guess' is like 'obtain', but derives |
3606 |
the obtained context from the course of reasoning! For example: |
|
3607 |
||
3608 |
assume "EX x y. A x & B y" -- "any previous fact" |
|
3609 |
then guess x and y by clarify |
|
3610 |
||
3611 |
This technique is potentially adventurous, depending on the facts and |
|
3612 |
proof tools being involved here. |
|
3613 |
||
18020 | 3614 |
* Isar: known facts from the proof context may be specified as literal |
3615 |
propositions, using ASCII back-quote syntax. This works wherever |
|
3616 |
named facts used to be allowed so far, in proof commands, proof |
|
3617 |
methods, attributes etc. Literal facts are retrieved from the context |
|
3618 |
according to unification of type and term parameters. For example, |
|
3619 |
provided that "A" and "A ==> B" and "!!x. P x ==> Q x" are known |
|
3620 |
theorems in the current context, then these are valid literal facts: |
|
3621 |
`A` and `A ==> B` and `!!x. P x ==> Q x" as well as `P a ==> Q a` etc. |
|
3622 |
||
3623 |
There is also a proof method "fact" which does the same composition |
|
18044 | 3624 |
for explicit goal states, e.g. the following proof texts coincide with |
3625 |
certain special cases of literal facts: |
|
18020 | 3626 |
|
3627 |
have "A" by fact == note `A` |
|
3628 |
have "A ==> B" by fact == note `A ==> B` |
|
3629 |
have "!!x. P x ==> Q x" by fact == note `!!x. P x ==> Q x` |
|
3630 |
have "P a ==> Q a" by fact == note `P a ==> Q a` |
|
3631 |
||
20118
0c1ec587a5a8
* Isar: ":" (colon) is no longer a symbolic identifier character;
wenzelm
parents:
20090
diff
changeset
|
3632 |
* Isar: ":" (colon) is no longer a symbolic identifier character in |
0c1ec587a5a8
* Isar: ":" (colon) is no longer a symbolic identifier character;
wenzelm
parents:
20090
diff
changeset
|
3633 |
outer syntax. Thus symbolic identifiers may be used without |
0c1ec587a5a8
* Isar: ":" (colon) is no longer a symbolic identifier character;
wenzelm
parents:
20090
diff
changeset
|
3634 |
additional white space in declarations like this: ``assume *: A''. |
0c1ec587a5a8
* Isar: ":" (colon) is no longer a symbolic identifier character;
wenzelm
parents:
20090
diff
changeset
|
3635 |
|
20013 | 3636 |
* Isar: 'print_facts' prints all local facts of the current context, |
3637 |
both named and unnamed ones. |
|
3638 |
||
18308 | 3639 |
* Isar: 'def' now admits simultaneous definitions, e.g.: |
3640 |
||
3641 |
def x == "t" and y == "u" |
|
3642 |
||
18540 | 3643 |
* Isar: added command 'unfolding', which is structurally similar to |
3644 |
'using', but affects both the goal state and facts by unfolding given |
|
18815
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3645 |
rewrite rules. Thus many occurrences of the 'unfold' method or |
18540 | 3646 |
'unfolded' attribute may be replaced by first-class proof text. |
3647 |
||
18815
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3648 |
* Isar: methods 'unfold' / 'fold', attributes 'unfolded' / 'folded', |
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3649 |
and command 'unfolding' now all support object-level equalities |
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3650 |
(potentially conditional). The underlying notion of rewrite rule is |
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3651 |
analogous to the 'rule_format' attribute, but *not* that of the |
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3652 |
Simplifier (which is usually more generous). |
cb778c0ce1b5
Pure/Isar: (un)folded, (un)fold, unfolding support
wenzelm
parents:
18738
diff
changeset
|
3653 |
|
24238 | 3654 |
* Isar: the new attribute [rotated n] (default n = 1) rotates the |
3655 |
premises of a theorem by n. Useful in conjunction with drule. |
|
3656 |
||
19220 | 3657 |
* Isar: the goal restriction operator [N] (default N = 1) evaluates a |
3658 |
method expression within a sandbox consisting of the first N |
|
19240 | 3659 |
sub-goals, which need to exist. For example, ``simp_all [3]'' |
3660 |
simplifies the first three sub-goals, while (rule foo, simp_all)[] |
|
3661 |
simplifies all new goals that emerge from applying rule foo to the |
|
3662 |
originally first one. |
|
19220 | 3663 |
|
19814
faa698d46686
* Theory syntax: some popular names (e.g. "class", "if") are now keywords.
wenzelm
parents:
19783
diff
changeset
|
3664 |
* Isar: schematic goals are no longer restricted to higher-order |
faa698d46686
* Theory syntax: some popular names (e.g. "class", "if") are now keywords.
wenzelm
parents:
19783
diff
changeset
|
3665 |
patterns; e.g. ``lemma "?P(?x)" by (rule TrueI)'' now works as |
faa698d46686
* Theory syntax: some popular names (e.g. "class", "if") are now keywords.
wenzelm
parents:
19783
diff
changeset
|
3666 |
expected. |
faa698d46686
* Theory syntax: some popular names (e.g. "class", "if") are now keywords.
wenzelm
parents:
19783
diff
changeset
|
3667 |
|
18901 | 3668 |
* Isar: the conclusion of a long theorem statement is now either |
3669 |
'shows' (a simultaneous conjunction, as before), or 'obtains' |
|
3670 |
(essentially a disjunction of cases with local parameters and |
|
3671 |
assumptions). The latter allows to express general elimination rules |
|
18910 | 3672 |
adequately; in this notation common elimination rules look like this: |
18901 | 3673 |
|
3674 |
lemma exE: -- "EX x. P x ==> (!!x. P x ==> thesis) ==> thesis" |
|
3675 |
assumes "EX x. P x" |
|
3676 |
obtains x where "P x" |
|
3677 |
||
3678 |
lemma conjE: -- "A & B ==> (A ==> B ==> thesis) ==> thesis" |
|
3679 |
assumes "A & B" |
|
3680 |
obtains A and B |
|
3681 |
||
3682 |
lemma disjE: -- "A | B ==> (A ==> thesis) ==> (B ==> thesis) ==> thesis" |
|
3683 |
assumes "A | B" |
|
3684 |
obtains |
|
3685 |
A |
|
3686 |
| B |
|
3687 |
||
18910 | 3688 |
The subsequent classical rules even refer to the formal "thesis" |
18901 | 3689 |
explicitly: |
3690 |
||
3691 |
lemma classical: -- "(~ thesis ==> thesis) ==> thesis" |
|
3692 |
obtains "~ thesis" |
|
3693 |
||
18910 | 3694 |
lemma Peirce's_Law: -- "((thesis ==> something) ==> thesis) ==> thesis" |
3695 |
obtains "thesis ==> something" |
|
18901 | 3696 |
|
3697 |
The actual proof of an 'obtains' statement is analogous to that of the |
|
18910 | 3698 |
Isar proof element 'obtain', only that there may be several cases. |
3699 |
Optional case names may be specified in parentheses; these will be |
|
3700 |
available both in the present proof and as annotations in the |
|
3701 |
resulting rule, for later use with the 'cases' method (cf. attribute |
|
3702 |
case_names). |
|
18901 | 3703 |
|
21447
379f130843f7
* Isar: the assumptions of a long theorem statement are available as assms;
wenzelm
parents:
21406
diff
changeset
|
3704 |
* Isar: the assumptions of a long theorem statement are available as |
379f130843f7
* Isar: the assumptions of a long theorem statement are available as assms;
wenzelm
parents:
21406
diff
changeset
|
3705 |
"assms" fact in the proof context. This is more appropriate than the |
379f130843f7
* Isar: the assumptions of a long theorem statement are available as assms;
wenzelm
parents:
21406
diff
changeset
|
3706 |
(historical) "prems", which refers to all assumptions of the current |
379f130843f7
* Isar: the assumptions of a long theorem statement are available as assms;
wenzelm
parents:
21406
diff
changeset
|
3707 |
context, including those from the target locale, proof body etc. |
379f130843f7
* Isar: the assumptions of a long theorem statement are available as assms;
wenzelm
parents:
21406
diff
changeset
|
3708 |
|
19263 | 3709 |
* Isar: 'print_statement' prints theorems from the current theory or |
3710 |
proof context in long statement form, according to the syntax of a |
|
3711 |
top-level lemma. |
|
3712 |
||
18901 | 3713 |
* Isar: 'obtain' takes an optional case name for the local context |
3714 |
introduction rule (default "that"). |
|
3715 |
||
19587 | 3716 |
* Isar: removed obsolete 'concl is' patterns. INCOMPATIBILITY, use |
3717 |
explicit (is "_ ==> ?foo") in the rare cases where this still happens |
|
3718 |
to occur. |
|
3719 |
||
19682
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3720 |
* Pure: syntax "CONST name" produces a fully internalized constant |
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3721 |
according to the current context. This is particularly useful for |
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3722 |
syntax translations that should refer to internal constant |
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3723 |
representations independently of name spaces. |
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3724 |
|
21537
45b3a85ee548
* Pure: syntax constant for foo (binder) is called foo_binder;
wenzelm
parents:
21471
diff
changeset
|
3725 |
* Pure: syntax constant for foo (binder "FOO ") is called "foo_binder" |
45b3a85ee548
* Pure: syntax constant for foo (binder) is called foo_binder;
wenzelm
parents:
21471
diff
changeset
|
3726 |
instead of "FOO ". This allows multiple binder declarations to coexist |
45b3a85ee548
* Pure: syntax constant for foo (binder) is called foo_binder;
wenzelm
parents:
21471
diff
changeset
|
3727 |
in the same context. INCOMPATIBILITY. |
45b3a85ee548
* Pure: syntax constant for foo (binder) is called foo_binder;
wenzelm
parents:
21471
diff
changeset
|
3728 |
|
21209
dbb8decc36bc
'const_syntax' command: allow fixed variables, renamed to 'notation';
wenzelm
parents:
21200
diff
changeset
|
3729 |
* Isar/locales: 'notation' provides a robust interface to the 'syntax' |
dbb8decc36bc
'const_syntax' command: allow fixed variables, renamed to 'notation';
wenzelm
parents:
21200
diff
changeset
|
3730 |
primitive that also works in a locale context (both for constants and |
24950 | 3731 |
fixed variables). Type declaration and internal syntactic representation |
3732 |
of given constants retrieved from the context. Likewise, the |
|
3733 |
'no_notation' command allows to remove given syntax annotations from the |
|
3734 |
current context. |
|
19682
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3735 |
|
19665 | 3736 |
* Isar/locales: new derived specification elements 'axiomatization', |
3737 |
'definition', 'abbreviation', which support type-inference, admit |
|
19083 | 3738 |
object-level specifications (equality, equivalence). See also the |
3739 |
isar-ref manual. Examples: |
|
19081
085b5badb8de
* Isar/locales: new derived specification elements 'definition', 'abbreviation', 'axiomatization';
wenzelm
parents:
19034
diff
changeset
|
3740 |
|
19665 | 3741 |
axiomatization |
21595 | 3742 |
eq (infix "===" 50) where |
3743 |
eq_refl: "x === x" and eq_subst: "x === y ==> P x ==> P y" |
|
3744 |
||
3745 |
definition "f x y = x + y + 1" |
|
3746 |
definition g where "g x = f x x" |
|
19081
085b5badb8de
* Isar/locales: new derived specification elements 'definition', 'abbreviation', 'axiomatization';
wenzelm
parents:
19034
diff
changeset
|
3747 |
|
19363 | 3748 |
abbreviation |
21595 | 3749 |
neq (infix "=!=" 50) where |
19363 | 3750 |
"x =!= y == ~ (x === y)" |
19081
085b5badb8de
* Isar/locales: new derived specification elements 'definition', 'abbreviation', 'axiomatization';
wenzelm
parents:
19034
diff
changeset
|
3751 |
|
19083 | 3752 |
These specifications may be also used in a locale context. Then the |
3753 |
constants being introduced depend on certain fixed parameters, and the |
|
3754 |
constant name is qualified by the locale base name. An internal |
|
3755 |
abbreviation takes care for convenient input and output, making the |
|
19088 | 3756 |
parameters implicit and using the original short name. See also |
25177 | 3757 |
src/HOL/ex/Abstract_NAT.thy for an example of deriving polymorphic |
19083 | 3758 |
entities from a monomorphic theory. |
3759 |
||
3760 |
Presently, abbreviations are only available 'in' a target locale, but |
|
19363 | 3761 |
not inherited by general import expressions. Also note that |
3762 |
'abbreviation' may be used as a type-safe replacement for 'syntax' + |
|
24735
3a55ee2cae70
* Pure/Isar: unified specification syntax admits type inference and dummy patterns;
wenzelm
parents:
24706
diff
changeset
|
3763 |
'translations' in common applications. The "no_abbrevs" print mode |
3a55ee2cae70
* Pure/Isar: unified specification syntax admits type inference and dummy patterns;
wenzelm
parents:
24706
diff
changeset
|
3764 |
prevents folding of abbreviations in term output. |
19084 | 3765 |
|
19682
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3766 |
Concrete syntax is attached to specified constants in internal form, |
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3767 |
independently of name spaces. The parse tree representation is |
21209
dbb8decc36bc
'const_syntax' command: allow fixed variables, renamed to 'notation';
wenzelm
parents:
21200
diff
changeset
|
3768 |
slightly different -- use 'notation' instead of raw 'syntax', and |
19682
c8c301eb965a
* Pure: syntax 'CONST name' produces a fully internalized constant;
wenzelm
parents:
19665
diff
changeset
|
3769 |
'translations' with explicit "CONST" markup to accommodate this. |
19665 | 3770 |
|
24800 | 3771 |
* Pure/Isar: unified syntax for new-style specification mechanisms |
3772 |
(e.g. 'definition', 'abbreviation', or 'inductive' in HOL) admits |
|
3773 |
full type inference and dummy patterns ("_"). For example: |
|
24735
3a55ee2cae70
* Pure/Isar: unified specification syntax admits type inference and dummy patterns;
wenzelm
parents:
24706
diff
changeset
|
3774 |
|
3a55ee2cae70
* Pure/Isar: unified specification syntax admits type inference and dummy patterns;
wenzelm
parents:
24706
diff
changeset
|
3775 |
definition "K x _ = x" |
3a55ee2cae70
* Pure/Isar: unified specification syntax admits type inference and dummy patterns;
wenzelm
parents:
24706
diff
changeset
|
3776 |
|
24738 | 3777 |
inductive conj for A B |
3778 |
where "A ==> B ==> conj A B" |
|
3779 |
||
21735 | 3780 |
* Pure: command 'print_abbrevs' prints all constant abbreviations of |
3781 |
the current context. Print mode "no_abbrevs" prevents inversion of |
|
3782 |
abbreviations on output. |
|
3783 |
||
24800 | 3784 |
* Isar/locales: improved parameter handling: use of locales "var" and |
3785 |
"struct" no longer necessary; - parameter renamings are no longer |
|
3786 |
required to be injective. For example, this allows to define |
|
3787 |
endomorphisms as locale endom = homom mult mult h. |
|
19783 | 3788 |
|
19931
fb32b43e7f80
Restructured locales with predicates: import is now an interpretation.
ballarin
parents:
19895
diff
changeset
|
3789 |
* Isar/locales: changed the way locales with predicates are defined. |
fb32b43e7f80
Restructured locales with predicates: import is now an interpretation.
ballarin
parents:
19895
diff
changeset
|
3790 |
Instead of accumulating the specification, the imported expression is |
22126 | 3791 |
now an interpretation. INCOMPATIBILITY: different normal form of |
3792 |
locale expressions. In particular, in interpretations of locales with |
|
3793 |
predicates, goals repesenting already interpreted fragments are not |
|
3794 |
removed automatically. Use methods `intro_locales' and |
|
3795 |
`unfold_locales'; see below. |
|
3796 |
||
3797 |
* Isar/locales: new methods `intro_locales' and `unfold_locales' |
|
3798 |
provide backward reasoning on locales predicates. The methods are |
|
3799 |
aware of interpretations and discharge corresponding goals. |
|
3800 |
`intro_locales' is less aggressive then `unfold_locales' and does not |
|
3801 |
unfold predicates to assumptions. |
|
19931
fb32b43e7f80
Restructured locales with predicates: import is now an interpretation.
ballarin
parents:
19895
diff
changeset
|
3802 |
|
fb32b43e7f80
Restructured locales with predicates: import is now an interpretation.
ballarin
parents:
19895
diff
changeset
|
3803 |
* Isar/locales: the order in which locale fragments are accumulated |
22126 | 3804 |
has changed. This enables to override declarations from fragments due |
3805 |
to interpretations -- for example, unwanted simp rules. |
|
19931
fb32b43e7f80
Restructured locales with predicates: import is now an interpretation.
ballarin
parents:
19895
diff
changeset
|
3806 |
|
23920 | 3807 |
* Isar/locales: interpretation in theories and proof contexts has been |
3808 |
extended. One may now specify (and prove) equations, which are |
|
3809 |
unfolded in interpreted theorems. This is useful for replacing |
|
3810 |
defined concepts (constants depending on locale parameters) by |
|
3811 |
concepts already existing in the target context. Example: |
|
3812 |
||
3813 |
interpretation partial_order ["op <= :: [int, int] => bool"] |
|
3814 |
where "partial_order.less (op <=) (x::int) y = (x < y)" |
|
3815 |
||
24800 | 3816 |
Typically, the constant `partial_order.less' is created by a |
3817 |
definition specification element in the context of locale |
|
3818 |
partial_order. |
|
3819 |
||
24859 | 3820 |
* Method "induct": improved internal context management to support |
24800 | 3821 |
local fixes and defines on-the-fly. Thus explicit meta-level |
3822 |
connectives !! and ==> are rarely required anymore in inductive goals |
|
3823 |
(using object-logic connectives for this purpose has been long |
|
3824 |
obsolete anyway). Common proof patterns are explained in |
|
25177 | 3825 |
src/HOL/Induct/Common_Patterns.thy, see also |
3826 |
src/HOL/Isar_examples/Puzzle.thy and src/HOL/Lambda for realistic |
|
3827 |
examples. |
|
24606
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3828 |
|
24859 | 3829 |
* Method "induct": improved handling of simultaneous goals. Instead of |
24606
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3830 |
introducing object-level conjunction, the statement is now split into |
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3831 |
several conclusions, while the corresponding symbolic cases are nested |
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3832 |
accordingly. INCOMPATIBILITY, proofs need to be structured explicitly, |
25177 | 3833 |
see src/HOL/Induct/Common_Patterns.thy, for example. |
24606
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3834 |
|
24859 | 3835 |
* Method "induct": mutual induction rules are now specified as a list |
24800 | 3836 |
of rule sharing the same induction cases. HOL packages usually provide |
24606
7acbb982fc77
moved induct patterns to HOL/Induct/Common_Patterns.thy;
wenzelm
parents:
24507
diff
changeset
|
3837 |
foo_bar.inducts for mutually defined items foo and bar (e.g. inductive |
24859 | 3838 |
predicates/sets or datatypes). INCOMPATIBILITY, users need to specify |
3839 |
mutual induction rules differently, i.e. like this: |
|
18506
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3840 |
|
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3841 |
(induct rule: foo_bar.inducts) |
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3842 |
(induct set: foo bar) |
24859 | 3843 |
(induct pred: foo bar) |
18506
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3844 |
(induct type: foo bar) |
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3845 |
|
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3846 |
The ML function ProjectRule.projections turns old-style rules into the |
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3847 |
new format. |
96260fb11449
* Provers/induct: support simultaneous goals with mutual rules;
wenzelm
parents:
18495
diff
changeset
|
3848 |
|
24859 | 3849 |
* Method "coinduct": dual of induction, see |
18399 | 3850 |
src/HOL/Library/Coinductive_List.thy for various examples. |
3851 |
||
24859 | 3852 |
* Method "cases", "induct", "coinduct": the ``(open)'' option is |
3853 |
considered a legacy feature. |
|
3854 |
||
20919
dab803075c62
attribute "symmetric": standardized schematic variables;
wenzelm
parents:
20857
diff
changeset
|
3855 |
* Attribute "symmetric" produces result with standardized schematic |
dab803075c62
attribute "symmetric": standardized schematic variables;
wenzelm
parents:
20857
diff
changeset
|
3856 |
variables (index 0). Potential INCOMPATIBILITY. |
dab803075c62
attribute "symmetric": standardized schematic variables;
wenzelm
parents:
20857
diff
changeset
|
3857 |
|
22126 | 3858 |
* Simplifier: by default the simplifier trace only shows top level |
3859 |
rewrites now. That is, trace_simp_depth_limit is set to 1 by |
|
3860 |
default. Thus there is less danger of being flooded by the trace. The |
|
3861 |
trace indicates where parts have been suppressed. |
|
18674 | 3862 |
|
18536
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3863 |
* Provers/classical: removed obsolete classical version of elim_format |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3864 |
attribute; classical elim/dest rules are now treated uniformly when |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3865 |
manipulating the claset. |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3866 |
|
18694 | 3867 |
* Provers/classical: stricter checks to ensure that supplied intro, |
3868 |
dest and elim rules are well-formed; dest and elim rules must have at |
|
3869 |
least one premise. |
|
3870 |
||
3871 |
* Provers/classical: attributes dest/elim/intro take an optional |
|
18695 | 3872 |
weight argument for the rule (just as the Pure versions). Weights are |
18696 | 3873 |
ignored by automated tools, but determine the search order of single |
18694 | 3874 |
rule steps. |
18557
60a0f9caa0a2
Provers/classical: stricter checks to ensure that supplied intro, dest and
paulson
parents:
18549
diff
changeset
|
3875 |
|
18536
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3876 |
* Syntax: input syntax now supports dummy variable binding "%_. b", |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3877 |
where the body does not mention the bound variable. Note that dummy |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3878 |
patterns implicitly depend on their context of bounds, which makes |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3879 |
"{_. _}" match any set comprehension as expected. Potential |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3880 |
INCOMPATIBILITY -- parse translations need to cope with syntactic |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3881 |
constant "_idtdummy" in the binding position. |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3882 |
|
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3883 |
* Syntax: removed obsolete syntactic constant "_K" and its associated |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3884 |
parse translation. INCOMPATIBILITY -- use dummy abstraction instead, |
ab3f32f86847
* Provers/classical: removed obsolete classical version of elim_format;
wenzelm
parents:
18507
diff
changeset
|
3885 |
for example "A -> B" => "Pi A (%_. B)". |
17779 | 3886 |
|
20582
ebd0e03c6a9b
* Pure: 'class_deps' command visualizes the subclass relation;
wenzelm
parents:
20503
diff
changeset
|
3887 |
* Pure: 'class_deps' command visualizes the subclass relation, using |
ebd0e03c6a9b
* Pure: 'class_deps' command visualizes the subclass relation;
wenzelm
parents:
20503
diff
changeset
|
3888 |
the graph browser tool. |
ebd0e03c6a9b
* Pure: 'class_deps' command visualizes the subclass relation;
wenzelm
parents:
20503
diff
changeset
|
3889 |
|
24800 | 3890 |
* Pure: 'print_theory' now suppresses certain internal declarations by |
3891 |
default; use '!' option for full details. |
|
20620
8b26f58c5646
* Pure: 'print_theory' now suppresses entities with internal name;
wenzelm
parents:
20607
diff
changeset
|
3892 |
|
17865 | 3893 |
|
17806 | 3894 |
*** HOL *** |
3895 |
||
25129 | 3896 |
* Method "metis" proves goals by applying the Metis general-purpose |
3897 |
resolution prover (see also http://gilith.com/software/metis/). |
|
3898 |
Examples are in the directory MetisExamples. WARNING: the |
|
3899 |
Isabelle/HOL-Metis integration does not yet work properly with |
|
3900 |
multi-threading. |
|
3901 |
||
3902 |
* Command 'sledgehammer' invokes external automatic theorem provers as |
|
3903 |
background processes. It generates calls to the "metis" method if |
|
3904 |
successful. These can be pasted into the proof. Users do not have to |
|
3905 |
wait for the automatic provers to return. WARNING: does not really |
|
3906 |
work with multi-threading. |
|
3907 |
||
24804 | 3908 |
* New "auto_quickcheck" feature tests outermost goal statements for |
3909 |
potential counter-examples. Controlled by ML references |
|
3910 |
auto_quickcheck (default true) and auto_quickcheck_time_limit (default |
|
25129 | 3911 |
5000 milliseconds). Fails silently if statements is outside of |
3912 |
executable fragment, or any other codgenerator problem occurs. |
|
24804 | 3913 |
|
25184 | 3914 |
* New constant "undefined" with axiom "undefined x = undefined". |
3915 |
||
3916 |
* Added class "HOL.eq", allowing for code generation with polymorphic |
|
3917 |
equality. |
|
3918 |
||
3919 |
* Some renaming of class constants due to canonical name prefixing in |
|
3920 |
the new 'class' package: |
|
3921 |
||
3922 |
HOL.abs ~> HOL.abs_class.abs |
|
3923 |
HOL.divide ~> HOL.divide_class.divide |
|
3924 |
0 ~> HOL.zero_class.zero |
|
3925 |
1 ~> HOL.one_class.one |
|
3926 |
op + ~> HOL.plus_class.plus |
|
3927 |
op - ~> HOL.minus_class.minus |
|
3928 |
uminus ~> HOL.minus_class.uminus |
|
3929 |
op * ~> HOL.times_class.times |
|
3930 |
op < ~> HOL.ord_class.less |
|
3931 |
op <= > HOL.ord_class.less_eq |
|
3932 |
Nat.power ~> Power.power_class.power |
|
3933 |
Nat.size ~> Nat.size_class.size |
|
3934 |
Numeral.number_of ~> Numeral.number_class.number_of |
|
3935 |
FixedPoint.Inf ~> Lattices.complete_lattice_class.Inf |
|
3936 |
FixedPoint.Sup ~> Lattices.complete_lattice_class.Sup |
|
3937 |
Orderings.min ~> Orderings.ord_class.min |
|
3938 |
Orderings.max ~> Orderings.ord_class.max |
|
3939 |
Divides.op div ~> Divides.div_class.div |
|
3940 |
Divides.op mod ~> Divides.div_class.mod |
|
3941 |
Divides.op dvd ~> Divides.div_class.dvd |
|
3942 |
||
3943 |
INCOMPATIBILITY. Adaptions may be required in the following cases: |
|
3944 |
||
3945 |
a) User-defined constants using any of the names "plus", "minus", |
|
3946 |
"times", "less" or "less_eq". The standard syntax translations for |
|
3947 |
"+", "-" and "*" may go wrong. INCOMPATIBILITY: use more specific |
|
3948 |
names. |
|
3949 |
||
3950 |
b) Variables named "plus", "minus", "times", "less", "less_eq" |
|
3951 |
INCOMPATIBILITY: use more specific names. |
|
3952 |
||
3953 |
c) Permutative equations (e.g. "a + b = b + a") |
|
3954 |
Since the change of names also changes the order of terms, permutative |
|
3955 |
rewrite rules may get applied in a different order. Experience shows |
|
3956 |
that this is rarely the case (only two adaptions in the whole Isabelle |
|
3957 |
distribution). INCOMPATIBILITY: rewrite proofs |
|
3958 |
||
3959 |
d) ML code directly refering to constant names |
|
3960 |
This in general only affects hand-written proof tactics, simprocs and |
|
3961 |
so on. INCOMPATIBILITY: grep your sourcecode and replace names. |
|
3962 |
Consider using @{const_name} antiquotation. |
|
3963 |
||
3964 |
* New class "default" with associated constant "default". |
|
3965 |
||
3966 |
* Function "sgn" is now overloaded and available on int, real, complex |
|
3967 |
(and other numeric types), using class "sgn". Two possible defs of |
|
3968 |
sgn are given as equational assumptions in the classes sgn_if and |
|
3969 |
sgn_div_norm; ordered_idom now also inherits from sgn_if. |
|
3970 |
INCOMPATIBILITY. |
|
3971 |
||
3972 |
* Locale "partial_order" now unified with class "order" (cf. theory |
|
3973 |
Orderings), added parameter "less". INCOMPATIBILITY. |
|
3974 |
||
3975 |
* Renamings in classes "order" and "linorder": facts "refl", "trans" and |
|
3976 |
"cases" to "order_refl", "order_trans" and "linorder_cases", to avoid |
|
3977 |
clashes with HOL "refl" and "trans". INCOMPATIBILITY. |
|
3978 |
||
3979 |
* Classes "order" and "linorder": potential INCOMPATIBILITY due to |
|
3980 |
changed order of proof goals in instance proofs. |
|
3981 |
||
3982 |
* The transitivity reasoner for partial and linear orders is set up |
|
3983 |
for classes "order" and "linorder". Instances of the reasoner are available |
|
3984 |
in all contexts importing or interpreting the corresponding locales. |
|
3985 |
Method "order" invokes the reasoner separately; the reasoner |
|
3986 |
is also integrated with the Simplifier as a solver. Diagnostic |
|
3987 |
command 'print_orders' shows the available instances of the reasoner |
|
3988 |
in the current context. |
|
3989 |
||
3990 |
* Localized monotonicity predicate in theory "Orderings"; integrated |
|
3991 |
lemmas max_of_mono and min_of_mono with this predicate. |
|
3992 |
INCOMPATIBILITY. |
|
3993 |
||
3994 |
* Formulation of theorem "dense" changed slightly due to integration |
|
3995 |
with new class dense_linear_order. |
|
3996 |
||
3997 |
* Uniform lattice theory development in HOL. |
|
3998 |
||
3999 |
constants "meet" and "join" now named "inf" and "sup" |
|
4000 |
constant "Meet" now named "Inf" |
|
4001 |
||
4002 |
classes "meet_semilorder" and "join_semilorder" now named |
|
4003 |
"lower_semilattice" and "upper_semilattice" |
|
4004 |
class "lorder" now named "lattice" |
|
4005 |
class "comp_lat" now named "complete_lattice" |
|
4006 |
||
4007 |
Instantiation of lattice classes allows explicit definitions |
|
4008 |
for "inf" and "sup" operations (or "Inf" and "Sup" for complete lattices). |
|
4009 |
||
4010 |
INCOMPATIBILITY. Theorem renames: |
|
4011 |
||
4012 |
meet_left_le ~> inf_le1 |
|
4013 |
meet_right_le ~> inf_le2 |
|
4014 |
join_left_le ~> sup_ge1 |
|
4015 |
join_right_le ~> sup_ge2 |
|
4016 |
meet_join_le ~> inf_sup_ord |
|
4017 |
le_meetI ~> le_infI |
|
4018 |
join_leI ~> le_supI |
|
4019 |
le_meet ~> le_inf_iff |
|
4020 |
le_join ~> ge_sup_conv |
|
4021 |
meet_idempotent ~> inf_idem |
|
4022 |
join_idempotent ~> sup_idem |
|
4023 |
meet_comm ~> inf_commute |
|
4024 |
join_comm ~> sup_commute |
|
4025 |
meet_leI1 ~> le_infI1 |
|
4026 |
meet_leI2 ~> le_infI2 |
|
4027 |
le_joinI1 ~> le_supI1 |
|
4028 |
le_joinI2 ~> le_supI2 |
|
4029 |
meet_assoc ~> inf_assoc |
|
4030 |
join_assoc ~> sup_assoc |
|
4031 |
meet_left_comm ~> inf_left_commute |
|
4032 |
meet_left_idempotent ~> inf_left_idem |
|
4033 |
join_left_comm ~> sup_left_commute |
|
4034 |
join_left_idempotent ~> sup_left_idem |
|
4035 |
meet_aci ~> inf_aci |
|
4036 |
join_aci ~> sup_aci |
|
4037 |
le_def_meet ~> le_iff_inf |
|
4038 |
le_def_join ~> le_iff_sup |
|
4039 |
join_absorp2 ~> sup_absorb2 |
|
4040 |
join_absorp1 ~> sup_absorb1 |
|
4041 |
meet_absorp1 ~> inf_absorb1 |
|
4042 |
meet_absorp2 ~> inf_absorb2 |
|
4043 |
meet_join_absorp ~> inf_sup_absorb |
|
4044 |
join_meet_absorp ~> sup_inf_absorb |
|
4045 |
distrib_join_le ~> distrib_sup_le |
|
4046 |
distrib_meet_le ~> distrib_inf_le |
|
4047 |
||
4048 |
add_meet_distrib_left ~> add_inf_distrib_left |
|
4049 |
add_join_distrib_left ~> add_sup_distrib_left |
|
4050 |
is_join_neg_meet ~> is_join_neg_inf |
|
4051 |
is_meet_neg_join ~> is_meet_neg_sup |
|
4052 |
add_meet_distrib_right ~> add_inf_distrib_right |
|
4053 |
add_join_distrib_right ~> add_sup_distrib_right |
|
4054 |
add_meet_join_distribs ~> add_sup_inf_distribs |
|
4055 |
join_eq_neg_meet ~> sup_eq_neg_inf |
|
4056 |
meet_eq_neg_join ~> inf_eq_neg_sup |
|
4057 |
add_eq_meet_join ~> add_eq_inf_sup |
|
4058 |
meet_0_imp_0 ~> inf_0_imp_0 |
|
4059 |
join_0_imp_0 ~> sup_0_imp_0 |
|
4060 |
meet_0_eq_0 ~> inf_0_eq_0 |
|
4061 |
join_0_eq_0 ~> sup_0_eq_0 |
|
4062 |
neg_meet_eq_join ~> neg_inf_eq_sup |
|
4063 |
neg_join_eq_meet ~> neg_sup_eq_inf |
|
4064 |
join_eq_if ~> sup_eq_if |
|
4065 |
||
4066 |
mono_meet ~> mono_inf |
|
4067 |
mono_join ~> mono_sup |
|
4068 |
meet_bool_eq ~> inf_bool_eq |
|
4069 |
join_bool_eq ~> sup_bool_eq |
|
4070 |
meet_fun_eq ~> inf_fun_eq |
|
4071 |
join_fun_eq ~> sup_fun_eq |
|
4072 |
meet_set_eq ~> inf_set_eq |
|
4073 |
join_set_eq ~> sup_set_eq |
|
4074 |
meet1_iff ~> inf1_iff |
|
4075 |
meet2_iff ~> inf2_iff |
|
4076 |
meet1I ~> inf1I |
|
4077 |
meet2I ~> inf2I |
|
4078 |
meet1D1 ~> inf1D1 |
|
4079 |
meet2D1 ~> inf2D1 |
|
4080 |
meet1D2 ~> inf1D2 |
|
4081 |
meet2D2 ~> inf2D2 |
|
4082 |
meet1E ~> inf1E |
|
4083 |
meet2E ~> inf2E |
|
4084 |
join1_iff ~> sup1_iff |
|
4085 |
join2_iff ~> sup2_iff |
|
4086 |
join1I1 ~> sup1I1 |
|
4087 |
join2I1 ~> sup2I1 |
|
4088 |
join1I1 ~> sup1I1 |
|
4089 |
join2I2 ~> sup1I2 |
|
4090 |
join1CI ~> sup1CI |
|
4091 |
join2CI ~> sup2CI |
|
4092 |
join1E ~> sup1E |
|
4093 |
join2E ~> sup2E |
|
4094 |
||
4095 |
is_meet_Meet ~> is_meet_Inf |
|
4096 |
Meet_bool_def ~> Inf_bool_def |
|
4097 |
Meet_fun_def ~> Inf_fun_def |
|
4098 |
Meet_greatest ~> Inf_greatest |
|
4099 |
Meet_lower ~> Inf_lower |
|
4100 |
Meet_set_def ~> Inf_set_def |
|
4101 |
||
4102 |
Sup_def ~> Sup_Inf |
|
4103 |
Sup_bool_eq ~> Sup_bool_def |
|
4104 |
Sup_fun_eq ~> Sup_fun_def |
|
4105 |
Sup_set_eq ~> Sup_set_def |
|
4106 |
||
4107 |
listsp_meetI ~> listsp_infI |
|
4108 |
listsp_meet_eq ~> listsp_inf_eq |
|
4109 |
||
4110 |
meet_min ~> inf_min |
|
4111 |
join_max ~> sup_max |
|
4112 |
||
4113 |
* Added syntactic class "size"; overloaded constant "size" now has |
|
4114 |
type "'a::size ==> bool" |
|
4115 |
||
24800 | 4116 |
* Internal reorganisation of `size' of datatypes: size theorems |
4117 |
"foo.size" are no longer subsumed by "foo.simps" (but are still |
|
4118 |
simplification rules by default!); theorems "prod.size" now named |
|
25184 | 4119 |
"*.size". |
4120 |
||
4121 |
* Class "div" now inherits from class "times" rather than "type". |
|
4122 |
INCOMPATIBILITY. |
|
24800 | 4123 |
|
4124 |
* HOL/Finite_Set: "name-space" locales Lattice, Distrib_lattice, |
|
4125 |
Linorder etc. have disappeared; operations defined in terms of |
|
4126 |
fold_set now are named Inf_fin, Sup_fin. INCOMPATIBILITY. |
|
4127 |
||
25129 | 4128 |
* HOL/Nat: neq0_conv no longer declared as iff. INCOMPATIBILITY. |
4129 |
||
24800 | 4130 |
* HOL-Word: New extensive library and type for generic, fixed size |
4131 |
machine words, with arithemtic, bit-wise, shifting and rotating |
|
4132 |
operations, reflection into int, nat, and bool lists, automation for |
|
4133 |
linear arithmetic (by automatic reflection into nat or int), including |
|
4134 |
lemmas on overflow and monotonicity. Instantiated to all appropriate |
|
4135 |
arithmetic type classes, supporting automatic simplification of |
|
4136 |
numerals on all operations. |
|
24333 | 4137 |
|
4138 |
* Library/Boolean_Algebra: locales for abstract boolean algebras. |
|
4139 |
||
4140 |
* Library/Numeral_Type: numbers as types, e.g. TYPE(32). |
|
4141 |
||
23850 | 4142 |
* Code generator library theories: |
24993 | 4143 |
- Code_Integer represents HOL integers by big integer literals in target |
23850 | 4144 |
languages. |
24993 | 4145 |
- Code_Char represents HOL characters by character literals in target |
23850 | 4146 |
languages. |
24993 | 4147 |
- Code_Char_chr like Code_Char, but also offers treatment of character |
4148 |
codes; includes Code_Integer. |
|
24800 | 4149 |
- Executable_Set allows to generate code for finite sets using lists. |
4150 |
- Executable_Rat implements rational numbers as triples (sign, enumerator, |
|
23850 | 4151 |
denominator). |
24800 | 4152 |
- Executable_Real implements a subset of real numbers, namly those |
23850 | 4153 |
representable by rational numbers. |
24800 | 4154 |
- Efficient_Nat implements natural numbers by integers, which in general will |
23850 | 4155 |
result in higher efficency; pattern matching with 0/Suc is eliminated; |
24993 | 4156 |
includes Code_Integer. |
4157 |
- Code_Index provides an additional datatype index which is mapped to |
|
4158 |
target-language built-in integers. |
|
26355 | 4159 |
- Code_Message provides an additional datatype message_string which is isomorphic to |
24993 | 4160 |
strings; messages are mapped to target-language strings. |
23850 | 4161 |
|
23783
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4162 |
* New package for inductive predicates |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4163 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4164 |
An n-ary predicate p with m parameters z_1, ..., z_m can now be defined via |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4165 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4166 |
inductive |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4167 |
p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4168 |
for z_1 :: U_1 and ... and z_n :: U_m |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4169 |
where |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4170 |
rule_1: "... ==> p z_1 ... z_m t_1_1 ... t_1_n" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4171 |
| ... |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4172 |
|
24800 | 4173 |
with full support for type-inference, rather than |
23783
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4174 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4175 |
consts s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4176 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4177 |
abbreviation p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4178 |
where "p z_1 ... z_m x_1 ... x_n == (x_1, ..., x_n) : s z_1 ... z_m" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4179 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4180 |
inductive "s z_1 ... z_m" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4181 |
intros |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4182 |
rule_1: "... ==> (t_1_1, ..., t_1_n) : s z_1 ... z_m" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4183 |
... |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4184 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4185 |
For backward compatibility, there is a wrapper allowing inductive |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4186 |
sets to be defined with the new package via |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4187 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4188 |
inductive_set |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4189 |
s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4190 |
for z_1 :: U_1 and ... and z_n :: U_m |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4191 |
where |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4192 |
rule_1: "... ==> (t_1_1, ..., t_1_n) : s z_1 ... z_m" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4193 |
| ... |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4194 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4195 |
or |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4196 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4197 |
inductive_set |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4198 |
s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4199 |
and p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4200 |
for z_1 :: U_1 and ... and z_n :: U_m |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4201 |
where |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4202 |
"p z_1 ... z_m x_1 ... x_n == (x_1, ..., x_n) : s z_1 ... z_m" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4203 |
| rule_1: "... ==> p z_1 ... z_m t_1_1 ... t_1_n" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4204 |
| ... |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4205 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4206 |
if the additional syntax "p ..." is required. |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4207 |
|
25177 | 4208 |
Numerous examples can be found in the subdirectories src/HOL/Auth, |
4209 |
src/HOL/Bali, src/HOL/Induct, and src/HOL/MicroJava. |
|
23783
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4210 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4211 |
INCOMPATIBILITIES: |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4212 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4213 |
- Since declaration and definition of inductive sets or predicates |
24800 | 4214 |
is no longer separated, abbreviations involving the newly |
4215 |
introduced sets or predicates must be specified together with the |
|
4216 |
introduction rules after the 'where' keyword (see above), rather |
|
4217 |
than before the actual inductive definition. |
|
4218 |
||
4219 |
- The variables in induction and elimination rules are now |
|
4220 |
quantified in the order of their occurrence in the introduction |
|
4221 |
rules, rather than in alphabetical order. Since this may break |
|
4222 |
some proofs, these proofs either have to be repaired, e.g. by |
|
4223 |
reordering the variables a_i_1 ... a_i_{k_i} in Isar 'case' |
|
4224 |
statements of the form |
|
23783
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4225 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4226 |
case (rule_i a_i_1 ... a_i_{k_i}) |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4227 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4228 |
or the old order of quantification has to be restored by explicitly adding |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4229 |
meta-level quantifiers in the introduction rules, i.e. |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4230 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4231 |
| rule_i: "!!a_i_1 ... a_i_{k_i}. ... ==> p z_1 ... z_m t_i_1 ... t_i_n" |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4232 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4233 |
- The format of the elimination rules is now |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4234 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4235 |
p z_1 ... z_m x_1 ... x_n ==> |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4236 |
(!!a_1_1 ... a_1_{k_1}. x_1 = t_1_1 ==> ... ==> x_n = t_1_n ==> ... ==> P) |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4237 |
==> ... ==> P |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4238 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4239 |
for predicates and |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4240 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4241 |
(x_1, ..., x_n) : s z_1 ... z_m ==> |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4242 |
(!!a_1_1 ... a_1_{k_1}. x_1 = t_1_1 ==> ... ==> x_n = t_1_n ==> ... ==> P) |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4243 |
==> ... ==> P |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4244 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4245 |
for sets rather than |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4246 |
|
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4247 |
x : s z_1 ... z_m ==> |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4248 |
(!!a_1_1 ... a_1_{k_1}. x = (t_1_1, ..., t_1_n) ==> ... ==> P) |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4249 |
==> ... ==> P |
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4250 |
|
24800 | 4251 |
This may require terms in goals to be expanded to n-tuples |
4252 |
(e.g. using case_tac or simplification with the split_paired_all |
|
4253 |
rule) before the above elimination rule is applicable. |
|
4254 |
||
4255 |
- The elimination or case analysis rules for (mutually) inductive |
|
4256 |
sets or predicates are now called "p_1.cases" ... "p_k.cases". The |
|
4257 |
list of rules "p_1_..._p_k.elims" is no longer available. |
|
23783
e4d514f81d95
Added entry for new inductive definition package.
berghofe
parents:
23565
diff
changeset
|
4258 |
|
25198 | 4259 |
* New package "function"/"fun" for general recursive functions, |
4260 |
supporting mutual and nested recursion, definitions in local contexts, |
|
4261 |
more general pattern matching and partiality. See HOL/ex/Fundefs.thy |
|
4262 |
for small examples, and the separate tutorial on the function |
|
4263 |
package. The old recdef "package" is still available as before, but |
|
4264 |
users are encouraged to use the new package. |
|
4265 |
||
4266 |
* Method "lexicographic_order" automatically synthesizes termination |
|
4267 |
relations as lexicographic combinations of size measures. |
|
4268 |
||
24800 | 4269 |
* Case-expressions allow arbitrary constructor-patterns (including |
4270 |
"_") and take their order into account, like in functional |
|
4271 |
programming. Internally, this is translated into nested |
|
4272 |
case-expressions; missing cases are added and mapped to the predefined |
|
4273 |
constant "undefined". In complicated cases printing may no longer show |
|
4274 |
the original input but the internal form. Lambda-abstractions allow |
|
4275 |
the same form of pattern matching: "% pat1 => e1 | ..." is an |
|
4276 |
abbreviation for "%x. case x of pat1 => e1 | ..." where x is a new |
|
4277 |
variable. |
|
23564 | 4278 |
|
23468 | 4279 |
* IntDef: The constant "int :: nat => int" has been removed; now "int" |
24800 | 4280 |
is an abbreviation for "of_nat :: nat => int". The simplification |
4281 |
rules for "of_nat" have been changed to work like "int" did |
|
4282 |
previously. Potential INCOMPATIBILITY: |
|
23468 | 4283 |
- "of_nat (Suc m)" simplifies to "1 + of_nat m" instead of "of_nat m + 1" |
4284 |
- of_nat_diff and of_nat_mult are no longer default simp rules |
|
23377 | 4285 |
|
23295
86e225406859
Method "algebra" solves polynomial equations over (semi)rings
chaieb
parents:
23251
diff
changeset
|
4286 |
* Method "algebra" solves polynomial equations over (semi)rings using |
24800 | 4287 |
Groebner bases. The (semi)ring structure is defined by locales and the |
4288 |
tool setup depends on that generic context. Installing the method for |
|
4289 |
a specific type involves instantiating the locale and possibly adding |
|
4290 |
declarations for computation on the coefficients. The method is |
|
4291 |
already instantiated for natural numbers and for the axiomatic class |
|
4292 |
of idoms with numerals. See also the paper by Chaieb and Wenzel at |
|
4293 |
CALCULEMUS 2007 for the general principles underlying this |
|
4294 |
architecture of context-aware proof-tools. |
|
4295 |
||
25033 | 4296 |
* Method "ferrack" implements quantifier elimination over |
4297 |
special-purpose dense linear orders using locales (analogous to |
|
4298 |
"algebra"). The method is already installed for class |
|
4299 |
{ordered_field,recpower,number_ring} which subsumes real, hyperreal, |
|
4300 |
rat, etc. |
|
4301 |
||
24800 | 4302 |
* Former constant "List.op @" now named "List.append". Use ML |
4303 |
antiquotations @{const_name List.append} or @{term " ... @ ... "} to |
|
4304 |
circumvent possible incompatibilities when working on ML level. |
|
4305 |
||
24996 | 4306 |
* primrec: missing cases mapped to "undefined" instead of "arbitrary". |
22845 | 4307 |
|
24800 | 4308 |
* New function listsum :: 'a list => 'a for arbitrary monoids. |
4309 |
Special syntax: "SUM x <- xs. f x" (and latex variants) |
|
4310 |
||
4311 |
* New syntax for Haskell-like list comprehension (input only), eg. |
|
25177 | 4312 |
[(x,y). x <- xs, y <- ys, x ~= y], see also src/HOL/List.thy. |
24800 | 4313 |
|