equal
deleted
inserted
replaced
35 |
35 |
36 val app_bnds : term -> int -> term |
36 val app_bnds : term -> int -> term |
37 |
37 |
38 val indtac : thm -> string list -> int -> tactic |
38 val indtac : thm -> string list -> int -> tactic |
39 val exh_tac : (string -> thm) -> int -> tactic |
39 val exh_tac : (string -> thm) -> int -> tactic |
40 |
|
41 datatype simproc_dist = FewConstrs of thm list |
|
42 | ManyConstrs of thm * simpset; |
|
43 |
|
44 |
40 |
45 exception Datatype |
41 exception Datatype |
46 exception Datatype_Empty of string |
42 exception Datatype_Empty of string |
47 val name_of_typ : typ -> string |
43 val name_of_typ : typ -> string |
48 val dtyp_of_typ : (string * string list) list -> typ -> dtyp |
44 val dtyp_of_typ : (string * string list) list -> typ -> dtyp |
151 cterm_of thy (List.foldr (fn ((_, T), t) => Abs ("z", T, t)) |
147 cterm_of thy (List.foldr (fn ((_, T), t) => Abs ("z", T, t)) |
152 (Bound 0) params))] exhaustion |
148 (Bound 0) params))] exhaustion |
153 in compose_tac (false, exhaustion', nprems_of exhaustion) i state |
149 in compose_tac (false, exhaustion', nprems_of exhaustion) i state |
154 end; |
150 end; |
155 |
151 |
156 (* handling of distinctness theorems *) |
|
157 |
|
158 datatype simproc_dist = FewConstrs of thm list |
|
159 | ManyConstrs of thm * simpset; |
|
160 |
152 |
161 (********************** Internal description of datatypes *********************) |
153 (********************** Internal description of datatypes *********************) |
162 |
154 |
163 datatype dtyp = |
155 datatype dtyp = |
164 DtTFree of string |
156 DtTFree of string |
174 {index : int, |
166 {index : int, |
175 alt_names : string list option, |
167 alt_names : string list option, |
176 descr : descr, |
168 descr : descr, |
177 sorts : (string * sort) list, |
169 sorts : (string * sort) list, |
178 inject : thm list, |
170 inject : thm list, |
179 distinct : simproc_dist, |
171 distinct : thm list, |
180 induct : thm, |
172 induct : thm, |
181 inducts : thm list, |
173 inducts : thm list, |
182 exhaust : thm, |
174 exhaust : thm, |
183 nchotomy : thm, |
175 nchotomy : thm, |
184 rec_names : string list, |
176 rec_names : string list, |