src/Pure/Isar/proof.ML
changeset 63041 cb495c4807b3
parent 63039 1a20fd9cf281
child 63056 9b95ae9ec671
equal deleted inserted replaced
63040:eb4ddd18d635 63041:cb495c4807b3
   744     |-> (fn vars =>
   744     |-> (fn vars =>
   745       map_context_result (prep_binds false (map swap raw_rhss))
   745       map_context_result (prep_binds false (map swap raw_rhss))
   746       #-> (fn rhss =>
   746       #-> (fn rhss =>
   747         let
   747         let
   748           val defs = (vars ~~ (name_atts ~~ rhss)) |> map (fn ((x, mx), ((a, atts), rhs)) =>
   748           val defs = (vars ~~ (name_atts ~~ rhss)) |> map (fn ((x, mx), ((a, atts), rhs)) =>
   749             ((x, mx), ((Binding.reset_pos (Thm.def_binding_optional x a), atts), rhs)));
   749             ((x, mx), ((Thm.def_binding_optional x a, atts), rhs)));
   750         in map_context_result (Local_Defs.add_defs defs) end))
   750         in map_context_result (Local_Defs.add_defs defs) end))
   751     |-> (set_facts o map (#2 o #2))
   751     |-> (set_facts o map (#2 o #2))
   752   end;
   752   end;
   753 
   753 
   754 in
   754 in
   934       map (fn (((_, prove), ((b, _), _)), (_, (_, th))) => (b, export (prove fixes_ctxt th)))
   934       map (fn (((_, prove), ((b, _), _)), (_, (_, th))) => (b, export (prove fixes_ctxt th)))
   935         (defs1 ~~ defs2 ~~ defs3)
   935         (defs1 ~~ defs2 ~~ defs3)
   936       |> unflat (map snd raw_defs);
   936       |> unflat (map snd raw_defs);
   937     val notes =
   937     val notes =
   938       map2 (fn ((a, raw_atts), _) => fn def_thms =>
   938       map2 (fn ((a, raw_atts), _) => fn def_thms =>
   939         ((Binding.reset_pos (Thm.def_binding_optional (Binding.conglomerate (map #1 def_thms)) a),
   939         ((Thm.def_binding_optional (Binding.conglomerate (map #1 def_thms)) a,
   940           map (prep_att defs_ctxt) raw_atts), map (fn (_, th) => ([th], [])) def_thms))
   940           map (prep_att defs_ctxt) raw_atts), map (fn (_, th) => ([th], [])) def_thms))
   941         raw_defs def_thmss;
   941         raw_defs def_thmss;
   942   in
   942   in
   943     state
   943     state
   944     |> map_context (K defs_ctxt #> fold Variable.bind_term binds')
   944     |> map_context (K defs_ctxt #> fold Variable.bind_term binds')