equal
deleted
inserted
replaced
14 definition rcoset_mult :: "[('a, _) ring_scheme, 'a set, 'a set, 'a set] \<Rightarrow> 'a set" |
14 definition rcoset_mult :: "[('a, _) ring_scheme, 'a set, 'a set, 'a set] \<Rightarrow> 'a set" |
15 ("[mod _:] _ \<Otimes>\<index> _" [81,81,81] 80) |
15 ("[mod _:] _ \<Otimes>\<index> _" [81,81,81] 80) |
16 where "rcoset_mult R I A B = (\<Union>a\<in>A. \<Union>b\<in>B. I +>\<^bsub>R\<^esub> (a \<otimes>\<^bsub>R\<^esub> b))" |
16 where "rcoset_mult R I A B = (\<Union>a\<in>A. \<Union>b\<in>B. I +>\<^bsub>R\<^esub> (a \<otimes>\<^bsub>R\<^esub> b))" |
17 |
17 |
18 |
18 |
19 text \<open>@{const "rcoset_mult"} fulfils the properties required by congruences\<close> |
19 text \<open>\<^const>\<open>rcoset_mult\<close> fulfils the properties required by congruences\<close> |
20 lemma (in ideal) rcoset_mult_add: |
20 lemma (in ideal) rcoset_mult_add: |
21 assumes "x \<in> carrier R" "y \<in> carrier R" |
21 assumes "x \<in> carrier R" "y \<in> carrier R" |
22 shows "[mod I:] (I +> x) \<Otimes> (I +> y) = I +> (x \<otimes> y)" |
22 shows "[mod I:] (I +> x) \<Otimes> (I +> y) = I +> (x \<otimes> y)" |
23 proof - |
23 proof - |
24 have 1: "z \<in> I +> x \<otimes> y" |
24 have 1: "z \<in> I +> x \<otimes> y" |
177 ultimately show ?thesis by blast |
177 ultimately show ?thesis by blast |
178 qed |
178 qed |
179 then have Jcarr: "J = carrier R" |
179 then have Jcarr: "J = carrier R" |
180 using I_maximal IinJ additive_subgroup.a_subset idealJ ideal_def by blast |
180 using I_maximal IinJ additive_subgroup.a_subset idealJ ideal_def by blast |
181 |
181 |
182 \<comment> \<open>Calculating an inverse for @{term "a"}\<close> |
182 \<comment> \<open>Calculating an inverse for \<^term>\<open>a\<close>\<close> |
183 from one_closed[folded Jcarr] |
183 from one_closed[folded Jcarr] |
184 obtain r i where rcarr: "r \<in> carrier R" |
184 obtain r i where rcarr: "r \<in> carrier R" |
185 and iI: "i \<in> I" and one: "\<one> = r \<otimes> a \<oplus> i" |
185 and iI: "i \<in> I" and one: "\<one> = r \<otimes> a \<oplus> i" |
186 by (auto simp add: J_def r_coset_def set_add_defs) |
186 by (auto simp add: J_def r_coset_def set_add_defs) |
187 |
187 |