src/Pure/Isar/class_declaration.ML
changeset 46856 28909eecdf5b
parent 45433 4283f3a57cf5
child 46922 3717f3878714
equal deleted inserted replaced
46855:f72a2bedd7a9 46856:28909eecdf5b
    72     fun prove_assm_intro thm =
    72     fun prove_assm_intro thm =
    73       let
    73       let
    74         val ((_, [thm']), _) = Variable.import true [thm] empty_ctxt;
    74         val ((_, [thm']), _) = Variable.import true [thm] empty_ctxt;
    75         val const_eq_morph =
    75         val const_eq_morph =
    76           (case eq_morph of
    76           (case eq_morph of
    77              SOME eq_morph => const_morph $> eq_morph
    77             SOME eq_morph => const_morph $> eq_morph
    78           | NONE => const_morph);
    78           | NONE => const_morph);
    79         val thm'' = Morphism.thm const_eq_morph thm';
    79         val thm'' = Morphism.thm const_eq_morph thm';
    80         val tac = ALLGOALS (Proof_Context.fact_tac [thm'']);
    80         val tac = ALLGOALS (Proof_Context.fact_tac [thm'']);
    81       in Skip_Proof.prove_global thy [] [] (Thm.prop_of thm'') (K tac) end;
    81       in Skip_Proof.prove_global thy [] [] (Thm.prop_of thm'') (K tac) end;
    82     val assm_intro = Option.map prove_assm_intro
    82     val assm_intro = Option.map prove_assm_intro (fst (Locale.intros_of thy class));
    83       (fst (Locale.intros_of thy class));
       
    84 
    83 
    85     (* of_class *)
    84     (* of_class *)
    86     val of_class_prop_concl = Logic.mk_of_class (aT, class);
    85     val of_class_prop_concl = Logic.mk_of_class (aT, class);
    87     val of_class_prop =
    86     val of_class_prop =
    88       (case prop of
    87       (case prop of