src/HOL/Decision_Procs/commutative_ring_tac.ML
changeset 60801 7664e0916eec
parent 60143 2cd31c81e0e7
equal deleted inserted replaced
60799:57dd0b45fc21 60801:7664e0916eec
    94 fun tac ctxt = SUBGOAL (fn (g, i) =>
    94 fun tac ctxt = SUBGOAL (fn (g, i) =>
    95   let
    95   let
    96     val cring_ctxt = ctxt addsimps cring_simps;  (*FIXME really the full simpset!?*)
    96     val cring_ctxt = ctxt addsimps cring_simps;  (*FIXME really the full simpset!?*)
    97     val (ca, cvs, clhs, crhs) = reif_eq ctxt (HOLogic.dest_Trueprop g);
    97     val (ca, cvs, clhs, crhs) = reif_eq ctxt (HOLogic.dest_Trueprop g);
    98     val norm_eq_th = (* may collapse to True *)
    98     val norm_eq_th = (* may collapse to True *)
    99       simplify cring_ctxt (instantiate' [SOME ca] [SOME clhs, SOME crhs, SOME cvs] @{thm norm_eq});
    99       simplify cring_ctxt (Thm.instantiate' [SOME ca] [SOME clhs, SOME crhs, SOME cvs] @{thm norm_eq});
   100   in
   100   in
   101     cut_tac norm_eq_th i
   101     cut_tac norm_eq_th i
   102     THEN (simp_tac cring_ctxt i)
   102     THEN (simp_tac cring_ctxt i)
   103     THEN TRY(simp_tac cring_ctxt i)
   103     THEN TRY(simp_tac cring_ctxt i)
   104   end);
   104   end);