src/HOL/Library/Quotient_Sum.thy
changeset 47982 7aa35601ff65
parent 47936 756f30eac792
child 51377 7da251a6c16e
     1.1 --- a/src/HOL/Library/Quotient_Sum.thy	Thu May 24 13:56:21 2012 +0200
     1.2 +++ b/src/HOL/Library/Quotient_Sum.thy	Thu May 24 14:20:23 2012 +0200
     1.3 @@ -46,10 +46,16 @@
     1.4  lemma split_sum_ex: "(\<exists>x. P x) \<longleftrightarrow> (\<exists>x. P (Inl x)) \<or> (\<exists>x. P (Inr x))"
     1.5    by (metis sum.exhaust) (* TODO: move to Sum_Type.thy *)
     1.6  
     1.7 -lemma sum_reflp[reflp_preserve]:
     1.8 +lemma sum_reflp[reflexivity_rule]:
     1.9    "reflp R1 \<Longrightarrow> reflp R2 \<Longrightarrow> reflp (sum_rel R1 R2)"
    1.10    unfolding reflp_def split_sum_all sum_rel.simps by fast
    1.11  
    1.12 +lemma sum_left_total[reflexivity_rule]:
    1.13 +  "left_total R1 \<Longrightarrow> left_total R2 \<Longrightarrow> left_total (sum_rel R1 R2)"
    1.14 +  apply (intro left_totalI)
    1.15 +  unfolding split_sum_ex 
    1.16 +  by (case_tac x) (auto elim: left_totalE)
    1.17 +
    1.18  lemma sum_symp:
    1.19    "symp R1 \<Longrightarrow> symp R2 \<Longrightarrow> symp (sum_rel R1 R2)"
    1.20    unfolding symp_def split_sum_all sum_rel.simps by fast