6 ---------------------------- |
6 ---------------------------- |
7 |
7 |
8 *** Overview of INCOMPATIBILITIES (see below for more details) *** |
8 *** Overview of INCOMPATIBILITIES (see below for more details) *** |
9 |
9 |
10 * several changes of proof tools (see next section); |
10 * several changes of proof tools (see next section); |
|
11 |
|
12 * HOL/datatype: |
|
13 - Theories using datatypes must now have Datatype.thy as an |
|
14 ancestor. |
|
15 - The specific <typename>.induct_tac no longer exists - use the |
|
16 generic induct_tac instead. |
|
17 - natE has been renamed to nat.exhaustion - use exhaust_tac |
|
18 instead of res_inst_tac ... natE. Note that the variable |
|
19 names in nat.exhaustion differ from the names in natE, this |
|
20 may cause some "fragile" proofs to fail. |
|
21 - the theorems split_<typename>_case and split_<typename>_case_asm |
|
22 have been renamed to <typename>.split and <typename>.split_asm. |
|
23 - Since default sorts are no longer ignored by the package, |
|
24 some datatype definitions may have to be annotated with |
|
25 explicit sort constraints. |
|
26 - Primrec definitions no longer require function name and type |
|
27 of recursive argument. |
|
28 Use isatool fixdatatype to adapt your theories and proof scripts |
|
29 to the new package (as usual, backup your sources first!). |
11 |
30 |
12 * HOL/inductive requires Inductive.thy as an ancestor; `inj_onto' is |
31 * HOL/inductive requires Inductive.thy as an ancestor; `inj_onto' is |
13 now called `inj_on' (which makes more sense); |
32 now called `inj_on' (which makes more sense); |
14 |
33 |
15 * HOL/Relation: renamed the relational operator r^-1 to 'converse' |
34 * HOL/Relation: renamed the relational operator r^-1 to 'converse' |
91 lib/logo/isabelle-{small,tiny}.xpm; |
110 lib/logo/isabelle-{small,tiny}.xpm; |
92 |
111 |
93 |
112 |
94 *** HOL *** |
113 *** HOL *** |
95 |
114 |
|
115 * HOL/datatype package reorganized and improved: now supports mutually |
|
116 recursive datatypes such as |
|
117 |
|
118 datatype |
|
119 'a aexp = IF_THEN_ELSE ('a bexp) ('a aexp) ('a aexp) |
|
120 | SUM ('a aexp) ('a aexp) |
|
121 | DIFF ('a aexp) ('a aexp) |
|
122 | NUM 'a |
|
123 and |
|
124 'a bexp = LESS ('a aexp) ('a aexp) |
|
125 | AND ('a bexp) ('a bexp) |
|
126 | OR ('a bexp) ('a bexp) |
|
127 |
|
128 as well as indirectly recursive datatypes such as |
|
129 |
|
130 datatype |
|
131 ('a, 'b) term = Var 'a |
|
132 | App 'b ((('a, 'b) term) list) |
|
133 |
|
134 The new tactic |
|
135 |
|
136 mutual_induct_tac [<var_1>, ..., <var_n>] i |
|
137 |
|
138 performs induction on mutually / indirectly recursive datatypes. |
|
139 Primrec equations are now stored in theory and can be accessed |
|
140 via <function_name>.simps |
|
141 |
96 * reorganized the main HOL image: HOL/Integ and String loaded by |
142 * reorganized the main HOL image: HOL/Integ and String loaded by |
97 default; theory Main includes everything; |
143 default; theory Main includes everything; |
98 |
144 |
99 * added option_map_eq_Some to the default simpset claset; |
145 * added option_map_eq_Some to the default simpset claset; |
100 |
146 |
121 * HOL/inductive package reorganized and improved: now supports mutual |
167 * HOL/inductive package reorganized and improved: now supports mutual |
122 definitions such as |
168 definitions such as |
123 |
169 |
124 inductive EVEN ODD |
170 inductive EVEN ODD |
125 intrs |
171 intrs |
126 null " 0 : EVEN" |
172 null "0 : EVEN" |
127 oddI "n : EVEN ==> Suc n : ODD" |
173 oddI "n : EVEN ==> Suc n : ODD" |
128 evenI "n : ODD ==> Suc n : EVEN" |
174 evenI "n : ODD ==> Suc n : EVEN" |
129 |
175 |
130 new component "elims" of the structure created by the package contains |
176 new component "elims" of the structure created by the package contains |
131 an elimination rule for each of the recursive sets; requires |
177 an elimination rule for each of the recursive sets; requires |