160 val prj_def = singleton (Proof_Context.export lthy ctxt_thy) prj_ldef |
160 val prj_def = singleton (Proof_Context.export lthy ctxt_thy) prj_ldef |
161 val defl_def = singleton (Proof_Context.export lthy ctxt_thy) defl_ldef |
161 val defl_def = singleton (Proof_Context.export lthy ctxt_thy) defl_ldef |
162 val liftemb_def = singleton (Proof_Context.export lthy ctxt_thy) liftemb_ldef |
162 val liftemb_def = singleton (Proof_Context.export lthy ctxt_thy) liftemb_ldef |
163 val liftprj_def = singleton (Proof_Context.export lthy ctxt_thy) liftprj_ldef |
163 val liftprj_def = singleton (Proof_Context.export lthy ctxt_thy) liftprj_ldef |
164 val liftdefl_def = singleton (Proof_Context.export lthy ctxt_thy) liftdefl_ldef |
164 val liftdefl_def = singleton (Proof_Context.export lthy ctxt_thy) liftdefl_ldef |
165 val type_definition_thm = |
|
166 Raw_Simplifier.rewrite_rule |
|
167 (the_list (#set_def (#2 info))) |
|
168 (#type_definition (#2 info)) |
|
169 val typedef_thms = |
165 val typedef_thms = |
170 [type_definition_thm, #below_def cpo_info, emb_def, prj_def, defl_def, |
166 [#type_definition (#2 info), #below_def cpo_info, emb_def, prj_def, defl_def, |
171 liftemb_def, liftprj_def, liftdefl_def] |
167 liftemb_def, liftprj_def, liftdefl_def] |
172 val thy = lthy |
168 val thy = lthy |
173 |> Class.prove_instantiation_instance |
169 |> Class.prove_instantiation_instance |
174 (K (Tactic.rtac (@{thm typedef_domain_class} OF typedef_thms) 1)) |
170 (K (Tactic.rtac (@{thm typedef_domain_class} OF typedef_thms) 1)) |
175 |> Local_Theory.exit_global |
171 |> Local_Theory.exit_global |