137 |
137 |
138 * Interpretation commands no longer accept interpretation attributes. |
138 * Interpretation commands no longer accept interpretation attributes. |
139 INCOMPATBILITY. |
139 INCOMPATBILITY. |
140 |
140 |
141 * Complete re-implementation of locales. INCOMPATIBILITY. The most |
141 * Complete re-implementation of locales. INCOMPATIBILITY. The most |
142 important changes are listed below. See documentation (forthcoming) |
142 important changes are listed below. See the Tutorial on Locales for |
143 and tutorial (also forthcoming) for details. |
143 details. |
144 |
144 |
145 - In locale expressions, instantiation replaces renaming. Parameters |
145 - In locale expressions, instantiation replaces renaming. Parameters |
146 must be declared in a for clause. To aid compatibility with previous |
146 must be declared in a for clause. To aid compatibility with previous |
147 parameter inheritance, in locale declarations, parameters that are not |
147 parameter inheritance, in locale declarations, parameters that are not |
148 'touched' (instantiation position "_" or omitted) are implicitly added |
148 'touched' (instantiation position "_" or omitted) are implicitly added |
152 locale expressions and context elements. The latter is particularly |
152 locale expressions and context elements. The latter is particularly |
153 useful in locale declarations. |
153 useful in locale declarations. |
154 |
154 |
155 - More flexible mechanisms to qualify names generated by locale |
155 - More flexible mechanisms to qualify names generated by locale |
156 expressions. Qualifiers (prefixes) may be specified in locale |
156 expressions. Qualifiers (prefixes) may be specified in locale |
157 expressions. Available are normal qualifiers (syntax "name:") and |
157 expressions, and can be marked as mandatory (syntax: "name!:") or |
158 strict qualifiers (syntax "name!:"). The latter must occur in name |
158 optional (syntax "name?:"). The default depends for plain "name:" |
159 references and are useful to avoid accidental hiding of names, the |
159 depends on the situation where a locale expression is used: in |
160 former are optional. Qualifiers derived from the parameter names of a |
160 commands 'locale' and 'sublocale' prefixes are optional, in |
161 locale are no longer generated. |
161 'interpretation' and 'interpret' prefixes are mandatory. Old-style |
|
162 implicit qualifiers derived from the parameter names of a locale are |
|
163 no longer generated. |
162 |
164 |
163 - "sublocale l < e" replaces "interpretation l < e". The |
165 - "sublocale l < e" replaces "interpretation l < e". The |
164 instantiation clause in "interpretation" and "interpret" (square |
166 instantiation clause in "interpretation" and "interpret" (square |
165 brackets) is no longer available. Use locale expressions. |
167 brackets) is no longer available. Use locale expressions. |
166 |
168 |
167 - When converting proof scripts, be sure to replace qualifiers in |
169 - When converting proof scripts, be sure to mandatory qualifiers in |
168 "interpretation" and "interpret" by strict qualifiers. Qualifiers in |
170 'interpretation' and 'interpret' should be retained by default, even |
169 locale expressions range over a single locale instance only. |
171 if this is an INCOMPATIBILITY compared to former behaviour. |
|
172 Qualifiers in locale expressions range over a single locale instance |
|
173 only. |
170 |
174 |
171 * Command 'instance': attached definitions no longer accepted. |
175 * Command 'instance': attached definitions no longer accepted. |
172 INCOMPATIBILITY, use proper 'instantiation' target. |
176 INCOMPATIBILITY, use proper 'instantiation' target. |
173 |
177 |
174 * Keyword 'code_exception' now named 'code_abort'. INCOMPATIBILITY. |
178 * Keyword 'code_exception' now named 'code_abort'. INCOMPATIBILITY. |
178 |
182 |
179 * New 'find_theorems' criterion "solves" matching theorems that |
183 * New 'find_theorems' criterion "solves" matching theorems that |
180 directly solve the current goal. |
184 directly solve the current goal. |
181 |
185 |
182 * Auto solve feature for main theorem statements (cf. option in Proof |
186 * Auto solve feature for main theorem statements (cf. option in Proof |
183 General Isabelle settings menu, enabled by default). Whenever a new |
187 General Isabelle settings menu, disabled by default). Whenever a new |
184 goal is stated, "find_theorems solves" is called; any theorems that |
188 goal is stated, "find_theorems solves" is called; any theorems that |
185 could solve the lemma directly are listed underneath the goal. |
189 could solve the lemma directly are listed as part of the goal state. |
186 |
190 |
187 * Command 'find_consts' searches for constants based on type and name |
191 * Command 'find_consts' searches for constants based on type and name |
188 patterns, e.g. |
192 patterns, e.g. |
189 |
193 |
190 find_consts "_ => bool" |
194 find_consts "_ => bool" |
191 |
195 |
192 By default, matching is against subtypes, but it may be restricted to |
196 By default, matching is against subtypes, but it may be restricted to |
193 the whole type. Searching by name is possible. Multiple queries are |
197 the whole type. Searching by name is possible. Multiple queries are |
194 conjunctive and queries may be negated by prefixing them with a |
198 conjunctive and queries may be negated by prefixing them with a |
195 hyphen: |
199 hyphen: |
196 |
200 |
197 find_consts strict: "_ => bool" name: "Int" -"int => int" |
201 find_consts strict: "_ => bool" name: "Int" -"int => int" |
198 |
202 |