--- a/Quot/quotient_tacs.ML Sat Feb 06 10:04:56 2010 +0100
+++ b/Quot/quotient_tacs.ML Sat Feb 06 12:58:56 2010 +0100
@@ -648,9 +648,9 @@
THEN' RANGE (map mk_tac rthms)
end
-(* An Attribute *)
+(* An Attribute which automatically constructs the qthm *)
(* FIXME: Logic.unvarify needs to be replaced by propper Isar constructions *)
-fun lifted_attrib_pre context thm =
+fun lifted_attrib_aux context thm =
let
val ctxt = Context.proof_of context
val goal = (quotient_lift_all ctxt o Logic.unvarify o prop_of) thm
@@ -661,6 +661,6 @@
(fn x => lift_tac (#context x) [thm] 1)
end;
-val lifted_attrib = Thm.rule_attribute lifted_attrib_pre
+val lifted_attrib = Thm.rule_attribute lifted_attrib_aux
end; (* structure *)
--- a/Quot/quotient_term.ML Sat Feb 06 10:04:56 2010 +0100
+++ b/Quot/quotient_term.ML Sat Feb 06 12:58:56 2010 +0100
@@ -714,10 +714,10 @@
Type (s, tys) => Type (s, map (subst_tys thy substs) tys)
| x => x)
-fun subst_trm thy t (rt, qt) s =
+fun subst_trm thy t (rtrm, qtrm) s =
if s <> NONE then s else
- case try (Pattern.match thy (t, rt)) (Vartab.empty, Vartab.empty) of
- SOME inst => SOME (Envir.subst_term inst qt)
+ case try (Pattern.match thy (t, rtrm)) (Vartab.empty, Vartab.empty) of
+ SOME inst => SOME (Envir.subst_term inst qtrm)
| NONE => NONE;
fun subst_trms thy substs t = fold (subst_trm thy t) substs NONE