When commenting discovered a missing case of Babs->Abs regularization.
--- a/Quot/quotient_term.ML Wed Jan 27 12:06:43 2010 +0100
+++ b/Quot/quotient_term.ML Wed Jan 27 12:19:58 2010 +0100
@@ -370,9 +370,9 @@
but also accepts partially regularized terms.
This means that the raw theorems can have:
- Ball (Respects R), Bex (Respects R), Bexeq (Respects R), R
+ Ball (Respects R), Bex (Respects R), Bexeq (Respects R), Babs, R
in the places where:
- All, Ex, Ex1, (op =)
+ All, Ex, Ex1, %, (op =)
is required the lifted theorem.
*)
@@ -439,6 +439,15 @@
if ty = ty' then subtrm
else mk_babs $ (mk_resp $ equiv_relation ctxt (ty, ty')) $ subtrm
end
+ | (Const (@{const_name "Babs"}, T) $ r $ (t as (Abs (_, ty, _))), t' as (Abs (_, ty', _))) =>
+ let
+ val subtrm = regularize_trm ctxt (t, t')
+ val needres = mk_resp $ equiv_relation_chk ctxt (ty, ty')
+ in
+ if r <> needres
+ then term_mismatch "regularize (Babs)" ctxt r needres
+ else mk_babs $ r $ subtrm
+ end
| (Const (@{const_name "All"}, ty) $ t, Const (@{const_name "All"}, ty') $ t') =>
let