src/Pure/Isar/element.ML
changeset 42494 eef1a23c9077
parent 42488 4638622bcaa1
child 42495 1af81b70cf09
equal deleted inserted replaced
42493:01430341fc79 42494:eef1a23c9077
    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)}