src/Tools/interpretation_with_defs.ML
changeset 46858 05f30c796f95
parent 45290 f599ac41e7f5
child 46909 3c73a121a387
equal deleted inserted replaced
46857:628b4a3fbf6e 46858:05f30c796f95
    15 end;
    15 end;
    16 
    16 
    17 structure Interpretation_With_Defs : INTERPRETATION_WITH_DEFS =
    17 structure Interpretation_With_Defs : INTERPRETATION_WITH_DEFS =
    18 struct
    18 struct
    19 
    19 
    20 fun note_eqns_register deps witss def_eqns attrss eqns export export' context =
    20 fun note_eqns_register deps witss def_eqns attrss eqns export export' =
    21   let
    21   let
    22     fun meta_rewrite context =
    22     fun meta_rewrite context =
    23       map (Local_Defs.meta_rewrite_rule (Context.proof_of context) #> Drule.abs_def) o
    23       map (Local_Defs.meta_rewrite_rule (Context.proof_of context) #> Drule.abs_def) o
    24         maps snd;
    24         maps snd;
    25   in
    25   in
    26     context
    26     Element.generic_note_thmss Thm.lemmaK
    27     |> Element.generic_note_thmss Thm.lemmaK
       
    28       (attrss ~~ map (fn eqn => [([Morphism.thm (export' $> export) eqn], [])]) eqns)
    27       (attrss ~~ map (fn eqn => [([Morphism.thm (export' $> export) eqn], [])]) eqns)
    29     |-> (fn facts => `(fn context => meta_rewrite context facts))
    28     #-> (fn facts => `(fn context => meta_rewrite context facts))
    30     |-> (fn eqns => fold (fn ((dep, morph), wits) =>
    29     #-> (fn eqns => fold (fn ((dep, morph), wits) =>
    31       fn context =>
    30       fn context =>
    32         Locale.add_registration (dep, morph $> Element.satisfy_morphism
    31         Locale.add_registration
    33             (map (Element.transform_witness export') wits))
    32           (dep, morph $> Element.satisfy_morphism (map (Element.transform_witness export') wits))
    34           (Element.eq_morphism (Context.theory_of context) (def_eqns @ eqns) |>
    33           (Element.eq_morphism (Context.theory_of context) (def_eqns @ eqns) |>
    35             Option.map (rpair true))
    34             Option.map (rpair true))
    36           export context) (deps ~~ witss))
    35           export context) (deps ~~ witss))
    37   end;
    36   end;
    38 
    37