equal
deleted
inserted
replaced
805 |
805 |
806 lemma ring_hom_trans: |
806 lemma ring_hom_trans: |
807 "\<lbrakk> f \<in> ring_hom R S; g \<in> ring_hom S T \<rbrakk> \<Longrightarrow> g \<circ> f \<in> ring_hom R T" |
807 "\<lbrakk> f \<in> ring_hom R S; g \<in> ring_hom S T \<rbrakk> \<Longrightarrow> g \<circ> f \<in> ring_hom R T" |
808 by (rule ring_hom_memI) (auto simp add: ring_hom_closed ring_hom_mult ring_hom_add ring_hom_one) |
808 by (rule ring_hom_memI) (auto simp add: ring_hom_closed ring_hom_mult ring_hom_add ring_hom_one) |
809 |
809 |
810 subsection\<open>Jeremy Avigad's @{text"More_Finite_Product"} material\<close> |
810 subsection\<open>Jeremy Avigad's \<open>More_Finite_Product\<close> material\<close> |
811 |
811 |
812 (* need better simplification rules for rings *) |
812 (* need better simplification rules for rings *) |
813 (* the next one holds more generally for abelian groups *) |
813 (* the next one holds more generally for abelian groups *) |
814 |
814 |
815 lemma (in cring) sum_zero_eq_neg: "x \<in> carrier R \<Longrightarrow> y \<in> carrier R \<Longrightarrow> x \<oplus> y = \<zero> \<Longrightarrow> x = \<ominus> y" |
815 lemma (in cring) sum_zero_eq_neg: "x \<in> carrier R \<Longrightarrow> y \<in> carrier R \<Longrightarrow> x \<oplus> y = \<zero> \<Longrightarrow> x = \<ominus> y" |
855 |
855 |
856 lemma (in cring) units_power_order_eq_one: |
856 lemma (in cring) units_power_order_eq_one: |
857 "finite (Units R) \<Longrightarrow> a \<in> Units R \<Longrightarrow> a [^] card(Units R) = \<one>" |
857 "finite (Units R) \<Longrightarrow> a \<in> Units R \<Longrightarrow> a [^] card(Units R) = \<one>" |
858 by (metis comm_group.power_order_eq_one units_comm_group units_of_carrier units_of_one units_of_pow) |
858 by (metis comm_group.power_order_eq_one units_comm_group units_of_carrier units_of_one units_of_pow) |
859 |
859 |
860 subsection\<open>Jeremy Avigad's @{text"More_Ring"} material\<close> |
860 subsection\<open>Jeremy Avigad's \<open>More_Ring\<close> material\<close> |
861 |
861 |
862 lemma (in cring) field_intro2: |
862 lemma (in cring) field_intro2: |
863 assumes "\<zero>\<^bsub>R\<^esub> \<noteq> \<one>\<^bsub>R\<^esub>" and un: "\<And>x. x \<in> carrier R - {\<zero>\<^bsub>R\<^esub>} \<Longrightarrow> x \<in> Units R" |
863 assumes "\<zero>\<^bsub>R\<^esub> \<noteq> \<one>\<^bsub>R\<^esub>" and un: "\<And>x. x \<in> carrier R - {\<zero>\<^bsub>R\<^esub>} \<Longrightarrow> x \<in> Units R" |
864 shows "field R" |
864 shows "field R" |
865 proof unfold_locales |
865 proof unfold_locales |