src/Pure/Isar/class.ML
changeset 69048 f79aeac59e15
parent 69017 0c1d7a414185
child 69058 f4fb93197670
equal deleted inserted replaced
69047:17f9f50e2dbe 69048:f79aeac59e15
   486       Goal.prove_sorry_global thy [] [] (Logic.mk_classrel (sub, sup))
   486       Goal.prove_sorry_global thy [] [] (Logic.mk_classrel (sub, sup))
   487         (fn {context = ctxt, ...} => EVERY (map (TRYALL o resolve_tac ctxt o single) intros));
   487         (fn {context = ctxt, ...} => EVERY (map (TRYALL o resolve_tac ctxt o single) intros));
   488     val diff_sort = Sign.complete_sort thy [sup]
   488     val diff_sort = Sign.complete_sort thy [sup]
   489       |> subtract (op =) (Sign.complete_sort thy [sub])
   489       |> subtract (op =) (Sign.complete_sort thy [sub])
   490       |> filter (is_class thy);
   490       |> filter (is_class thy);
   491     fun add_dependency some_wit (* FIXME unused!? *) =
   491     val add_dependency =
   492       (case some_dep_morph of
   492       (case some_dep_morph of
   493         SOME dep_morph =>
   493         SOME dep_morph =>
   494           Generic_Target.locale_dependency sub
   494           Generic_Target.locale_dependency sub
   495             {dep = (sup, dep_morph $> Element.satisfy_morphism (the_list some_witn)),
   495             {dep = (sup, dep_morph $> Element.satisfy_morphism (the_list some_witn)),
   496               mixin = NONE, export = export}
   496               mixin = NONE, export = export}
   499     lthy
   499     lthy
   500     |> Local_Theory.raw_theory
   500     |> Local_Theory.raw_theory
   501       (Axclass.add_classrel classrel
   501       (Axclass.add_classrel classrel
   502       #> Class_Data.map (Graph.add_edge (sub, sup))
   502       #> Class_Data.map (Graph.add_edge (sub, sup))
   503       #> activate_defs sub (these_defs thy diff_sort))
   503       #> activate_defs sub (these_defs thy diff_sort))
   504     |> add_dependency some_witn
   504     |> add_dependency
   505     |> synchronize_class_syntax_target sub
   505     |> synchronize_class_syntax_target sub
   506   end;
   506   end;
   507 
   507 
   508 local
   508 local
   509 
   509