# HG changeset patch # User Cezary Kaliszyk # Date 1262943870 -3600 # Node ID e3732ed89dfcb304ce74edd16cdcc9be2aac4e66 # Parent 970e86082cd7775dc63243af19b262178743dc2f Modifications for new_equiv_rel, part2 diff -r 970e86082cd7 -r e3732ed89dfc Quot/quotient_tacs.ML --- a/Quot/quotient_tacs.ML Fri Jan 08 10:39:08 2010 +0100 +++ b/Quot/quotient_tacs.ML Fri Jan 08 10:44:30 2010 +0100 @@ -158,7 +158,7 @@ val bex_pat = @{term "Bex (Respects (R1 ===> R2)) P"} val simproc = Simplifier.simproc_i thy "" [ball_pat, bex_pat] (K (ball_bex_range_simproc)) val simpset = (mk_minimal_ss ctxt) - addsimps @{thms ball_reg_eqv bex_reg_eqv babs_reg_eqv babs_simp} + addsimps @{thms ball_reg_eqv bex_reg_eqv babs_reg_eqv babs_simp id_simps} addsimprocs [simproc] addSolver equiv_solver addSolver quotient_solver val eq_eqvs = map (OF1 @{thm eq_imp_rel}) (equiv_rules_get ctxt) diff -r 970e86082cd7 -r e3732ed89dfc Quot/quotient_term.ML --- a/Quot/quotient_term.ML Fri Jan 08 10:39:08 2010 +0100 +++ b/Quot/quotient_term.ML Fri Jan 08 10:44:30 2010 +0100 @@ -386,7 +386,7 @@ val subtrm = Abs(x, ty, regularize_trm ctxt (t, t')) in if ty = ty' then subtrm - else mk_babs $ (mk_resp $ new_equiv_relation ctxt (ty, ty')) $ subtrm + else mk_babs $ (mk_resp $ equiv_relation ctxt (ty, ty')) $ subtrm end | (Const (@{const_name "All"}, ty) $ t, Const (@{const_name "All"}, ty') $ t') => @@ -394,7 +394,7 @@ val subtrm = apply_subt (regularize_trm ctxt) (t, t') in if ty = ty' then Const (@{const_name "All"}, ty) $ subtrm - else mk_ball $ (mk_resp $ new_equiv_relation ctxt (qnt_typ ty, qnt_typ ty')) $ subtrm + else mk_ball $ (mk_resp $ equiv_relation ctxt (qnt_typ ty, qnt_typ ty')) $ subtrm end | (Const (@{const_name "Ex"}, ty) $ t, Const (@{const_name "Ex"}, ty') $ t') => @@ -402,20 +402,20 @@ val subtrm = apply_subt (regularize_trm ctxt) (t, t') in if ty = ty' then Const (@{const_name "Ex"}, ty) $ subtrm - else mk_bex $ (mk_resp $ new_equiv_relation ctxt (qnt_typ ty, qnt_typ ty')) $ subtrm + else mk_bex $ (mk_resp $ equiv_relation ctxt (qnt_typ ty, qnt_typ ty')) $ subtrm end | (* equalities need to be replaced by appropriate equivalence relations *) (Const (@{const_name "op ="}, ty), Const (@{const_name "op ="}, ty')) => if ty = ty' then rtrm - else new_equiv_relation ctxt (domain_type ty, domain_type ty') + else equiv_relation ctxt (domain_type ty, domain_type ty') | (* in this case we just check whether the given equivalence relation is correct *) (rel, Const (@{const_name "op ="}, ty')) => let val exc = LIFT_MATCH "regularise (relation mismatch)" val rel_ty = fastype_of rel - val rel' = new_equiv_relation ctxt (domain_type rel_ty, domain_type ty') + val rel' = equiv_relation ctxt (domain_type rel_ty, domain_type ty') in if rel' aconv rel then rtrm else raise exc end