src/HOL/Library/Quotient_Set.thy
changeset 47652 1b722b100301
parent 47648 6b9d20a095ae
child 47660 7a5c681c0265
equal deleted inserted replaced
47651:8e4f50afd21a 47652:1b722b100301
   171   apply (simp add: assms [unfolded bi_unique_def])
   171   apply (simp add: assms [unfolded bi_unique_def])
   172   apply assumption
   172   apply assumption
   173   done
   173   done
   174 
   174 
   175 subsection {* Setup for lifting package *}
   175 subsection {* Setup for lifting package *}
   176 
       
   177 lemma Quotient_alt_def3:
       
   178   "Quotient R Abs Rep T \<longleftrightarrow>
       
   179     (\<forall>a b. T a b \<longrightarrow> Abs a = b) \<and> (\<forall>b. T (Rep b) b) \<and>
       
   180     (\<forall>x y. R x y \<longleftrightarrow> (\<exists>z. T x z \<and> T y z))"
       
   181   unfolding Quotient_alt_def2 by (safe, metis+)
       
   182 
       
   183 lemma Quotient_alt_def4:
       
   184   "Quotient R Abs Rep T \<longleftrightarrow>
       
   185     (\<forall>a b. T a b \<longrightarrow> Abs a = b) \<and> (\<forall>b. T (Rep b) b) \<and> R = T OO conversep T"
       
   186   unfolding Quotient_alt_def3 fun_eq_iff by auto
       
   187 
   176 
   188 lemma Quotient_set:
   177 lemma Quotient_set:
   189   assumes "Quotient R Abs Rep T"
   178   assumes "Quotient R Abs Rep T"
   190   shows "Quotient (set_rel R) (image Abs) (image Rep) (set_rel T)"
   179   shows "Quotient (set_rel R) (image Abs) (image Rep) (set_rel T)"
   191   using assms unfolding Quotient_alt_def4
   180   using assms unfolding Quotient_alt_def4