src/HOL/Lifting.thy
changeset 52307 32c433c38ddd
parent 52036 1aa2e40df9ff
child 53011 aeee0a4be6cf
equal deleted inserted replaced
52306:0f5099b45171 52307:32c433c38ddd
   428   assumes "left_unique R"
   428   assumes "left_unique R"
   429   shows "is_equality (R OO T OO R\<inverse>\<inverse>)"
   429   shows "is_equality (R OO T OO R\<inverse>\<inverse>)"
   430 using assms unfolding is_equality_def left_total_def left_unique_def OO_def conversep_iff
   430 using assms unfolding is_equality_def left_total_def left_unique_def OO_def conversep_iff
   431 by fastforce
   431 by fastforce
   432 
   432 
       
   433 lemma left_total_composition: "left_total R \<Longrightarrow> left_total S \<Longrightarrow> left_total (R OO S)"
       
   434 unfolding left_total_def OO_def by fast
       
   435 
       
   436 lemma left_unique_composition: "left_unique R \<Longrightarrow> left_unique S \<Longrightarrow> left_unique (R OO S)"
       
   437 unfolding left_unique_def OO_def by fast
       
   438 
   433 lemma reflp_equality: "reflp (op =)"
   439 lemma reflp_equality: "reflp (op =)"
   434 by (auto intro: reflpI)
   440 by (auto intro: reflpI)
   435 
   441 
   436 text {* Proving a parametrized correspondence relation *}
   442 text {* Proving a parametrized correspondence relation *}
   437 
   443 
   600 ML_file "Tools/Lifting/lifting_info.ML"
   606 ML_file "Tools/Lifting/lifting_info.ML"
   601 setup Lifting_Info.setup
   607 setup Lifting_Info.setup
   602 
   608 
   603 lemmas [reflexivity_rule] = 
   609 lemmas [reflexivity_rule] = 
   604   reflp_equality reflp_Quotient_composition is_equality_Quotient_composition 
   610   reflp_equality reflp_Quotient_composition is_equality_Quotient_composition 
   605   left_total_fun left_unique_fun left_total_eq left_unique_eq
   611   left_total_fun left_unique_fun left_total_eq left_unique_eq left_total_composition
       
   612   left_unique_composition
   606 
   613 
   607 text {* add @{thm reflp_fun1} and @{thm reflp_fun2} manually through ML
   614 text {* add @{thm reflp_fun1} and @{thm reflp_fun2} manually through ML
   608   because we don't want to get reflp' variant of these theorems *}
   615   because we don't want to get reflp' variant of these theorems *}
   609 
   616 
   610 setup{*
   617 setup{*