52 Compiler (VCC) or Spec#). See src/HOL/Boogie. |
52 Compiler (VCC) or Spec#). See src/HOL/Boogie. |
53 |
53 |
54 * New counterexample generator tool 'nitpick' based on the Kodkod |
54 * New counterexample generator tool 'nitpick' based on the Kodkod |
55 relational model finder. See src/HOL/Tools/Nitpick and |
55 relational model finder. See src/HOL/Tools/Nitpick and |
56 src/HOL/Nitpick_Examples. |
56 src/HOL/Nitpick_Examples. |
|
57 |
|
58 * New commands 'code_pred' and 'values' to invoke the predicate |
|
59 compiler and to enumerate values of inductive predicates. |
|
60 |
|
61 * A tabled implementation of the reflexive transitive closure. |
|
62 |
|
63 * New implementation of quickcheck uses generic code generator; |
|
64 default generators are provided for all suitable HOL types, records |
|
65 and datatypes. Old quickcheck can be re-activated importing theory |
|
66 Library/SML_Quickcheck. |
57 |
67 |
58 * New testing tool Mirabelle for automated proof tools. Applies |
68 * New testing tool Mirabelle for automated proof tools. Applies |
59 several tools and tactics like sledgehammer, metis, or quickcheck, to |
69 several tools and tactics like sledgehammer, metis, or quickcheck, to |
60 every proof step in a theory. To be used in batch mode via the |
70 every proof step in a theory. To be used in batch mode via the |
61 "mirabelle" utility. |
71 "mirabelle" utility. |
69 semidefinite programming solvers. Method "sos" generates a |
79 semidefinite programming solvers. Method "sos" generates a |
70 certificate that can be pasted into the proof thus avoiding the need |
80 certificate that can be pasted into the proof thus avoiding the need |
71 to call an external tool every time the proof is checked. See |
81 to call an external tool every time the proof is checked. See |
72 src/HOL/Library/Sum_Of_Squares. |
82 src/HOL/Library/Sum_Of_Squares. |
73 |
83 |
74 * New commands 'code_pred' and 'values' to invoke the predicate |
|
75 compiler and to enumerate values of inductive predicates. |
|
76 |
|
77 * A tabled implementation of the reflexive transitive closure. |
|
78 |
|
79 * New theory SupInf of the supremum and infimum operators for sets of |
|
80 reals. |
|
81 |
|
82 * New theory Probability, which contains a development of measure |
|
83 theory, eventually leading to Lebesgue integration and probability. |
|
84 |
|
85 * New method "linarith" invokes existing linear arithmetic decision |
84 * New method "linarith" invokes existing linear arithmetic decision |
86 procedure only. |
85 procedure only. |
87 |
|
88 * New implementation of quickcheck uses generic code generator; |
|
89 default generators are provided for all suitable HOL types, records |
|
90 and datatypes. Old quickcheck can be re-activated importing theory |
|
91 Library/SML_Quickcheck. |
|
92 |
86 |
93 * New command 'atp_minimal' reduces result produced by Sledgehammer. |
87 * New command 'atp_minimal' reduces result produced by Sledgehammer. |
94 |
88 |
95 * New Sledgehammer option "Full Types" in Proof General settings menu. |
89 * New Sledgehammer option "Full Types" in Proof General settings menu. |
96 Causes full type information to be output to the ATPs. This slows |
90 Causes full type information to be output to the ATPs. This slows |
108 series expansion. |
102 series expansion. |
109 |
103 |
110 * ML antiquotation @{code_datatype} inserts definition of a datatype |
104 * ML antiquotation @{code_datatype} inserts definition of a datatype |
111 generated by the code generator; e.g. see src/HOL/Predicate.thy. |
105 generated by the code generator; e.g. see src/HOL/Predicate.thy. |
112 |
106 |
113 * Most rules produced by inductive and datatype package have mandatory |
107 * New theory SupInf of the supremum and infimum operators for sets of |
114 prefixes. INCOMPATIBILITY. |
108 reals. |
|
109 |
|
110 * New theory Probability, which contains a development of measure |
|
111 theory, eventually leading to Lebesgue integration and probability. |
|
112 |
|
113 * Extended Multivariate Analysis to include derivation and Brouwer's |
|
114 fixpoint theorem. |
115 |
115 |
116 * Reorganization of number theory, INCOMPATIBILITY: |
116 * Reorganization of number theory, INCOMPATIBILITY: |
117 - new number theory development for nat and int, in |
117 - new number theory development for nat and int, in |
118 theories Divides and GCD as well as in new session |
118 theories Divides and GCD as well as in new session |
119 Number_Theory |
119 Number_Theory |
123 including theories Legacy_GCD and Primes (prefer Number_Theory |
123 including theories Legacy_GCD and Primes (prefer Number_Theory |
124 if possible) |
124 if possible) |
125 - moved theory Pocklington from src/HOL/Library to |
125 - moved theory Pocklington from src/HOL/Library to |
126 src/HOL/Old_Number_Theory |
126 src/HOL/Old_Number_Theory |
127 |
127 |
128 * Theory GCD now has functions Gcd/GCD and Lcm/LCM for the gcd and lcm |
128 * Theory GCD includes functions Gcd/GCD and Lcm/LCM for the gcd and lcm |
129 of finite and infinite sets. It is shown that they form a complete |
129 of finite and infinite sets. It is shown that they form a complete |
130 lattice. |
130 lattice. |
131 |
131 |
132 * Class semiring_div requires superclass no_zero_divisors and proof of |
132 * Class semiring_div requires superclass no_zero_divisors and proof of |
133 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2, |
133 div_mult_mult1; theorems div_mult_mult1, div_mult_mult2, |
134 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been |
134 div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been |
135 generalized to class semiring_div, subsuming former theorems |
135 generalized to class semiring_div, subsuming former theorems |
136 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and |
136 zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and |
137 zdiv_zmult_zmult2. div_mult_mult1 is now [simp] by default. |
137 zdiv_zmult_zmult2. div_mult_mult1 is now [simp] by default. |
138 INCOMPATIBILITY. |
138 INCOMPATIBILITY. |
139 |
|
140 * Extended Multivariate Analysis to include derivation and Brouwer's |
|
141 fixpoint theorem. |
|
142 |
|
143 * Removed predicate "M hassize n" (<--> card M = n & finite M). |
|
144 INCOMPATIBILITY. |
|
145 |
|
146 * Renamed vector_less_eq_def to vector_le_def, the more usual name. |
|
147 INCOMPATIBILITY. |
|
148 |
|
149 * Added theorem List.map_map as [simp]. Removed List.map_compose. |
|
150 INCOMPATIBILITY. |
|
151 |
|
152 * Code generator attributes follow the usual underscore convention: |
|
153 code_unfold replaces code unfold |
|
154 code_post replaces code post |
|
155 etc. |
|
156 INCOMPATIBILITY. |
|
157 |
139 |
158 * Refinements to lattice classes and sets: |
140 * Refinements to lattice classes and sets: |
159 - less default intro/elim rules in locale variant, more default |
141 - less default intro/elim rules in locale variant, more default |
160 intro/elim rules in class variant: more uniformity |
142 intro/elim rules in class variant: more uniformity |
161 - lemma ge_sup_conv renamed to le_sup_iff, in accordance with |
143 - lemma ge_sup_conv renamed to le_sup_iff, in accordance with |
163 - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and |
145 - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and |
164 sup_aci) |
146 sup_aci) |
165 - renamed ACI to inf_sup_aci |
147 - renamed ACI to inf_sup_aci |
166 - new class "boolean_algebra" |
148 - new class "boolean_algebra" |
167 - class "complete_lattice" moved to separate theory |
149 - class "complete_lattice" moved to separate theory |
168 "complete_lattice"; corresponding constants (and abbreviations) |
150 "Complete_Lattice"; corresponding constants (and abbreviations) |
169 renamed and with authentic syntax: |
151 renamed and with authentic syntax: |
170 Set.Inf ~> Complete_Lattice.Inf |
152 Set.Inf ~> Complete_Lattice.Inf |
171 Set.Sup ~> Complete_Lattice.Sup |
153 Set.Sup ~> Complete_Lattice.Sup |
172 Set.INFI ~> Complete_Lattice.INFI |
154 Set.INFI ~> Complete_Lattice.INFI |
173 Set.SUPR ~> Complete_Lattice.SUPR |
155 Set.SUPR ~> Complete_Lattice.SUPR |
174 Set.Inter ~> Complete_Lattice.Inter |
156 Set.Inter ~> Complete_Lattice.Inter |
175 Set.Union ~> Complete_Lattice.Union |
157 Set.Union ~> Complete_Lattice.Union |
176 Set.INTER ~> Complete_Lattice.INTER |
158 Set.INTER ~> Complete_Lattice.INTER |
177 Set.UNION ~> Complete_Lattice.UNION |
159 Set.UNION ~> Complete_Lattice.UNION |
178 - more convenient names for set intersection and union: |
|
179 Set.Int ~> Set.inter |
|
180 Set.Un ~> Set.union |
|
181 - authentic syntax for |
160 - authentic syntax for |
182 Set.Pow |
161 Set.Pow |
183 Set.image |
162 Set.image |
184 - mere abbreviations: |
163 - mere abbreviations: |
185 Set.empty (for bot) |
164 Set.empty (for bot) |
186 Set.UNIV (for top) |
165 Set.UNIV (for top) |
187 Set.inter (for inf) |
166 Set.inter (for inf, formerly Set.Int) |
188 Set.union (for sup) |
167 Set.union (for sup, formerly Set.Un) |
189 Complete_Lattice.Inter (for Inf) |
168 Complete_Lattice.Inter (for Inf) |
190 Complete_Lattice.Union (for Sup) |
169 Complete_Lattice.Union (for Sup) |
191 Complete_Lattice.INTER (for INFI) |
170 Complete_Lattice.INTER (for INFI) |
192 Complete_Lattice.UNION (for SUPR) |
171 Complete_Lattice.UNION (for SUPR) |
193 - object-logic definitions as far as appropriate |
172 - object-logic definitions as far as appropriate |
217 |
196 |
218 * Function "Inv" is renamed to "inv_into" and function "inv" is now an |
197 * Function "Inv" is renamed to "inv_into" and function "inv" is now an |
219 abbreviation for "inv_into UNIV". Lemmas are renamed accordingly. |
198 abbreviation for "inv_into UNIV". Lemmas are renamed accordingly. |
220 INCOMPATIBILITY. |
199 INCOMPATIBILITY. |
221 |
200 |
222 * Renamed theorems: |
201 -- |
223 Suc_eq_add_numeral_1 -> Suc_eq_plus1 |
202 |
224 Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left |
203 * Most rules produced by inductive and datatype package have mandatory |
225 Suc_plus1 -> Suc_eq_plus1 |
204 prefixes. INCOMPATIBILITY. |
226 |
205 |
227 * Changed "DERIV_intros" to a dynamic fact, which can be augmented by |
206 * Changed "DERIV_intros" to a dynamic fact, which can be augmented by |
228 the attribute of the same name. Each of the theorems in the list |
207 the attribute of the same name. Each of the theorems in the list |
229 DERIV_intros assumes composition with an additional function and |
208 DERIV_intros assumes composition with an additional function and |
230 matches a variable to the derivative, which has to be solved by the |
209 matches a variable to the derivative, which has to be solved by the |
231 Simplifier. Hence (auto intro!: DERIV_intros) computes the derivative |
210 Simplifier. Hence (auto intro!: DERIV_intros) computes the derivative |
232 of most elementary terms. |
211 of most elementary terms. Former Maclauren.DERIV_tac and Maclauren.deriv_tac |
233 |
212 should be replaced by (auto intro!: DERIV_intros). INCOMPATIBILITY. |
234 * Former Maclauren.DERIV_tac and Maclauren.deriv_tac are superseded |
213 |
235 are replaced by (auto intro!: DERIV_intros). INCOMPATIBILITY. |
214 * Code generator attributes follow the usual underscore convention: |
|
215 code_unfold replaces code unfold |
|
216 code_post replaces code post |
|
217 etc. |
|
218 INCOMPATIBILITY. |
236 |
219 |
237 * Renamed methods: |
220 * Renamed methods: |
238 sizechange -> size_change |
221 sizechange -> size_change |
239 induct_scheme -> induction_schema |
222 induct_scheme -> induction_schema |
240 |
223 INCOMPATIBILITY. |
241 * Lemma name change: replaced "anti_sym" by "antisym" everywhere. |
|
242 INCOMPATIBILITY. |
|
243 |
224 |
244 * Discontinued abbreviation "arbitrary" of constant "undefined". |
225 * Discontinued abbreviation "arbitrary" of constant "undefined". |
245 INCOMPATIBILITY, use "undefined" directly. |
226 INCOMPATIBILITY, use "undefined" directly. |
|
227 |
|
228 * Renamed theorems: |
|
229 Suc_eq_add_numeral_1 -> Suc_eq_plus1 |
|
230 Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left |
|
231 Suc_plus1 -> Suc_eq_plus1 |
|
232 *anti_sym -> *antisym* |
|
233 vector_less_eq_def -> vector_le_def |
|
234 INCOMPATIBILITY. |
|
235 |
|
236 * Added theorem List.map_map as [simp]. Removed List.map_compose. |
|
237 INCOMPATIBILITY. |
|
238 |
|
239 * Removed predicate "M hassize n" (<--> card M = n & finite M). |
|
240 INCOMPATIBILITY. |
246 |
241 |
247 |
242 |
248 *** HOLCF *** |
243 *** HOLCF *** |
249 |
244 |
250 * Theory Representable defines a class "rep" of domains that are |
245 * Theory Representable defines a class "rep" of domains that are |