Nominal/Lift.thy
changeset 1497 1c9931e5039a
parent 1494 923413256cbb
child 1498 2ff84b1f551f
equal deleted inserted replaced
1496:fd483d8f486b 1497:1c9931e5039a
    25 in
    25 in
    26   (ts, defs, ctxt')
    26   (ts, defs, ctxt')
    27 end
    27 end
    28 *}
    28 *}
    29 
    29 
       
    30 ML {*
       
    31 fun define_fv_alpha_export dt binds bns ctxt =
       
    32 let
       
    33   val (((fv_ts_loc, fv_def_loc), alpha), ctxt') =
       
    34     define_fv_alpha dt binds bns ctxt;
       
    35   val alpha_ts_loc = #preds alpha
       
    36   val alpha_induct_loc = #induct alpha
       
    37   val alpha_intros_loc = #intrs alpha;
       
    38   val alpha_cases_loc = #elims alpha
       
    39   val morphism = ProofContext.export_morphism ctxt' ctxt;
       
    40   val fv_ts = map (Morphism.term morphism) fv_ts_loc;
       
    41   val fv_def = Morphism.fact morphism fv_def_loc;
       
    42   val alpha_ts = map (Morphism.term morphism) alpha_ts_loc;
       
    43   val alpha_induct = Morphism.thm morphism alpha_induct_loc;
       
    44   val alpha_intros = Morphism.fact morphism alpha_intros_loc
       
    45   val alpha_cases = Morphism.fact morphism alpha_cases_loc
       
    46 in
       
    47   (((fv_ts, fv_def), ((alpha_ts, alpha_intros), (alpha_cases, alpha_induct))), ctxt')
       
    48 end;
       
    49 *}
       
    50 
    30 end
    51 end
    31 
    52