src/HOL/Tools/typedef.ML
changeset 35625 9c818cab0dd0
parent 35430 df2862dc23a8
child 35626 06197484c6ad
equal deleted inserted replaced
35624:c4e29a0bb8c1 35625:9c818cab0dd0
   128             val cert = Thm.cterm_of (Thm.theory_of_thm def_eq);
   128             val cert = Thm.cterm_of (Thm.theory_of_thm def_eq);
   129             val goal_eq = MetaSimplifier.rewrite true [def_eq] (cert goal');
   129             val goal_eq = MetaSimplifier.rewrite true [def_eq] (cert goal');
   130           in Drule.export_without_context (Drule.equal_elim_rule2 OF [goal_eq, th]) end;
   130           in Drule.export_without_context (Drule.equal_elim_rule2 OF [goal_eq, th]) end;
   131 
   131 
   132     fun typedef_result inhabited =
   132     fun typedef_result inhabited =
   133       ObjectLogic.typedecl (tname, vs, mx)
   133       Object_Logic.typedecl (tname, vs, mx)
   134       #> snd
   134       #> snd
   135       #> Sign.add_consts_i
   135       #> Sign.add_consts_i
   136         [(Rep_name, newT --> oldT, NoSyn),
   136         [(Rep_name, newT --> oldT, NoSyn),
   137          (Abs_name, oldT --> newT, NoSyn)]
   137          (Abs_name, oldT --> newT, NoSyn)]
   138       #> add_def
   138       #> add_def