When commenting discovered a missing case of Babs->Abs regularization.
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Wed, 27 Jan 2010 12:19:58 +0100
changeset 959 1786aa86e52b
parent 956 921096706b84
child 960 d7ec7b1204a5
When commenting discovered a missing case of Babs->Abs regularization.
Quot/quotient_term.ML
--- 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