src/Pure/Isar/locale.ML
changeset 19732 1c37d117a25d
parent 19662 2f5d076fde32
child 19780 dce2168b0ea4
equal deleted inserted replaced
19731:581cdbdbba9a 19732:1c37d117a25d
   858   | activate_elem _ ((ctxt, Derived ths), Assumes asms) =
   858   | activate_elem _ ((ctxt, Derived ths), Assumes asms) =
   859       ((ctxt, Derived ths), [])
   859       ((ctxt, Derived ths), [])
   860   | activate_elem _ ((ctxt, Assumed axs), Defines defs) =
   860   | activate_elem _ ((ctxt, Assumed axs), Defines defs) =
   861       let
   861       let
   862         val defs' = Attrib.map_specs (Attrib.attribute_i (ProofContext.theory_of ctxt)) defs;
   862         val defs' = Attrib.map_specs (Attrib.attribute_i (ProofContext.theory_of ctxt)) defs;
       
   863         val asms = defs' |> map (fn ((name, atts), (t, ps)) =>
       
   864             let val ((c, _), t') = LocalDefs.cert_def ctxt t
       
   865             in (t', ((if name = "" then Thm.def_name c else name, atts), [(t', ps)])) end);
   863         val (_, ctxt') =
   866         val (_, ctxt') =
   864         ctxt |> ProofContext.add_assms_i LocalDefs.def_export
   867           ctxt |> fold (ProofContext.fix_frees o #1) asms
   865           (defs' |> map (fn ((name, atts), (t, ps)) =>
   868           |> ProofContext.add_assms_i LocalDefs.def_export (map #2 asms);
   866             let val ((c, _), t') = LocalDefs.cert_def ctxt t
       
   867             in ((if name = "" then Thm.def_name c else name, atts), [(t', ps)]) end))
       
   868       in ((ctxt', Assumed axs), []) end
   869       in ((ctxt', Assumed axs), []) end
   869   | activate_elem _ ((ctxt, Derived ths), Defines defs) =
   870   | activate_elem _ ((ctxt, Derived ths), Defines defs) =
   870       ((ctxt, Derived ths), [])
   871       ((ctxt, Derived ths), [])
   871   | activate_elem is_ext ((ctxt, mode), Notes facts) =
   872   | activate_elem is_ext ((ctxt, mode), Notes facts) =
   872       let
   873       let