Fixed bug in eta_long.
authorberghofe
Fri, 04 Apr 2003 17:01:12 +0200
changeset 13892 4ac9d55573da
parent 13891 ae9a2a433388
child 13893 19849d258890
Fixed bug in eta_long.
src/HOL/Integ/presburger.ML
src/HOL/Tools/Presburger/presburger.ML
--- a/src/HOL/Integ/presburger.ML	Fri Apr 04 17:00:25 2003 +0200
+++ b/src/HOL/Integ/presburger.ML	Fri Apr 04 17:01:12 2003 +0200
@@ -68,9 +68,12 @@
   | eta_long Ts t = (case strip_comb t of
       (Abs _, _) => eta_long Ts (Envir.beta_norm t)
     | (u, ts) => 
-      let val Us = binder_types (fastype_of1 (Ts, t))
-      in list_abs (map (pair "x") Us, Unify.combound
-        (list_comb (u, map (eta_long Ts) ts), 0, length Us))
+      let
+        val Us = binder_types (fastype_of1 (Ts, t));
+        val i = length Us
+      in list_abs (map (pair "x") Us,
+        list_comb (incr_boundvars i u, map (eta_long (rev Us @ Ts))
+          (map (incr_boundvars i) ts @ map Bound (i - 1 downto 0))))
       end);
 
 (* Some Types*)
--- a/src/HOL/Tools/Presburger/presburger.ML	Fri Apr 04 17:00:25 2003 +0200
+++ b/src/HOL/Tools/Presburger/presburger.ML	Fri Apr 04 17:01:12 2003 +0200
@@ -68,9 +68,12 @@
   | eta_long Ts t = (case strip_comb t of
       (Abs _, _) => eta_long Ts (Envir.beta_norm t)
     | (u, ts) => 
-      let val Us = binder_types (fastype_of1 (Ts, t))
-      in list_abs (map (pair "x") Us, Unify.combound
-        (list_comb (u, map (eta_long Ts) ts), 0, length Us))
+      let
+        val Us = binder_types (fastype_of1 (Ts, t));
+        val i = length Us
+      in list_abs (map (pair "x") Us,
+        list_comb (incr_boundvars i u, map (eta_long (rev Us @ Ts))
+          (map (incr_boundvars i) ts @ map Bound (i - 1 downto 0))))
       end);
 
 (* Some Types*)