changeset 63344 | c9910404cc8a |
parent 63251 | 9a20078425b1 |
child 63352 | 4eaf35781b23 |
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) |