103 * The Theories dockable indicates the overall status of checking of each |
91 * The Theories dockable indicates the overall status of checking of each |
104 entry. When all forked tasks of a theory are finished, the border is |
92 entry. When all forked tasks of a theory are finished, the border is |
105 painted with thick lines; remaining errors in this situation are |
93 painted with thick lines; remaining errors in this situation are |
106 represented by a different border color. |
94 represented by a different border color. |
107 |
95 |
|
96 * Automatic indentation is more careful to avoid redundant spaces in |
|
97 intermediate situations. Keywords are indented after input (via typed |
|
98 characters or completion); see also option "jedit_indent_input". |
|
99 |
|
100 * Action "isabelle.preview" opens an HTML preview of the current theory |
|
101 document in the default web browser. |
|
102 |
|
103 * Command-line invocation "isabelle jedit -R -l SESSION" uses the parent |
|
104 image of the SESSION, with qualified theory imports restricted to that |
|
105 portion of the session graph. Moreover, the ROOT entry of the SESSION is |
|
106 opened in the editor. |
|
107 |
108 * The main Isabelle/jEdit plugin may be restarted manually (using the |
108 * The main Isabelle/jEdit plugin may be restarted manually (using the |
109 jEdit Plugin Manager), as long as the "Isabelle Base" plugin remains |
109 jEdit Plugin Manager), as long as the "Isabelle Base" plugin remains |
110 enabled at all times. |
110 enabled at all times. |
111 |
111 |
112 * Update to jedit-5.4.0. |
112 * Update to current jedit-5.4.0. |
113 |
113 |
114 |
114 |
115 *** Pure *** |
115 *** Pure *** |
116 |
116 |
117 * Deleting the last code equations for a particular function using |
117 * Deleting the last code equations for a particular function using |
118 [code del] results in function with no equations (runtime abort) rather |
118 [code del] results in function with no equations (runtime abort) rather |
119 than an unimplemented function (generation time abort). Use explicit |
119 than an unimplemented function (generation time abort). Use explicit |
120 [[code drop:]] to enforce the latter. Minor INCOMPATIBILTIY. |
120 [[code drop:]] to enforce the latter. Minor INCOMPATIBILTIY. |
121 |
121 |
122 * Proper concept of code declarations in code.ML: |
122 * Proper concept of code declarations in code.ML: |
123 - Regular code declarations act only on the global theory level, |
123 - Regular code declarations act only on the global theory level, being |
124 being ignored with warnings if syntactically malformed. |
124 ignored with warnings if syntactically malformed. |
125 - Explicitly global code declarations yield errors if syntactically malformed. |
125 - Explicitly global code declarations yield errors if syntactically |
126 - Default code declarations are silently ignored if syntactically malformed. |
126 malformed. |
|
127 - Default code declarations are silently ignored if syntactically |
|
128 malformed. |
127 Minor INCOMPATIBILITY. |
129 Minor INCOMPATIBILITY. |
128 |
130 |
129 * Clarified and standardized internal data bookkeeping of code declarations: |
131 * Clarified and standardized internal data bookkeeping of code |
130 history of serials allows to track potentially non-monotonous declarations |
132 declarations: history of serials allows to track potentially |
131 appropriately. Minor INCOMPATIBILITY. |
133 non-monotonous declarations appropriately. Minor INCOMPATIBILITY. |
132 |
134 |
133 |
135 |
134 *** HOL *** |
136 *** HOL *** |
135 |
137 |
136 * Theory Library/Pattern_Aliases provides input syntax for pattern |
138 * SMT module: |
137 aliases as known from Haskell, Scala and ML. |
139 - A new option, 'smt_nat_as_int', has been added to translate 'nat' to |
138 |
140 'int' and benefit from the SMT solver's theory reasoning. It is |
139 * Constant "subseq" in Topological_Spaces removed and subsumed by |
141 disabled by default. |
140 "strict_mono". Some basic lemmas specific to "subseq" have been renamed |
142 - The legacy module "src/HOL/Library/Old_SMT.thy" has been removed. |
141 accordingly, e.g. "subseq_o" -> "strict_mono_o" etc. |
143 - Several small issues have been rectified in the 'smt' command. |
|
144 |
|
145 * (Co)datatype package: The 'size_gen_o_map' lemma is no longer |
|
146 generated for datatypes with type class annotations. As a result, the |
|
147 tactic that derives it no longer fails on nested datatypes. Slight |
|
148 INCOMPATIBILITY. |
142 |
149 |
143 * Command and antiquotation "value" with modified default strategy: |
150 * Command and antiquotation "value" with modified default strategy: |
144 terms without free variables are always evaluated using plain evaluation |
151 terms without free variables are always evaluated using plain evaluation |
145 only, with no fallback on normalization by evaluation. |
152 only, with no fallback on normalization by evaluation. Minor |
146 Minor INCOMPATIBILITY. |
153 INCOMPATIBILITY. |
147 |
|
148 * Notions of squarefreeness, n-th powers, and prime powers in |
|
149 HOL-Computational_Algebra and HOL-Number_Theory. |
|
150 |
|
151 * Material on infinite products in HOL-Analysis |
|
152 |
|
153 * Theory List: |
|
154 "sublist" renamed to "nths" in analogy with "nth". |
|
155 "sublisteq" renamed to "subseq". |
|
156 Minor INCOMPATIBILITY. |
|
157 New generic function "sorted_wrt" |
|
158 |
154 |
159 * Theories "GCD" and "Binomial" are already included in "Main" (instead |
155 * Theories "GCD" and "Binomial" are already included in "Main" (instead |
160 of "Complex_Main"). |
156 of "Complex_Main"). |
161 |
157 |
162 * Constants E/L/F in Library/Formal_Power_Series were renamed to |
|
163 fps_exp/fps_ln/fps_hypergeo to avoid polluting the name space. |
|
164 INCOMPATIBILITY. |
|
165 |
|
166 * Theory Totient in session Number_Theory introduces basic notions |
|
167 about Euler's totient function previously hidden as solitary example |
|
168 in theory Residues. Definition changed so that "totient 1 = 1" in |
|
169 agreement with the literature. Minor INCOMPATIBILITY. |
|
170 |
|
171 * Session "Computional_Algebra" covers many previously scattered |
|
172 theories, notably Euclidean_Algorithm, Factorial_Ring, Formal_Power_Series, |
|
173 Fraction_Field, Fundamental_Theorem_Algebra, Normalized_Fraction, |
|
174 Polynomial_FPS, Polynomial, Primes. Minor INCOMPATIBILITY. |
|
175 |
|
176 * Constant "surj" is a full input/output abbreviation (again). |
158 * Constant "surj" is a full input/output abbreviation (again). |
177 Minor INCOMPATIBILITY. |
159 Minor INCOMPATIBILITY. |
178 |
160 |
179 * Theory Library/FinFun has been moved to AFP (again). INCOMPATIBILITY. |
|
180 |
|
181 * Some old and rarely used ASCII replacement syntax has been removed. |
|
182 INCOMPATIBILITY, standard syntax with symbols should be used instead. |
|
183 The subsequent commands help to reproduce the old forms, e.g. to |
|
184 simplify porting old theories: |
|
185 |
|
186 syntax (ASCII) |
|
187 "_PiE" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set" ("(3PIE _:_./ _)" 10) |
|
188 "_Pi" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set" ("(3PI _:_./ _)" 10) |
|
189 "_lam" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'a \<Rightarrow> 'b \<Rightarrow> ('a \<Rightarrow> 'b)" ("(3%_:_./ _)" [0,0,3] 3) |
|
190 |
|
191 * Dropped aliasses RangeP, DomainP for Rangep, Domainp respectively. |
161 * Dropped aliasses RangeP, DomainP for Rangep, Domainp respectively. |
192 INCOMPATIBILITY. |
162 INCOMPATIBILITY. |
193 |
163 |
194 * Renamed ii to imaginary_unit in order to free up ii as a variable name. |
164 * Renamed ii to imaginary_unit in order to free up ii as a variable |
195 The syntax \<i> remains available. |
165 name. The syntax \<i> remains available. INCOMPATIBILITY. |
196 INCOMPATIBILITY. |
166 |
197 |
167 * Dropped abbreviations transP, antisymP, single_valuedP; use constants |
198 * Dropped abbreviations transP, antisymP, single_valuedP; |
168 transp, antisymp, single_valuedp instead. INCOMPATIBILITY. |
199 use constants transp, antisymp, single_valuedp instead. |
169 |
200 INCOMPATIBILITY. |
170 * Constant "subseq" in Topological_Spaces has been removed -- it is |
201 |
171 subsumed by "strict_mono". Some basic lemmas specific to "subseq" have |
202 * Algebraic type class hierarchy of euclidean (semi)rings in HOL: |
172 been renamed accordingly, e.g. "subseq_o" -> "strict_mono_o" etc. |
203 euclidean_(semi)ring, euclidean_(semi)ring_cancel, |
173 |
204 unique_euclidean_(semi)ring; instantiation requires |
174 * Theory List: "sublist" renamed to "nths" in analogy with "nth", and |
205 provision of a euclidean size. |
175 "sublisteq" renamed to "subseq". Minor INCOMPATIBILITY. |
206 |
176 |
207 * Reworking of theory Euclidean_Algorithm in session HOL-Number_Theory: |
177 * Theory List: new generic function "sorted_wrt". |
208 - Euclidean induction is available as rule eucl_induct; |
178 |
209 - Constants Euclidean_Algorithm.gcd, Euclidean_Algorithm.lcm, |
179 * Named theorems mod_simps covers various congruence rules concerning |
210 Euclidean_Algorithm.Gcd and Euclidean_Algorithm.Lcm allow |
180 mod, replacing former zmod_simps. INCOMPATIBILITY. |
211 easy instantiation of euclidean (semi)rings as GCD (semi)rings. |
|
212 - Coefficients obtained by extended euclidean algorithm are |
|
213 available as "bezout_coefficients". |
|
214 INCOMPATIBILITY. |
|
215 |
|
216 * Named collection mod_simps covers various congruence rules |
|
217 concerning mod, replacing former zmod_simps. |
|
218 INCOMPATIBILITY. |
|
219 |
181 |
220 * Swapped orientation of congruence rules mod_add_left_eq, |
182 * Swapped orientation of congruence rules mod_add_left_eq, |
221 mod_add_right_eq, mod_add_eq, mod_mult_left_eq, mod_mult_right_eq, |
183 mod_add_right_eq, mod_add_eq, mod_mult_left_eq, mod_mult_right_eq, |
222 mod_mult_eq, mod_minus_eq, mod_diff_left_eq, mod_diff_right_eq, |
184 mod_mult_eq, mod_minus_eq, mod_diff_left_eq, mod_diff_right_eq, |
223 mod_diff_eq. INCOMPATIBILITY. |
185 mod_diff_eq. INCOMPATIBILITY. |
224 |
186 |
225 * Generalized some facts: |
187 * Generalized some facts: |
226 measure_induct_rule |
188 measure_induct_rule |
227 measure_induct |
189 measure_induct |
228 zminus_zmod ~> mod_minus_eq |
190 zminus_zmod ~> mod_minus_eq |
229 zdiff_zmod_left ~> mod_diff_left_eq |
191 zdiff_zmod_left ~> mod_diff_left_eq |
230 zdiff_zmod_right ~> mod_diff_right_eq |
192 zdiff_zmod_right ~> mod_diff_right_eq |
231 zmod_eq_dvd_iff ~> mod_eq_dvd_iff |
193 zmod_eq_dvd_iff ~> mod_eq_dvd_iff |
232 INCOMPATIBILITY. |
194 INCOMPATIBILITY. |
233 |
195 |
234 * (Co)datatype package: |
196 * Algebraic type class hierarchy of euclidean (semi)rings in HOL: |
235 - The 'size_gen_o_map' lemma is no longer generated for datatypes |
197 euclidean_(semi)ring, euclidean_(semi)ring_cancel, |
236 with type class annotations. As a result, the tactic that derives |
198 unique_euclidean_(semi)ring; instantiation requires provision of a |
237 it no longer fails on nested datatypes. Slight INCOMPATIBILITY. |
199 euclidean size. |
238 |
200 |
239 * Session HOL-Algebra extended by additional lattice theory: the |
201 * Theory "HOL-Number_Theory.Euclidean_Algorithm" has been reworked: |
240 Knaster-Tarski fixed point theorem and Galois Connections. |
202 - Euclidean induction is available as rule eucl_induct. |
241 |
203 - Constants Euclidean_Algorithm.gcd, Euclidean_Algorithm.lcm, |
242 * SMT module: |
204 Euclidean_Algorithm.Gcd and Euclidean_Algorithm.Lcm allow |
243 - A new option, 'smt_nat_as_int', has been added to translate 'nat' to |
205 easy instantiation of euclidean (semi)rings as GCD (semi)rings. |
244 'int' and benefit from the SMT solver's theory reasoning. It is disabled |
206 - Coefficients obtained by extended euclidean algorithm are |
245 by default. |
207 available as "bezout_coefficients". |
246 - The legacy module 'src/HOL/Library/Old_SMT.thy' has been removed. |
208 INCOMPATIBILITY. |
247 - Several small issues have been rectified in the 'smt' command. |
209 |
248 |
210 * Theory "Number_Theory.Totient" introduces basic notions about Euler's |
249 * Session HOL-Analysis: more material involving arcs, paths, covering |
211 totient function previously hidden as solitary example in theory |
250 spaces, innessential maps, retracts. Major results include the Jordan |
212 Residues. Definition changed so that "totient 1 = 1" in agreement with |
251 Curve Theorem and the Great Picard Theorem. |
213 the literature. Minor INCOMPATIBILITY. |
252 |
214 |
253 * The theorem in Permutations has been renamed: |
215 * Theory "HOL-Library.Permutations": theorem bij_swap_ompose_bij has |
254 bij_swap_ompose_bij ~> bij_swap_compose_bij |
216 been renamed to bij_swap_compose_bij. INCOMPATIBILITY. |
255 |
217 |
256 * Session HOL-Library: The simprocs on subsets operators of multisets |
218 * Theory "HOL-Library.Formal_Power_Series": constants E/L/F have been |
257 have been renamed: |
219 renamed to fps_exp/fps_ln/fps_hypergeo to avoid polluting the name |
|
220 space. INCOMPATIBILITY. |
|
221 |
|
222 * Theory "HOL-Library.FinFun" has been moved to AFP (again). |
|
223 INCOMPATIBILITY. |
|
224 |
|
225 * Theory "HOL-Library.FuncSet": some old and rarely used ASCII |
|
226 replacement syntax has been removed. INCOMPATIBILITY, standard syntax |
|
227 with symbols should be used instead. The subsequent commands help to |
|
228 reproduce the old forms, e.g. to simplify porting old theories: |
|
229 |
|
230 syntax (ASCII) |
|
231 "_PiE" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set" ("(3PIE _:_./ _)" 10) |
|
232 "_Pi" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set" ("(3PI _:_./ _)" 10) |
|
233 "_lam" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'a \<Rightarrow> 'b \<Rightarrow> ('a \<Rightarrow> 'b)" ("(3%_:_./ _)" [0,0,3] 3) |
|
234 |
|
235 * Theory "HOL-Library.Multiset": the simprocs on subsets operators of |
|
236 multisets have been renamed: |
|
237 |
258 msetless_cancel_numerals ~> msetsubset_cancel |
238 msetless_cancel_numerals ~> msetsubset_cancel |
259 msetle_cancel_numerals ~> msetsubset_eq_cancel |
239 msetle_cancel_numerals ~> msetsubset_eq_cancel |
260 INCOMPATIBILITY. |
240 |
261 |
241 INCOMPATIBILITY. |
262 * Session HOL-Library: The suffix _numerals has been removed from the |
242 |
263 name of the simprocs on multisets. INCOMPATIBILITY. |
243 * Theory "HOL-Library.Pattern_Aliases" provides input syntax for pattern |
|
244 aliases as known from Haskell, Scala and ML. |
|
245 |
|
246 * Session HOL-Analysis: more material involving arcs, paths, covering |
|
247 spaces, innessential maps, retracts, material on infinite products. |
|
248 Major results include the Jordan Curve Theorem and the Great Picard |
|
249 Theorem. |
|
250 |
|
251 * Session HOL-Algebra has been extended by additional lattice theory: |
|
252 the Knaster-Tarski fixed point theorem and Galois Connections. |
|
253 |
|
254 * Sessions HOL-Computational_Algebra and HOL-Number_Theory: new notions |
|
255 of squarefreeness, n-th powers, and prime powers. |
|
256 |
|
257 * Session "HOL-Computional_Algebra" covers many previously scattered |
|
258 theories, notably Euclidean_Algorithm, Factorial_Ring, |
|
259 Formal_Power_Series, Fraction_Field, Fundamental_Theorem_Algebra, |
|
260 Normalized_Fraction, Polynomial_FPS, Polynomial, Primes. Minor |
|
261 INCOMPATIBILITY. |
264 |
262 |
265 |
263 |
266 *** System *** |
264 *** System *** |
267 |
|
268 * Option parallel_proofs is 1 by default (instead of more aggressive 2). |
|
269 This requires less heap space and avoids burning parallel CPU cycles, |
|
270 while full subproof parallelization is enabled for repeated builds |
|
271 (according to parallel_subproofs_threshold). |
|
272 |
265 |
273 * Prover IDE support for the Visual Studio Code editor and language |
266 * Prover IDE support for the Visual Studio Code editor and language |
274 server protocol, via the "isabelle vscode_server" tool (see also |
267 server protocol, via the "isabelle vscode_server" tool (see also |
275 src/Tools/VSCode/README.md). The example application within the VS code |
268 src/Tools/VSCode/README.md). The example application within the VS code |
276 editor is called "Isabelle" and available from its online repository |
269 editor is called "Isabelle" and available from its online repository |
277 (the "Marketplace"). It serves as example for further potential IDE |
270 (the "Marketplace"). It serves as example for further potential IDE |
278 front-ends. |
271 front-ends. |
279 |
272 |
280 * ISABELLE_SCALA_BUILD_OPTIONS has been renamed to |
273 * System option "parallel_proofs" is 1 by default (instead of more |
281 ISABELLE_SCALAC_OPTIONS. Rare INCOMPATIBILITY. |
274 aggressive 2). This requires less heap space and avoids burning parallel |
282 |
275 CPU cycles, while full subproof parallelization is enabled for repeated |
283 * Isabelle settings ISABELLE_WINDOWS_PLATFORM, |
276 builds (according to parallel_subproofs_threshold). |
|
277 |
|
278 * System option "record_proofs" allows to change the global |
|
279 Proofterm.proofs variable for a session. Regular values are are 0, 1, 2; |
|
280 a negative value means the current state in the ML heap image remains |
|
281 unchanged. |
|
282 |
|
283 * Isabelle settings variable ISABELLE_SCALA_BUILD_OPTIONS has been |
|
284 renamed to ISABELLE_SCALAC_OPTIONS. Rare INCOMPATIBILITY. |
|
285 |
|
286 * Isabelle settings variables ISABELLE_WINDOWS_PLATFORM, |
284 ISABELLE_WINDOWS_PLATFORM32, ISABELLE_WINDOWS_PLATFORM64 indicate the |
287 ISABELLE_WINDOWS_PLATFORM32, ISABELLE_WINDOWS_PLATFORM64 indicate the |
285 native Windows platform (independently of the Cygwin installation). This |
288 native Windows platform (independently of the Cygwin installation). This |
286 is analogous to ISABELLE_PLATFORM, ISABELLE_PLATFORM32, |
289 is analogous to ISABELLE_PLATFORM, ISABELLE_PLATFORM32, |
287 ISABELLE_PLATFORM64. |
290 ISABELLE_PLATFORM64. |
288 |
291 |
289 * System option "record_proofs" allows to change the global |
292 * Isabelle/Scala: the SQL module supports access to relational |
290 Proofterm.proofs variable for a session. Regular values are are 0, 1, 2; |
293 databases, either as plain file (SQLite) or full-scale server |
291 a negative value means the current state in the ML heap image remains |
294 (PostgreSQL via local port or remote ssh connection). |
292 unchanged. |
295 |
|
296 * Results of "isabelle build" are recorded as SQLite database (i.e. |
|
297 "Application File Format" in the sense of |
|
298 https://www.sqlite.org/appfileformat.html). This allows systematic |
|
299 access via operations from module Sessions.Store in Isabelle/Scala. |
293 |
300 |
294 * Command-line tool "isabelle imports" helps to maintain theory imports |
301 * Command-line tool "isabelle imports" helps to maintain theory imports |
295 wrt. session structure. Examples: |
302 wrt. session structure. Examples: |
296 |
303 |
297 isabelle imports -I -a |
304 isabelle imports -I -a |
298 isabelle imports -U -a |
305 isabelle imports -U -a |
299 isabelle imports -U -i -a |
306 isabelle imports -U -i -a |
300 isabelle imports -M -a -d '~~/src/Benchmarks' |
307 isabelle imports -M -a -d '~~/src/Benchmarks' |
301 |
|
302 * Isabelle/Scala: the SQL module supports access to relational |
|
303 databases, either as plain file (SQLite) or full-scale server |
|
304 (PostgreSQL via local port or remote ssh connection). |
|
305 |
|
306 * Results of "isabelle build" are recorded as SQLite database (i.e. |
|
307 "Application File Format" in the sense of |
|
308 https://www.sqlite.org/appfileformat.html). This allows systematic |
|
309 access via operations from module Sessions.Store in Isabelle/Scala. |
|
310 |
308 |
311 |
309 |
312 New in Isabelle2016-1 (December 2016) |
310 New in Isabelle2016-1 (December 2016) |
313 ------------------------------------- |
311 ------------------------------------- |
314 |
312 |