src/HOL/Decision_Procs/commutative_ring_tac.ML
changeset 60143 2cd31c81e0e7
parent 59629 0d77c51b5040
child 60801 7664e0916eec
equal deleted inserted replaced
60138:b11401808dac 60143:2cd31c81e0e7
    93 
    93 
    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 =
    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 (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 (simp_tac cring_ctxt i)
   103     THEN TRY(simp_tac cring_ctxt i)
   104   end);
   104   end);
   105 
   105 
   106 end;
   106 end;