245 Rep = Rep, Rep_inverse = Rep_inverse, Abs_inverse = Abs_inverse, |
245 Rep = Rep, Rep_inverse = Rep_inverse, Abs_inverse = Abs_inverse, |
246 Rep_inject = Rep_inject, Abs_inject = Abs_inject, Rep_cases = Rep_cases, |
246 Rep_inject = Rep_inject, Abs_inject = Abs_inject, Rep_cases = Rep_cases, |
247 Abs_cases = Abs_cases, Rep_induct = Rep_induct, Abs_induct = Abs_induct}); |
247 Abs_cases = Abs_cases, Rep_induct = Rep_induct, Abs_induct = Abs_induct}); |
248 in |
248 in |
249 lthy2 |
249 lthy2 |
250 |> Local_Theory.declaration true (fn phi => put_info full_tname (transform_info phi info)) |
250 |> Local_Theory.declaration {syntax = false, pervasive = true} |
|
251 (fn phi => put_info full_tname (transform_info phi info)) |
251 |> Local_Theory.background_theory (Typedef_Interpretation.data full_tname) |
252 |> Local_Theory.background_theory (Typedef_Interpretation.data full_tname) |
252 |> pair (full_tname, info) |
253 |> pair (full_tname, info) |
253 end; |
254 end; |
254 |
255 |
255 in ((goal, goal_pat, typedef_result), alias_lthy) end |
256 in ((goal, goal_pat, typedef_result), alias_lthy) end |