97 fun facts_map f facts = Notes ("", facts) |> f |> (fn Notes (_, facts') => facts'); |
97 fun facts_map f facts = Notes ("", facts) |> f |> (fn Notes (_, facts') => facts'); |
98 |
98 |
99 fun map_ctxt {binding, typ, term, pattern, fact, attrib} = |
99 fun map_ctxt {binding, typ, term, pattern, fact, attrib} = |
100 fn Fixes fixes => Fixes (fixes |> map (fn (x, T, mx) => (binding x, Option.map typ T, mx))) |
100 fn Fixes fixes => Fixes (fixes |> map (fn (x, T, mx) => (binding x, Option.map typ T, mx))) |
101 | Constrains xs => Constrains (xs |> map (fn (x, T) => |
101 | Constrains xs => Constrains (xs |> map (fn (x, T) => |
102 (Variable.name (binding (Binding.name x)), typ T))) |
102 (Variable.check_name (binding (Binding.name x)), typ T))) |
103 | Assumes asms => Assumes (asms |> map (fn ((a, atts), propps) => |
103 | Assumes asms => Assumes (asms |> map (fn ((a, atts), propps) => |
104 ((binding a, map attrib atts), propps |> map (fn (t, ps) => (term t, map pattern ps))))) |
104 ((binding a, map attrib atts), propps |> map (fn (t, ps) => (term t, map pattern ps))))) |
105 | Defines defs => Defines (defs |> map (fn ((a, atts), (t, ps)) => |
105 | Defines defs => Defines (defs |> map (fn ((a, atts), (t, ps)) => |
106 ((binding a, map attrib atts), (term t, map pattern ps)))) |
106 ((binding a, map attrib atts), (term t, map pattern ps)))) |
107 | Notes (kind, facts) => Notes (kind, facts |> map (fn ((a, atts), bs) => |
107 | Notes (kind, facts) => Notes (kind, facts |> map (fn ((a, atts), bs) => |
524 val ctxt' = Context.proof_map (init elem') ctxt; |
524 val ctxt' = Context.proof_map (init elem') ctxt; |
525 in (map_ctxt_attrib Args.closure elem', ctxt') end; |
525 in (map_ctxt_attrib Args.closure elem', ctxt') end; |
526 |
526 |
527 fun activate raw_elem ctxt = |
527 fun activate raw_elem ctxt = |
528 let val elem = raw_elem |> map_ctxt |
528 let val elem = raw_elem |> map_ctxt |
529 {binding = tap Variable.name, |
529 {binding = tap Variable.check_name, |
530 typ = I, |
530 typ = I, |
531 term = I, |
531 term = I, |
532 pattern = I, |
532 pattern = I, |
533 fact = Proof_Context.get_fact ctxt, |
533 fact = Proof_Context.get_fact ctxt, |
534 attrib = Attrib.intern_src (Proof_Context.theory_of ctxt)} |
534 attrib = Attrib.intern_src (Proof_Context.theory_of ctxt)} |