Metamath Proof Explorer


Theorem crngohomfo

Description: Obsolete theorem, use crngrhmfo instead. The image of a homomorphism from a commutative ring is commutative. (Contributed by Jeff Madsen, 4-Jan-2011) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Hypotheses crngohomfo.1 ⊢ G = 1 st ⁡ R
crngohomfo.2 ⊢ X = ran ⁡ G
crngohomfo.3 ⊢ J = 1 st ⁡ S
crngohomfo.4 ⊢ Y = ran ⁡ J
Assertion crngohomfo ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → S ∈ CRingOps

Proof

Step Hyp Ref Expression
1 crngohomfo.1 ⊢ G = 1 st ⁡ R
2 crngohomfo.2 ⊢ X = ran ⁡ G
3 crngohomfo.3 ⊢ J = 1 st ⁡ S
4 crngohomfo.4 ⊢ Y = ran ⁡ J
5 simplr ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → S ∈ RingOps
6 foelrn ⊢ F : X ⟶ onto Y ∧ y ∈ Y → ∃ w ∈ X y = F ⁡ w
7 6 ex ⊢ F : X ⟶ onto Y → y ∈ Y → ∃ w ∈ X y = F ⁡ w
8 foelrn ⊢ F : X ⟶ onto Y ∧ z ∈ Y → ∃ x ∈ X z = F ⁡ x
9 8 ex ⊢ F : X ⟶ onto Y → z ∈ Y → ∃ x ∈ X z = F ⁡ x
10 7 9 anim12d ⊢ F : X ⟶ onto Y → y ∈ Y ∧ z ∈ Y → ∃ w ∈ X y = F ⁡ w ∧ ∃ x ∈ X z = F ⁡ x
11 reeanv ⊢ ∃ w ∈ X ∃ x ∈ X y = F ⁡ w ∧ z = F ⁡ x ↔ ∃ w ∈ X y = F ⁡ w ∧ ∃ x ∈ X z = F ⁡ x
12 10 11 imbitrrdi ⊢ F : X ⟶ onto Y → y ∈ Y ∧ z ∈ Y → ∃ w ∈ X ∃ x ∈ X y = F ⁡ w ∧ z = F ⁡ x
13 12 ad2antll ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → y ∈ Y ∧ z ∈ Y → ∃ w ∈ X ∃ x ∈ X y = F ⁡ w ∧ z = F ⁡ x
14 eqid ⊢ 2 nd ⁡ R = 2 nd ⁡ R
15 1 14 2 crngocom ⊢ R ∈ CRingOps ∧ w ∈ X ∧ x ∈ X → w 2 nd ⁡ R x = x 2 nd ⁡ R w
16 15 3expb ⊢ R ∈ CRingOps ∧ w ∈ X ∧ x ∈ X → w 2 nd ⁡ R x = x 2 nd ⁡ R w
17 16 3ad2antl1 ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → w 2 nd ⁡ R x = x 2 nd ⁡ R w
18 17 fveq2d ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ w 2 nd ⁡ R x = F ⁡ x 2 nd ⁡ R w
19 crngorngo ⊢ R ∈ CRingOps → R ∈ RingOps
20 eqid ⊢ 2 nd ⁡ S = 2 nd ⁡ S
21 1 2 14 20 rngohommul ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ w 2 nd ⁡ R x = F ⁡ w 2 nd ⁡ S F ⁡ x
22 19 21 syl3anl1 ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ w 2 nd ⁡ R x = F ⁡ w 2 nd ⁡ S F ⁡ x
23 1 2 14 20 rngohommul ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ X ∧ w ∈ X → F ⁡ x 2 nd ⁡ R w = F ⁡ x 2 nd ⁡ S F ⁡ w
24 23 ancom2s ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ x 2 nd ⁡ R w = F ⁡ x 2 nd ⁡ S F ⁡ w
25 19 24 syl3anl1 ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ x 2 nd ⁡ R w = F ⁡ x 2 nd ⁡ S F ⁡ w
26 18 22 25 3eqtr3d ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → F ⁡ w 2 nd ⁡ S F ⁡ x = F ⁡ x 2 nd ⁡ S F ⁡ w
27 oveq12 ⊢ y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = F ⁡ w 2 nd ⁡ S F ⁡ x
28 oveq12 ⊢ z = F ⁡ x ∧ y = F ⁡ w → z 2 nd ⁡ S y = F ⁡ x 2 nd ⁡ S F ⁡ w
29 28 ancoms ⊢ y = F ⁡ w ∧ z = F ⁡ x → z 2 nd ⁡ S y = F ⁡ x 2 nd ⁡ S F ⁡ w
30 27 29 eqeq12d ⊢ y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y ↔ F ⁡ w 2 nd ⁡ S F ⁡ x = F ⁡ x 2 nd ⁡ S F ⁡ w
31 26 30 syl5ibrcom ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ w ∈ X ∧ x ∈ X → y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y
32 31 ex ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → w ∈ X ∧ x ∈ X → y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y
33 32 3expa ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → w ∈ X ∧ x ∈ X → y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y
34 33 adantrr ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → w ∈ X ∧ x ∈ X → y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y
35 34 rexlimdvv ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → ∃ w ∈ X ∃ x ∈ X y = F ⁡ w ∧ z = F ⁡ x → y 2 nd ⁡ S z = z 2 nd ⁡ S y
36 13 35 syld ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → y ∈ Y ∧ z ∈ Y → y 2 nd ⁡ S z = z 2 nd ⁡ S y
37 36 ralrimivv ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → ∀ y ∈ Y ∀ z ∈ Y y 2 nd ⁡ S z = z 2 nd ⁡ S y
38 3 20 4 iscrngo2 ⊢ S ∈ CRingOps ↔ S ∈ RingOps ∧ ∀ y ∈ Y ∀ z ∈ Y y 2 nd ⁡ S z = z 2 nd ⁡ S y
39 5 37 38 sylanbrc ⊢ R ∈ CRingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ F : X ⟶ onto Y → S ∈ CRingOps