44 |
48 |
45 * Proofs of fully specified statements are run in parallel on |
49 * Proofs of fully specified statements are run in parallel on |
46 multi-core systems. A speedup factor of 2-3 can be expected on a |
50 multi-core systems. A speedup factor of 2-3 can be expected on a |
47 regular 4-core machine, if the initial heap space is made reasonably |
51 regular 4-core machine, if the initial heap space is made reasonably |
48 large (cf. Poly/ML option -H). [Poly/ML 5.2.1 or later] |
52 large (cf. Poly/ML option -H). [Poly/ML 5.2.1 or later] |
49 |
|
50 * The Isabelle System Manual (system) has been updated, with formally |
|
51 checked references as hyperlinks. |
|
52 |
53 |
53 * Generalized Isar history, with support for linear undo, direct state |
54 * Generalized Isar history, with support for linear undo, direct state |
54 addressing etc. |
55 addressing etc. |
55 |
56 |
56 * Recovered hiding of consts, which was accidentally broken in |
57 * Recovered hiding of consts, which was accidentally broken in |
109 * Changed defaults for unify configuration options: |
110 * Changed defaults for unify configuration options: |
110 |
111 |
111 unify_trace_bound = 50 (formerly 25) |
112 unify_trace_bound = 50 (formerly 25) |
112 unify_search_bound = 60 (formerly 30) |
113 unify_search_bound = 60 (formerly 30) |
113 |
114 |
114 * Different bookkeeping for code equations: |
115 * Different bookkeeping for code equations (INCOMPATIBILITY): |
115 a) On theory merge, the last set of code equations for a particular constant |
116 |
116 is taken (in accordance with the policy applied by other parts of the |
117 a) On theory merge, the last set of code equations for a particular |
117 code generator framework). |
118 constant is taken (in accordance with the policy applied by other |
118 b) Code equations stemming from explicit declarations (e.g. code attribute) |
119 parts of the code generator framework). |
119 gain priority over default code equations stemming from definition, primrec, |
120 |
120 fun etc. |
121 b) Code equations stemming from explicit declarations (e.g. code |
121 INCOMPATIBILITY. |
122 attribute) gain priority over default code equations stemming |
122 |
123 from definition, primrec, fun etc. |
123 * Global versions of theorems stemming from classes do not carry |
124 |
124 a parameter prefix any longer. INCOMPATIBILITY. |
125 * Global versions of theorems stemming from classes do not carry a |
|
126 parameter prefix any longer. INCOMPATIBILITY. |
125 |
127 |
126 * Dropped locale element "includes". This is a major INCOMPATIBILITY. |
128 * Dropped locale element "includes". This is a major INCOMPATIBILITY. |
127 In existing theorem specifications replace the includes element by the |
129 In existing theorem specifications replace the includes element by the |
128 respective context elements of the included locale, omitting those that |
130 respective context elements of the included locale, omitting those |
129 are already present in the theorem specification. Multiple assume |
131 that are already present in the theorem specification. Multiple |
130 elements of a locale should be replaced by a single one involving the |
132 assume elements of a locale should be replaced by a single one |
131 locale predicate. In the proof body, declarations (most notably |
133 involving the locale predicate. In the proof body, declarations (most |
132 theorems) may be regained by interpreting the respective locales in the |
134 notably theorems) may be regained by interpreting the respective |
133 proof context as required (command "interpret"). |
135 locales in the proof context as required (command "interpret"). |
|
136 |
134 If using "includes" in replacement of a target solely because the |
137 If using "includes" in replacement of a target solely because the |
135 parameter types in the theorem are not as general as in the target, |
138 parameter types in the theorem are not as general as in the target, |
136 consider declaring a new locale with additional type constraints on the |
139 consider declaring a new locale with additional type constraints on |
137 parameters (context element "constrains"). |
140 the parameters (context element "constrains"). |
138 |
141 |
139 * Dropped "locale (open)". INCOMPATIBILITY. |
142 * Dropped "locale (open)". INCOMPATIBILITY. |
140 |
143 |
141 * Interpretation commands no longer attempt to simplify goal. |
144 * Interpretation commands no longer attempt to simplify goal. |
142 INCOMPATIBILITY: in rare situations the generated goal differs. Use |
145 INCOMPATIBILITY: in rare situations the generated goal differs. Use |
143 methods intro_locales and unfold_locales to clarify. |
146 methods intro_locales and unfold_locales to clarify. |
144 |
147 |
145 * Interpretation commands no longer accept interpretation attributes. |
148 * Interpretation commands no longer accept interpretation attributes. |
146 INCOMPATBILITY. |
149 INCOMPATBILITY. |
147 |
150 |
148 * Complete re-implementation of locales. INCOMPATIBILITY. |
151 * Complete re-implementation of locales. INCOMPATIBILITY. The most |
149 The most important changes are listed below. See documentation |
152 important changes are listed below. See documentation (forthcoming) |
150 (forthcoming) and tutorial (also forthcoming) for details. |
153 and tutorial (also forthcoming) for details. |
151 |
154 |
152 - In locale expressions, instantiation replaces renaming. Parameters |
155 - In locale expressions, instantiation replaces renaming. Parameters |
153 must be declared in a for clause. To aid compatibility with previous |
156 must be declared in a for clause. To aid compatibility with previous |
154 parameter inheritance, in locale declarations, parameters that are not |
157 parameter inheritance, in locale declarations, parameters that are not |
155 'touched' (instantiation position "_" or omitted) are implicitly added |
158 'touched' (instantiation position "_" or omitted) are implicitly added |
159 locale expressions and context elements. The latter is particularly |
162 locale expressions and context elements. The latter is particularly |
160 useful in locale declarations. |
163 useful in locale declarations. |
161 |
164 |
162 - More flexible mechanisms to qualify names generated by locale |
165 - More flexible mechanisms to qualify names generated by locale |
163 expressions. Qualifiers (prefixes) may be specified in locale |
166 expressions. Qualifiers (prefixes) may be specified in locale |
164 expressions. Available are normal qualifiers (syntax "name:") and strict |
167 expressions. Available are normal qualifiers (syntax "name:") and |
165 qualifiers (syntax "name!:"). The latter must occur in name references |
168 strict qualifiers (syntax "name!:"). The latter must occur in name |
166 and are useful to avoid accidental hiding of names, the former are |
169 references and are useful to avoid accidental hiding of names, the |
167 optional. Qualifiers derived from the parameter names of a locale are no |
170 former are optional. Qualifiers derived from the parameter names of a |
168 longer generated. |
171 locale are no longer generated. |
169 |
172 |
170 - "sublocale l < e" replaces "interpretation l < e". The instantiation |
173 - "sublocale l < e" replaces "interpretation l < e". The |
171 clause in "interpretation" and "interpret" (square brackets) is no |
174 instantiation clause in "interpretation" and "interpret" (square |
172 longer available. Use locale expressions. |
175 brackets) is no longer available. Use locale expressions. |
173 |
176 |
174 - When converting proof scripts, be sure to replace qualifiers in |
177 - When converting proof scripts, be sure to replace qualifiers in |
175 "interpretation" and "interpret" by strict qualifiers. Qualifiers in |
178 "interpretation" and "interpret" by strict qualifiers. Qualifiers in |
176 locale expressions range over a single locale instance only. |
179 locale expressions range over a single locale instance only. |
177 |
180 |
181 * Keyword 'code_exception' now named 'code_abort'. INCOMPATIBILITY. |
184 * Keyword 'code_exception' now named 'code_abort'. INCOMPATIBILITY. |
182 |
185 |
183 * The 'axiomatization' command now only works within a global theory |
186 * The 'axiomatization' command now only works within a global theory |
184 context. INCOMPATIBILITY. |
187 context. INCOMPATIBILITY. |
185 |
188 |
186 * New find_theorems criterion "solves" matching theorems that |
189 * New find_theorems criterion "solves" matching theorems that directly |
187 directly solve the current goal. Try "find_theorems solves". |
190 solve the current goal. Try "find_theorems solves". |
188 |
191 |
189 * Added an auto solve option, which can be enabled through the |
192 * Added an auto solve option, which can be enabled through the |
190 ProofGeneral Isabelle settings menu (disabled by default). |
193 ProofGeneral Isabelle settings menu (disabled by default). |
191 |
194 |
192 When enabled, find_theorems solves is called whenever a new lemma is |
195 When enabled, find_theorems solves is called whenever a new lemma is |
193 stated. Any theorems that could solve the lemma directly are listed |
196 stated. Any theorems that could solve the lemma directly are listed |
194 underneath the goal. |
197 underneath the goal. |
195 |
198 |
196 * New command find_consts searches for constants based on type and name |
199 * New command find_consts searches for constants based on type and |
197 patterns, e.g. |
200 name patterns, e.g. |
198 |
201 |
199 find_consts "_ => bool" |
202 find_consts "_ => bool" |
200 |
203 |
201 By default, matching is against subtypes, but it may be restricted to the |
204 By default, matching is against subtypes, but it may be restricted to |
202 whole type. Searching by name is possible. Multiple queries are conjunctive |
205 the whole type. Searching by name is possible. Multiple queries are |
203 and queries may be negated by prefixing them with a hyphen: |
206 conjunctive and queries may be negated by prefixing them with a |
|
207 hyphen: |
204 |
208 |
205 find_consts strict: "_ => bool" name: "Int" -"int => int" |
209 find_consts strict: "_ => bool" name: "Int" -"int => int" |
206 |
210 |
207 |
211 |
208 *** Document preparation *** |
212 *** Document preparation *** |
310 * Generic ATP manager for Sledgehammer, based on ML threads instead of |
314 * Generic ATP manager for Sledgehammer, based on ML threads instead of |
311 Posix processes. Avoids potentially expensive forking of the ML |
315 Posix processes. Avoids potentially expensive forking of the ML |
312 process. New thread-based implementation also works on non-Unix |
316 process. New thread-based implementation also works on non-Unix |
313 platforms (Cygwin). Provers are no longer hardwired, but defined |
317 platforms (Cygwin). Provers are no longer hardwired, but defined |
314 within the theory via plain ML wrapper functions. Basic Sledgehammer |
318 within the theory via plain ML wrapper functions. Basic Sledgehammer |
315 commands are covered in the isar-ref manual |
319 commands are covered in the isar-ref manual. |
316 |
320 |
317 * Wrapper scripts for remote SystemOnTPTP service allows to use |
321 * Wrapper scripts for remote SystemOnTPTP service allows to use |
318 sledgehammer without local ATP installation (Vampire etc.). See also |
322 sledgehammer without local ATP installation (Vampire etc.). See also |
319 ISABELLE_HOME/contrib/SystemOnTPTP and the VAMPIRE_HOME setting |
323 ISABELLE_HOME/contrib/SystemOnTPTP and the VAMPIRE_HOME setting |
320 variable. Other provers may be included via suitable ML wrappers, see |
324 variable. Other provers may be included via suitable ML wrappers, see |