Quot/QuotProd.thy
changeset 699 aa157e957655
parent 668 ef5b941f00e2
child 829 42b90994ac77
equal deleted inserted replaced
697:57944c1ef728 699:aa157e957655
    24 lemma prod_quotient:
    24 lemma prod_quotient:
    25   assumes q1: "Quotient R1 Abs1 Rep1"
    25   assumes q1: "Quotient R1 Abs1 Rep1"
    26   assumes q2: "Quotient R2 Abs2 Rep2"
    26   assumes q2: "Quotient R2 Abs2 Rep2"
    27   shows "Quotient (prod_rel R1 R2) (prod_fun Abs1 Abs2) (prod_fun Rep1 Rep2)"
    27   shows "Quotient (prod_rel R1 R2) (prod_fun Abs1 Abs2) (prod_fun Rep1 Rep2)"
    28 unfolding Quotient_def
    28 unfolding Quotient_def
    29 apply (simp add: Quotient_abs_rep[OF q1] Quotient_abs_rep[OF q2] Quotient_rel_rep[OF q1] Quotient_rel_rep[OF q2])
    29 using q1 q2
       
    30 apply (simp add: Quotient_abs_rep Quotient_abs_rep Quotient_rel_rep Quotient_rel_rep)
    30 using Quotient_rel[OF q1] Quotient_rel[OF q2] by blast
    31 using Quotient_rel[OF q1] Quotient_rel[OF q2] by blast
    31 
    32 
    32 lemma pair_rsp:
    33 lemma pair_rsp:
    33   assumes q1: "Quotient R1 Abs1 Rep1"
    34   assumes q1: "Quotient R1 Abs1 Rep1"
    34   assumes q2: "Quotient R2 Abs2 Rep2"
    35   assumes q2: "Quotient R2 Abs2 Rep2"
    38 lemma pair_prs_aux:
    39 lemma pair_prs_aux:
    39   assumes q1: "Quotient R1 Abs1 Rep1"
    40   assumes q1: "Quotient R1 Abs1 Rep1"
    40   assumes q2: "Quotient R2 Abs2 Rep2"
    41   assumes q2: "Quotient R2 Abs2 Rep2"
    41   shows "(prod_fun Abs1 Abs2) (Rep1 l, Rep2 r) \<equiv> (l, r)"
    42   shows "(prod_fun Abs1 Abs2) (Rep1 l, Rep2 r) \<equiv> (l, r)"
    42   by (simp add: Quotient_abs_rep[OF q1] Quotient_abs_rep[OF q2])
    43   by (simp add: Quotient_abs_rep[OF q1] Quotient_abs_rep[OF q2])
    43 
       
    44 term Pair
       
    45 
    44 
    46 lemma pair_prs[quot_preserve]:
    45 lemma pair_prs[quot_preserve]:
    47   assumes q1: "Quotient R1 Abs1 Rep1"
    46   assumes q1: "Quotient R1 Abs1 Rep1"
    48   assumes q2: "Quotient R2 Abs2 Rep2"
    47   assumes q2: "Quotient R2 Abs2 Rep2"
    49   shows "(Rep1 ---> Rep2 ---> (prod_fun Abs1 Abs2)) Pair = Pair"
    48   shows "(Rep1 ---> Rep2 ---> (prod_fun Abs1 Abs2)) Pair = Pair"