equal
deleted
inserted
replaced
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{* |