modify nominal packages to better respect set/pred distinction
authorhuffman
Sat, 03 Sep 2011 14:52:40 -0700
changeset 44692 ccfc7c193d2b
parent 44691 42a2e1a4f04f
child 44693 a9635943a3e9
modify nominal packages to better respect set/pred distinction
src/HOL/Nominal/nominal_datatype.ML
src/HOL/Nominal/nominal_permeq.ML
--- a/src/HOL/Nominal/nominal_datatype.ML	Sat Sep 03 14:33:45 2011 -0700
+++ b/src/HOL/Nominal/nominal_datatype.ML	Sat Sep 03 14:52:40 2011 -0700
@@ -1205,7 +1205,7 @@
     val ind_prems' =
       map (fn (_, f as Free (_, T)) => list_all_free ([("x", fsT')],
         HOLogic.mk_Trueprop (Const ("Finite_Set.finite",
-          (List.last (binder_types T) --> HOLogic.boolT) -->
+          Term.range_type T -->
             HOLogic.boolT) $ (f $ Free ("x", fsT'))))) fresh_fs @
       maps (fn (((i, (_, _, constrs)), (_, idxss)), T) =>
         map (make_ind_prem fsT' (fn T => fn t => fn u => HOLogic.Not $
--- a/src/HOL/Nominal/nominal_permeq.ML	Sat Sep 03 14:33:45 2011 -0700
+++ b/src/HOL/Nominal/nominal_permeq.ML	Sat Sep 03 14:52:40 2011 -0700
@@ -303,7 +303,7 @@
               vs HOLogic.unit;
             val s' = list_abs (ps,
               Const ("Nominal.supp", fastype_of1 (Ts, s) -->
-                List.last (binder_types T) --> HOLogic.boolT) $ s);
+                Term.range_type T) $ s);
             val supports_rule' = Thm.lift_rule goal supports_rule;
             val _ $ (_ $ S $ _) =
               Logic.strip_assums_concl (hd (prems_of supports_rule'));