src/HOL/Tools/BNF/bnf_gfp_grec.ML
changeset 64674 ef0a5fd30f3b
parent 64627 8d7cb22482e3
child 67710 cc2db3239932
equal deleted inserted replaced
64673:b5965890e54d 64674:ef0a5fd30f3b
   259 fun define_single_primrec b eqs lthy =
   259 fun define_single_primrec b eqs lthy =
   260   let
   260   let
   261     val (([free], [def_free], [simps_free]), (lthy, lthy_old)) = lthy
   261     val (([free], [def_free], [simps_free]), (lthy, lthy_old)) = lthy
   262       |> Local_Theory.open_target |> snd
   262       |> Local_Theory.open_target |> snd
   263       |> Local_Theory.map_background_naming (mk_internal true lthy Name_Space.concealed) (*TODO check*)
   263       |> Local_Theory.map_background_naming (mk_internal true lthy Name_Space.concealed) (*TODO check*)
   264       |> primrec [] [(b, NONE, NoSyn)] (map (fn eq => ((Binding.empty_atts, eq), [], [])) eqs)
   264       |> primrec false [] [(b, NONE, NoSyn)] (map (fn eq => ((Binding.empty_atts, eq), [], [])) eqs)
   265       ||> `Local_Theory.close_target;
   265       ||> `Local_Theory.close_target;
   266 
   266 
   267     val phi = Proof_Context.export_morphism lthy_old lthy;
   267     val phi = Proof_Context.export_morphism lthy_old lthy;
   268 
   268 
   269     val const = Morphism.term phi free;
   269     val const = Morphism.term phi free;