src/HOL/Tools/typedef.ML
changeset 36323 655e2d74de3a
parent 36153 1ac501e16a6a
child 36610 bafd82950e24
equal deleted inserted replaced
36322:81cba3921ba5 36323:655e2d74de3a
   280   let
   280   let
   281     val args = map (apsnd (prep_constraint lthy)) raw_args;
   281     val args = map (apsnd (prep_constraint lthy)) raw_args;
   282     val ((goal, goal_pat, typedef_result), lthy') =
   282     val ((goal, goal_pat, typedef_result), lthy') =
   283       prepare_typedef prep_term def name (b, args, mx) set opt_morphs lthy;
   283       prepare_typedef prep_term def name (b, args, mx) set opt_morphs lthy;
   284     fun after_qed [[th]] = snd o typedef_result th;
   284     fun after_qed [[th]] = snd o typedef_result th;
   285   in Proof.theorem_i NONE after_qed [[(goal, [goal_pat])]] lthy' end;
   285   in Proof.theorem NONE after_qed [[(goal, [goal_pat])]] lthy' end;
   286 
   286 
   287 in
   287 in
   288 
   288 
   289 val typedef = gen_typedef Syntax.check_term (K I);
   289 val typedef = gen_typedef Syntax.check_term (K I);
   290 val typedef_cmd = gen_typedef Syntax.read_term Typedecl.read_constraint;
   290 val typedef_cmd = gen_typedef Syntax.read_term Typedecl.read_constraint;