src/HOL/Lifting.thy
changeset 47537 b06be48923a4
parent 47536 8474a865a4e5
child 47538 1f0ec5b8135a
--- a/src/HOL/Lifting.thy	Wed Apr 18 14:34:25 2012 +0200
+++ b/src/HOL/Lifting.thy	Wed Apr 18 14:59:04 2012 +0200
@@ -282,28 +282,36 @@
 
 text {* Generating transfer rules for quotients. *}
 
-lemma Quotient_right_unique:
-  assumes "Quotient R Abs Rep T" shows "right_unique T"
-  using assms unfolding Quotient_alt_def right_unique_def by metis
+context
+  fixes R Abs Rep T
+  assumes 1: "Quotient R Abs Rep T"
+begin
 
-lemma Quotient_right_total:
-  assumes "Quotient R Abs Rep T" shows "right_total T"
-  using assms unfolding Quotient_alt_def right_total_def by metis
+lemma Quotient_right_unique: "right_unique T"
+  using 1 unfolding Quotient_alt_def right_unique_def by metis
+
+lemma Quotient_right_total: "right_total T"
+  using 1 unfolding Quotient_alt_def right_total_def by metis
+
+lemma Quotient_rel_eq_transfer: "(T ===> T ===> op =) R (op =)"
+  using 1 unfolding Quotient_alt_def fun_rel_def by simp
 
-lemma Quotient_rel_eq_transfer:
-  assumes "Quotient R Abs Rep T"
-  shows "(T ===> T ===> op =) R (op =)"
-  using assms unfolding Quotient_alt_def fun_rel_def by simp
+end
+
+text {* Generating transfer rules for total quotients. *}
 
-lemma Quotient_bi_total:
-  assumes "Quotient R Abs Rep T" and "reflp R"
-  shows "bi_total T"
-  using assms unfolding Quotient_alt_def bi_total_def reflp_def by auto
+context
+  fixes R Abs Rep T
+  assumes 1: "Quotient R Abs Rep T" and 2: "reflp R"
+begin
 
-lemma Quotient_id_abs_transfer:
-  assumes "Quotient R Abs Rep T" and "reflp R"
-  shows "(op = ===> T) (\<lambda>x. x) Abs"
-  using assms unfolding Quotient_alt_def reflp_def fun_rel_def by simp
+lemma Quotient_bi_total: "bi_total T"
+  using 1 2 unfolding Quotient_alt_def bi_total_def reflp_def by auto
+
+lemma Quotient_id_abs_transfer: "(op = ===> T) (\<lambda>x. x) Abs"
+  using 1 2 unfolding Quotient_alt_def reflp_def fun_rel_def by simp
+
+end
 
 text {* Generating transfer rules for a type defined with @{text "typedef"}. *}
 
@@ -341,6 +349,8 @@
 
 end
 
+text {* Generating transfer rules for a type copy. *}
+
 lemma copy_type_bi_total:
   assumes type: "type_definition Rep Abs UNIV"
   assumes T_def: "T \<equiv> (\<lambda>x y. x = Rep y)"