equal
deleted
inserted
replaced
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 Goal.prove_sorry_global thy [] [] (Thm.prop_of thm'') (K tac) end; |
82 val assm_intro = Option.map prove_assm_intro (fst (Locale.intros_of thy class)); |
82 val assm_intro = Option.map prove_assm_intro (fst (Locale.intros_of thy class)); |
83 |
83 |
84 (* of_class *) |
84 (* of_class *) |
85 val of_class_prop_concl = Logic.mk_of_class (aT, class); |
85 val of_class_prop_concl = Logic.mk_of_class (aT, class); |
86 val of_class_prop = |
86 val of_class_prop = |
94 val base_sort_trivs = Thm.of_sort (Thm.ctyp_of thy aT, base_sort); |
94 val base_sort_trivs = Thm.of_sort (Thm.ctyp_of thy aT, base_sort); |
95 val tac = |
95 val tac = |
96 REPEAT (SOMEGOAL |
96 REPEAT (SOMEGOAL |
97 (Tactic.match_tac (axclass_intro :: sup_of_classes @ loc_axiom_intros @ base_sort_trivs) |
97 (Tactic.match_tac (axclass_intro :: sup_of_classes @ loc_axiom_intros @ base_sort_trivs) |
98 ORELSE' Tactic.assume_tac)); |
98 ORELSE' Tactic.assume_tac)); |
99 val of_class = Skip_Proof.prove_global thy [] [] of_class_prop (K tac); |
99 val of_class = Goal.prove_sorry_global thy [] [] of_class_prop (K tac); |
100 |
100 |
101 in (base_morph, eq_morph, export_morph, axiom, assm_intro, of_class) end; |
101 in (base_morph, eq_morph, export_morph, axiom, assm_intro, of_class) end; |
102 |
102 |
103 |
103 |
104 (* reading and processing class specifications *) |
104 (* reading and processing class specifications *) |