src/Pure/Isar/proof.ML
changeset 63344 c9910404cc8a
parent 63251 9a20078425b1
child 63352 4eaf35781b23
equal deleted inserted replaced
63343:fb5d8a50c641 63344:c9910404cc8a
   697       map_context_result (prep_binds false (map swap raw_rhss))
   697       map_context_result (prep_binds false (map swap raw_rhss))
   698       #-> (fn rhss =>
   698       #-> (fn rhss =>
   699         let
   699         let
   700           val defs = (vars ~~ (name_atts ~~ rhss)) |> map (fn ((x, mx), ((a, atts), rhs)) =>
   700           val defs = (vars ~~ (name_atts ~~ rhss)) |> map (fn ((x, mx), ((a, atts), rhs)) =>
   701             ((x, mx), ((Thm.def_binding_optional x a, atts), rhs)));
   701             ((x, mx), ((Thm.def_binding_optional x a, atts), rhs)));
   702         in map_context_result (Local_Defs.add_defs defs) end))
   702         in map_context_result (Local_Defs.define defs) end))
   703     |-> (set_facts o map (#2 o #2))
   703     |-> (set_facts o map (#2 o #2))
   704   end;
   704   end;
   705 
   705 
   706 in
   706 in
   707 
   707 
   866             "wrt. definitions " ^ commas (map (show_term o Free o #1 o #1) more_defs));
   866             "wrt. definitions " ^ commas (map (show_term o Free o #1 o #1) more_defs));
   867 
   867 
   868     val derived_def = Local_Defs.derived_def ctxt {conditional = false};
   868     val derived_def = Local_Defs.derived_def ctxt {conditional = false};
   869     val defs1 = map (derived_def o Logic.close_prop (map #2 fixes) []) (flat propss);
   869     val defs1 = map (derived_def o Logic.close_prop (map #2 fixes) []) (flat propss);
   870     val defs2 = match_defs decls defs1;
   870     val defs2 = match_defs decls defs1;
   871     val (defs3, defs_ctxt) = Local_Defs.add_defs defs2 ctxt;
   871     val (defs3, defs_ctxt) = Local_Defs.define defs2 ctxt;
   872 
   872 
   873     (*notes*)
   873     (*notes*)
   874     val def_thmss =
   874     val def_thmss =
   875       map (fn (((_, prove), ((b, _), _)), (_, (_, th))) => (b, prove defs_ctxt th))
   875       map (fn (((_, prove), ((b, _), _)), (_, (_, th))) => (b, prove defs_ctxt th))
   876         (defs1 ~~ defs2 ~~ defs3)
   876         (defs1 ~~ defs2 ~~ defs3)