diff -r 88094aa77026 -r b12f0321dfb0 Quot/quotient.ML --- a/Quot/quotient.ML Thu Dec 10 03:48:39 2009 +0100 +++ b/Quot/quotient.ML Thu Dec 10 04:23:13 2009 +0100 @@ -158,38 +158,11 @@ (* FIXME: the relation needs to be a string, since its type needs *) (* FIXME: to recalculated in for example REGULARIZE *) - (* storing of the equiv_thm under a name *) - val (_, lthy4) = note (Binding.suffix_name "_equivp" qty_name, equiv_thm, - [internal_attr equiv_rules_add]) lthy3 - - (* interpretation *) - val bindd = ((Binding.make ("", Position.none)), ([]: Attrib.src list)) - val ((_, [eqn1pre]), lthy5) = Variable.import true [ABS_def] lthy4; - val eqn1i = Thm.prop_of (symmetric eqn1pre) - val ((_, [eqn2pre]), lthy6) = Variable.import true [REP_def] lthy5; - val eqn2i = Thm.prop_of (symmetric eqn2pre) - - val exp_morphism = ProofContext.export_morphism lthy6 (ProofContext.init (ProofContext.theory_of lthy6)); - val exp_term = Morphism.term exp_morphism; - val exp = Morphism.thm exp_morphism; - - val mthd = Method.SIMPLE_METHOD ((rtac quot_thm 1) THEN - ALLGOALS (simp_tac (HOL_basic_ss addsimps [(symmetric (exp ABS_def)), (symmetric (exp REP_def))]))) - val mthdt = Method.Basic (fn _ => mthd) - val bymt = Proof.global_terminal_proof (mthdt, NONE) - val exp_i = [(@{const_name QUOT_TYPE}, ((("QUOT_TYPE_I_" ^ (Binding.name_of qty_name)), true), - Expression.Named [("R", rel), ("Abs", abs), ("Rep", rep) ]))] in - lthy6 + lthy3 |> note (quot_thm_name, quot_thm, []) ||>> note (quotient_thm_name, quotient_thm, [internal_attr quotient_rules_add]) - ||> Local_Theory.theory (fn thy => - let - val global_eqns = map exp_term [eqn2i, eqn1i]; - (* Not sure if the following context should not be used *) - val (global_eqns2, lthy7) = Variable.import_terms true global_eqns lthy6; - val global_eqns3 = map (fn t => (bindd, t)) global_eqns2; - in ProofContext.theory_of (bymt (Expression.interpretation (exp_i, []) global_eqns3 thy)) end) + ||>> note (Binding.suffix_name "_equivp" qty_name, equiv_thm, [internal_attr equiv_rules_add]) end