--- a/src/FOL/simpdata.ML Sat May 30 11:48:28 2020 +0000
+++ b/src/FOL/simpdata.ML Sat May 30 11:48:35 2020 +0000
@@ -80,6 +80,9 @@
val iff_exI = @{thm iff_exI}
val all_comm = @{thm all_comm}
val ex_comm = @{thm ex_comm}
+ val atomize =
+ let val rules = @{thms atomize_all atomize_imp atomize_eq atomize_iff atomize_conj}
+ in fn ctxt => Raw_Simplifier.rewrite ctxt true rules end
);
--- a/src/HOL/Tools/simpdata.ML Sat May 30 11:48:28 2020 +0000
+++ b/src/HOL/Tools/simpdata.ML Sat May 30 11:48:35 2020 +0000
@@ -33,6 +33,9 @@
val iff_exI = @{thm iff_exI}
val all_comm = @{thm all_comm}
val ex_comm = @{thm ex_comm}
+ val atomize =
+ let val rules = @{thms atomize_all atomize_imp atomize_eq atomize_conj}
+ in fn ctxt => Raw_Simplifier.rewrite ctxt true rules end
);
structure Simpdata =
--- a/src/Provers/quantifier1.ML Sat May 30 11:48:28 2020 +0000
+++ b/src/Provers/quantifier1.ML Sat May 30 11:48:35 2020 +0000
@@ -60,6 +60,7 @@
val iff_exI: thm (* !!x. P x <-> Q x ==> (? x. P x) = (? x. Q x) *)
val all_comm: thm (* (!x y. P x y) = (!y x. P x y) *)
val ex_comm: thm (* (? x y. P x y) = (? y x. P x y) *)
+ val atomize: Proof.context -> conv
end;
signature QUANTIFIER1 =
@@ -187,7 +188,7 @@
fun prove_one_point_all_tac ctxt =
EVERY1 [qcomm_tac ctxt All_comm @{thm equal_allI},
resolve_tac ctxt [@{thm equal_allI}],
- Object_Logic.full_atomize_tac ctxt,
+ CONVERSION (Data.atomize ctxt),
resolve_tac ctxt [@{thm equal_intr_rule}],
tac ctxt,
tac ctxt];