equal
deleted
inserted
replaced
129 val mk_dtor_set_inductN: int -> string |
129 val mk_dtor_set_inductN: int -> string |
130 val mk_set_inductN: int -> string |
130 val mk_set_inductN: int -> string |
131 |
131 |
132 val co_prefix: fp_kind -> string |
132 val co_prefix: fp_kind -> string |
133 |
133 |
134 val base_name_of_typ: typ -> string |
|
135 val mk_common_name: string list -> string |
134 val mk_common_name: string list -> string |
136 |
135 |
137 val split_conj_thm: thm -> thm list |
136 val split_conj_thm: thm -> thm list |
138 val split_conj_prems: int -> thm -> thm |
137 val split_conj_prems: int -> thm -> thm |
139 |
138 |
347 val sel_unfoldN = selN ^ "_" ^ unfoldN |
346 val sel_unfoldN = selN ^ "_" ^ unfoldN |
348 val sel_corecN = selN ^ "_" ^ corecN |
347 val sel_corecN = selN ^ "_" ^ corecN |
349 |
348 |
350 fun co_prefix fp = (if fp = Greatest_FP then "co" else ""); |
349 fun co_prefix fp = (if fp = Greatest_FP then "co" else ""); |
351 |
350 |
352 fun add_components_of_typ (Type (s, Ts)) = |
|
353 fold add_components_of_typ Ts #> cons (Long_Name.base_name s) |
|
354 | add_components_of_typ _ = I; |
|
355 |
|
356 fun base_name_of_typ T = space_implode "_" (add_components_of_typ T []); |
|
357 |
|
358 val mk_common_name = space_implode "_"; |
351 val mk_common_name = space_implode "_"; |
359 |
352 |
360 fun dest_sumT (Type (@{type_name sum}, [T, T'])) = (T, T'); |
353 fun dest_sumT (Type (@{type_name sum}, [T, T'])) = (T, T'); |
361 |
354 |
362 fun dest_sumTN 1 T = [T] |
355 fun dest_sumTN 1 T = [T] |