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