71 |
71 |
72 * Use of cumulative prems via "!" in some proof methods has been |
72 * Use of cumulative prems via "!" in some proof methods has been |
73 discontinued (legacy feature). |
73 discontinued (legacy feature). |
74 |
74 |
75 * References 'trace_simp' and 'debug_simp' have been replaced by |
75 * References 'trace_simp' and 'debug_simp' have been replaced by |
76 configuration options stored in the context. Enabling tracing |
76 configuration options stored in the context. Enabling tracing (the |
77 (the case of debugging is similar) in proofs works via |
77 case of debugging is similar) in proofs works via |
78 |
78 |
79 using [[trace_simp=true]] |
79 using [[trace_simp = true]] |
80 |
80 |
81 Tracing is then active for all invocations of the simplifier |
81 Tracing is then active for all invocations of the simplifier in |
82 in subsequent goal refinement steps. Tracing may also still be |
82 subsequent goal refinement steps. Tracing may also still be enabled or |
83 enabled or disabled via the ProofGeneral settings menu. |
83 disabled via the ProofGeneral settings menu. |
84 |
84 |
85 * Separate commands 'hide_class', 'hide_type', 'hide_const', |
85 * Separate commands 'hide_class', 'hide_type', 'hide_const', |
86 'hide_fact' replace the former 'hide' KIND command. Minor |
86 'hide_fact' replace the former 'hide' KIND command. Minor |
87 INCOMPATIBILITY. |
87 INCOMPATIBILITY. |
88 |
88 |
89 |
89 |
90 *** Pure *** |
90 *** Pure *** |
91 |
91 |
92 * Predicates of locales introduces by classes carry a mandatory "class" |
92 * Predicates of locales introduces by classes carry a mandatory |
93 prefix. INCOMPATIBILITY. |
93 "class" prefix. INCOMPATIBILITY. |
94 |
94 |
95 * 'code_reflect' allows to incorporate generated ML code into |
95 * Command 'code_reflect' allows to incorporate generated ML code into |
96 runtime environment; replaces immature code_datatype antiquotation. |
96 runtime environment; replaces immature code_datatype antiquotation. |
97 INCOMPATIBILITY. |
97 INCOMPATIBILITY. |
98 |
98 |
99 * Empty class specifications observe default sort. INCOMPATIBILITY. |
99 * Empty class specifications observe default sort. INCOMPATIBILITY. |
100 |
100 |
101 * Old 'axclass' has been discontinued. Use 'class' instead. INCOMPATIBILITY. |
101 * Old 'axclass' command has been discontinued. Use 'class' instead. |
102 |
102 INCOMPATIBILITY. |
103 * Code generator: simple concept for abstract datatypes obeying invariants. |
103 |
|
104 * Code generator: simple concept for abstract datatypes obeying |
|
105 invariants. |
104 |
106 |
105 * Local theory specifications may depend on extra type variables that |
107 * Local theory specifications may depend on extra type variables that |
106 are not present in the result type -- arguments TYPE('a) :: 'a itself |
108 are not present in the result type -- arguments TYPE('a) :: 'a itself |
107 are added internally. For example: |
109 are added internally. For example: |
108 |
110 |
109 definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)" |
111 definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)" |
110 |
112 |
111 * Code generator: details of internal data cache have no impact on |
113 * Code generator: details of internal data cache have no impact on the |
112 the user space functionality any longer. |
114 user space functionality any longer. |
113 |
115 |
114 * Methods unfold_locales and intro_locales ignore non-locale subgoals. This |
116 * Methods unfold_locales and intro_locales ignore non-locale subgoals. |
115 is more appropriate for interpretations with 'where'. INCOMPATIBILITY. |
117 This is more appropriate for interpretations with 'where'. |
|
118 INCOMPATIBILITY. |
116 |
119 |
117 * Discontinued unnamed infix syntax (legacy feature for many years) -- |
120 * Discontinued unnamed infix syntax (legacy feature for many years) -- |
118 need to specify constant name and syntax separately. Internal ML |
121 need to specify constant name and syntax separately. Internal ML |
119 datatype constructors have been renamed from InfixName to Infix etc. |
122 datatype constructors have been renamed from InfixName to Infix etc. |
120 Minor INCOMPATIBILITY. |
123 Minor INCOMPATIBILITY. |
128 |
131 |
129 * Commands 'types' and 'typedecl' now work within a local theory |
132 * Commands 'types' and 'typedecl' now work within a local theory |
130 context -- without introducing dependencies on parameters or |
133 context -- without introducing dependencies on parameters or |
131 assumptions, which is not possible in Isabelle/Pure. |
134 assumptions, which is not possible in Isabelle/Pure. |
132 |
135 |
133 * Command 'defaultsort' is renamed to 'default_sort', it works within |
136 * Command 'defaultsort' has been renamed to 'default_sort', it works |
134 a local theory context. Minor INCOMPATIBILITY. |
137 within a local theory context. Minor INCOMPATIBILITY. |
135 |
138 |
136 * Proof terms: Type substitutions on proof constants now use canonical |
139 * Proof terms: Type substitutions on proof constants now use canonical |
137 order of type variables. INCOMPATIBILITY: Tools working with proof |
140 order of type variables. Potential INCOMPATIBILITY for tools working |
138 terms may need to be adapted. |
141 with proof terms. |
139 |
142 |
140 |
143 |
141 *** HOL *** |
144 *** HOL *** |
142 |
145 |
143 * Theorem Int.int_induct renamed to Int.int_of_nat_induct and is |
146 * Theorem Int.int_induct renamed to Int.int_of_nat_induct and is no |
144 no longer shadowed. INCOMPATIBILITY. |
147 longer shadowed. INCOMPATIBILITY. |
145 |
148 |
146 * Dropped theorem duplicate comp_arith; use semiring_norm instead. |
149 * Dropped theorem duplicate comp_arith; use semiring_norm instead. |
147 INCOMPATIBILITY. |
150 INCOMPATIBILITY. |
148 |
151 |
149 * Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead. |
152 * Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead. |
150 INCOMPATIBILITY. |
153 INCOMPATIBILITY. |
151 |
154 |
152 * Dropped normalizing_semiring etc; use the facts in semiring classes instead. |
155 * Dropped normalizing_semiring etc; use the facts in semiring classes |
153 INCOMPATIBILITY. |
156 instead. INCOMPATIBILITY. |
154 |
157 |
155 * Theory 'Finite_Set': various folding_* locales facilitate the application |
158 * Theory 'Finite_Set': various folding_XXX locales facilitate the |
156 of the various fold combinators on finite sets. |
159 application of the various fold combinators on finite sets. |
157 |
160 |
158 * Library theory 'RBT' renamed to 'RBT_Impl'; new library theory 'RBT' |
161 * Library theory "RBT" renamed to "RBT_Impl"; new library theory "RBT" |
159 provides abstract red-black tree type which is backed by RBT_Impl |
162 provides abstract red-black tree type which is backed by "RBT_Impl" as |
160 as implementation. INCOMPATIBILTY. |
163 implementation. INCOMPATIBILTY. |
161 |
164 |
162 * Command 'typedef' now works within a local theory context -- without |
165 * Command 'typedef' now works within a local theory context -- without |
163 introducing dependencies on parameters or assumptions, which is not |
166 introducing dependencies on parameters or assumptions, which is not |
164 possible in Isabelle/Pure/HOL. Note that the logical environment may |
167 possible in Isabelle/Pure/HOL. Note that the logical environment may |
165 contain multiple interpretations of local typedefs (with different |
168 contain multiple interpretations of local typedefs (with different |
169 AFP/thys/Coinductive. |
172 AFP/thys/Coinductive. |
170 |
173 |
171 * Theory PReal, including the type "preal" and related operations, has |
174 * Theory PReal, including the type "preal" and related operations, has |
172 been removed. INCOMPATIBILITY. |
175 been removed. INCOMPATIBILITY. |
173 |
176 |
174 * Split off theory Big_Operators containing setsum, setprod, Inf_fin, Sup_fin, |
177 * Split off theory Big_Operators containing setsum, setprod, Inf_fin, |
175 Min, Max from theory Finite_Set. INCOMPATIBILITY. |
178 Sup_fin, Min, Max from theory Finite_Set. INCOMPATIBILITY. |
176 |
179 |
177 * Theory "Rational" renamed to "Rat", for consistency with "Nat", "Int" etc. |
180 * Theory "Rational" renamed to "Rat", for consistency with "Nat", |
|
181 "Int" etc. INCOMPATIBILITY. |
|
182 |
|
183 * New set of rules "ac_simps" provides combined assoc / commute |
|
184 rewrites for all interpretations of the appropriate generic locales. |
|
185 |
|
186 * Renamed theory "OrderedGroup" to "Groups" and split theory |
|
187 "Ring_and_Field" into theories "Rings" and "Fields"; for more |
|
188 appropriate and more consistent names suitable for name prefixes |
|
189 within the HOL theories. INCOMPATIBILITY. |
|
190 |
|
191 * Some generic constants have been put to appropriate theories: |
|
192 - less_eq, less: Orderings |
|
193 - zero, one, plus, minus, uminus, times, abs, sgn: Groups |
|
194 - inverse, divide: Rings |
178 INCOMPATIBILITY. |
195 INCOMPATIBILITY. |
179 |
196 |
180 * New set of rules "ac_simps" provides combined assoc / commute rewrites |
197 * More consistent naming of type classes involving orderings (and |
181 for all interpretations of the appropriate generic locales. |
198 lattices): |
182 |
|
183 * Renamed theory "OrderedGroup" to "Groups" and split theory "Ring_and_Field" |
|
184 into theories "Rings" and "Fields"; for more appropriate and more |
|
185 consistent names suitable for name prefixes within the HOL theories. |
|
186 INCOMPATIBILITY. |
|
187 |
|
188 * Some generic constants have been put to appropriate theories: |
|
189 * less_eq, less: Orderings |
|
190 * zero, one, plus, minus, uminus, times, abs, sgn: Groups |
|
191 * inverse, divide: Rings |
|
192 INCOMPATIBILITY. |
|
193 |
|
194 * More consistent naming of type classes involving orderings (and lattices): |
|
195 |
199 |
196 lower_semilattice ~> semilattice_inf |
200 lower_semilattice ~> semilattice_inf |
197 upper_semilattice ~> semilattice_sup |
201 upper_semilattice ~> semilattice_sup |
198 |
202 |
199 dense_linear_order ~> dense_linorder |
203 dense_linear_order ~> dense_linorder |
229 ordered_semiring ~> linordered_semiring |
233 ordered_semiring ~> linordered_semiring |
230 ordered_semiring_1 ~> linordered_semiring_1 |
234 ordered_semiring_1 ~> linordered_semiring_1 |
231 ordered_semiring_1_strict ~> linordered_semiring_1_strict |
235 ordered_semiring_1_strict ~> linordered_semiring_1_strict |
232 ordered_semiring_strict ~> linordered_semiring_strict |
236 ordered_semiring_strict ~> linordered_semiring_strict |
233 |
237 |
234 The following slightly odd type classes have been moved to |
238 The following slightly odd type classes have been moved to a |
235 a separate theory Library/Lattice_Algebras.thy: |
239 separate theory Library/Lattice_Algebras.thy: |
236 |
240 |
237 lordered_ab_group_add ~> lattice_ab_group_add |
241 lordered_ab_group_add ~> lattice_ab_group_add |
238 lordered_ab_group_add_abs ~> lattice_ab_group_add_abs |
242 lordered_ab_group_add_abs ~> lattice_ab_group_add_abs |
239 lordered_ab_group_add_meet ~> semilattice_inf_ab_group_add |
243 lordered_ab_group_add_meet ~> semilattice_inf_ab_group_add |
240 lordered_ab_group_add_join ~> semilattice_sup_ab_group_add |
244 lordered_ab_group_add_join ~> semilattice_sup_ab_group_add |
241 lordered_ring ~> lattice_ring |
245 lordered_ring ~> lattice_ring |
242 |
246 |
243 INCOMPATIBILITY. |
247 INCOMPATIBILITY. |
244 |
248 |
245 * Refined field classes: |
249 * Refined field classes: |
246 * classes division_ring_inverse_zero, field_inverse_zero, linordered_field_inverse_zero |
250 - classes division_ring_inverse_zero, field_inverse_zero, |
247 include rule inverse 0 = 0 -- subsumes former division_by_zero class. |
251 linordered_field_inverse_zero include rule inverse 0 = 0 -- |
248 * numerous lemmas have been ported from field to division_ring; |
252 subsumes former division_by_zero class; |
249 INCOMPATIBILITY. |
253 - numerous lemmas have been ported from field to division_ring. |
|
254 INCOMPATIBILITY. |
250 |
255 |
251 * Refined algebra theorem collections: |
256 * Refined algebra theorem collections: |
252 * dropped theorem group group_simps, use algebra_simps instead; |
257 - dropped theorem group group_simps, use algebra_simps instead; |
253 * dropped theorem group ring_simps, use field_simps instead; |
258 - dropped theorem group ring_simps, use field_simps instead; |
254 * proper theorem collection field_simps subsumes former theorem groups field_eq_simps and field_simps; |
259 - proper theorem collection field_simps subsumes former theorem |
255 * dropped lemma eq_minus_self_iff which is a duplicate for equal_neg_zero. |
260 groups field_eq_simps and field_simps; |
256 INCOMPATIBILITY. |
261 - dropped lemma eq_minus_self_iff which is a duplicate for |
|
262 equal_neg_zero. |
|
263 INCOMPATIBILITY. |
257 |
264 |
258 * Theory Finite_Set and List: some lemmas have been generalized from |
265 * Theory Finite_Set and List: some lemmas have been generalized from |
259 sets to lattices: |
266 sets to lattices: |
260 |
267 |
261 fun_left_comm_idem_inter ~> fun_left_comm_idem_inf |
268 fun_left_comm_idem_inter ~> fun_left_comm_idem_inf |
277 subsume inf_top and sup_bot respectively. INCOMPATIBILITY. |
284 subsume inf_top and sup_bot respectively. INCOMPATIBILITY. |
278 |
285 |
279 * HOLogic.strip_psplit: types are returned in syntactic order, similar |
286 * HOLogic.strip_psplit: types are returned in syntactic order, similar |
280 to other strip and tuple operations. INCOMPATIBILITY. |
287 to other strip and tuple operations. INCOMPATIBILITY. |
281 |
288 |
282 * Reorganized theory Multiset: swapped notation of pointwise and multiset order: |
289 * Reorganized theory Multiset: swapped notation of pointwise and |
283 * pointwise ordering is instance of class order with standard syntax <= and <; |
290 multiset order: |
284 * multiset ordering has syntax <=# and <#; partial order properties are provided |
291 - pointwise ordering is instance of class order with standard syntax |
285 by means of interpretation with prefix multiset_order; |
292 <= and <; |
286 * less duplication, less historical organization of sections, |
293 - multiset ordering has syntax <=# and <#; partial order properties |
287 conversion from associations lists to multisets, rudimentary code generation; |
294 are provided by means of interpretation with prefix |
288 * use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union, if needed. |
295 multiset_order; |
289 INCOMPATIBILITY. |
296 - less duplication, less historical organization of sections, |
|
297 conversion from associations lists to multisets, rudimentary code |
|
298 generation; |
|
299 - use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union, |
|
300 if needed. |
|
301 INCOMPATIBILITY. |
290 |
302 |
291 * Code generation: ML and OCaml code is decorated with signatures. |
303 * Code generation: ML and OCaml code is decorated with signatures. |
292 |
304 |
293 * Theory List: added transpose. |
305 * Theory List: added transpose. |
294 |
306 |