src/HOL/Tools/record.ML
changeset 35742 eb8d2f668bfc
parent 35625 9c818cab0dd0
child 35989 3418cdf1855e
equal deleted inserted replaced
35741:4f3660a3e5af 35742:eb8d2f668bfc
   102 
   102 
   103 fun do_typedef name repT alphas thy =
   103 fun do_typedef name repT alphas thy =
   104   let
   104   let
   105     fun get_thms thy name =
   105     fun get_thms thy name =
   106       let
   106       let
   107         val {Rep_inject = rep_inject, Abs_name = absN, abs_type = absT,
   107         val [{Rep_inject = rep_inject, Abs_name = absN, abs_type = absT,
   108           Abs_inverse = abs_inverse, ...} = Typedef.the_info thy name;
   108           Abs_inverse = abs_inverse, ...}] = Typedef.get_info_global thy name;
   109         val rewrite_rule =
   109         val rewrite_rule =
   110           MetaSimplifier.rewrite_rule [@{thm iso_tuple_UNIV_I}, @{thm iso_tuple_True_simp}];
   110           MetaSimplifier.rewrite_rule [@{thm iso_tuple_UNIV_I}, @{thm iso_tuple_True_simp}];
   111       in
   111       in
   112         (map rewrite_rule [rep_inject, abs_inverse], Const (absN, repT --> absT), absT)
   112         (map rewrite_rule [rep_inject, abs_inverse], Const (absN, repT --> absT), absT)
   113       end;
   113       end;