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 |