
diff -r 0d10196364aa -r 558c823f96aa Nominal/Lift.thy
--- a/Nominal/Lift.thy	Thu Jun 24 00:41:41 2010 +0100
+++ b/Nominal/Lift.thy	Thu Jun 24 19:32:33 2010 +0100
@@ -11,11 +11,8 @@
   fun def_ty ((b, ty), (alpha, equivp)) ctxt =
     Quotient_Type.add_quotient_type ((([], b, NoSyn), (ty, alpha, false)), equivp) ctxt;
   val alpha_equivps = List.take (equivps, length alphas)
-  val (thms, ctxt') = fold_map def_ty ((binds ~~ tys) ~~ (alphas ~~ alpha_equivps)) ctxt;
-  val quot_thms = map fst thms;
-  val quots = map (HOLogic.dest_Trueprop o prop_of) quot_thms;
-  val reps = map (hd o rev o snd o strip_comb) quots;
-  val qtys = map (domain_type o fastype_of) reps;
+  val (qinfo, ctxt') = fold_map def_ty ((binds ~~ tys) ~~ (alphas ~~ alpha_equivps)) ctxt;
+  val qtys = map #qtyp qinfo;
 in
   (qtys, ctxt')
 end




