132 $ Free ("x", ty) $ Free ("y", ty); |
132 $ Free ("x", ty) $ Free ("y", ty); |
133 val def = HOLogic.mk_Trueprop (HOLogic.mk_eq |
133 val def = HOLogic.mk_Trueprop (HOLogic.mk_eq |
134 (mk_side @{const_name eq_class.eq}, mk_side @{const_name "op ="})); |
134 (mk_side @{const_name eq_class.eq}, mk_side @{const_name "op ="})); |
135 val def' = Syntax.check_term lthy def; |
135 val def' = Syntax.check_term lthy def; |
136 val ((_, (_, thm)), lthy') = Specification.definition |
136 val ((_, (_, thm)), lthy') = Specification.definition |
137 (NONE, ((Name.no_binding, []), def')) lthy; |
137 (NONE, (Attrib.no_binding, def')) lthy; |
138 val ctxt_thy = ProofContext.init (ProofContext.theory_of lthy); |
138 val ctxt_thy = ProofContext.init (ProofContext.theory_of lthy); |
139 val thm' = singleton (ProofContext.export lthy' ctxt_thy) thm; |
139 val thm' = singleton (ProofContext.export lthy' ctxt_thy) thm; |
140 in (thm', lthy') end; |
140 in (thm', lthy') end; |
141 fun tac thms = Class.intro_classes_tac [] |
141 fun tac thms = Class.intro_classes_tac [] |
142 THEN ALLGOALS (ProofContext.fact_tac thms); |
142 THEN ALLGOALS (ProofContext.fact_tac thms); |