--- a/Quot/quotient_tacs.ML Fri Dec 25 00:17:55 2009 +0100
+++ b/Quot/quotient_tacs.ML Fri Dec 25 00:58:06 2009 +0100
@@ -504,18 +504,21 @@
fun clean_tac_aux lthy =
let
+ (*FIXME produce defs with lthy, like prs and ids *)
val thy = ProofContext.theory_of lthy;
val defs = map (Thm.varifyT o symmetric o #def) (qconsts_dest thy)
- (* FIXME: why is the Thm.varifyT needed: example where it fails is LamEx *)
-
- val thms1 = defs @ (prs_rules_get lthy) @ @{thms babs_prs all_prs ex_prs}
- val thms2 = @{thms Quotient_abs_rep Quotient_rel_rep} @ (id_simps_get lthy)
- fun simps thms = (mk_minimal_ss lthy) addsimps thms addSolver quotient_solver
+ (* FIXME: why is the Thm.varifyT needed: example where it fails is LamEx *)
+ val prs = prs_rules_get lthy
+ val ids = id_simps_get lthy
+
+ fun mk_simps thms = (mk_minimal_ss lthy) addsimps thms addSolver quotient_solver
+ val ss1 = mk_simps (defs @ prs @ @{thms babs_prs all_prs ex_prs})
+ val ss2 = mk_simps (@{thms Quotient_abs_rep Quotient_rel_rep} @ ids)
in
- EVERY' [simp_tac (simps thms1),
+ EVERY' [simp_tac ss1,
fun_map_tac lthy,
lambda_prs_tac lthy,
- simp_tac (simps thms2),
+ simp_tac ss2,
TRY o rtac refl]
end