Metamath Proof Explorer


Theorem rngohomco

Description: Obsolete theorem, use rhmco instead. The composition of two ring homomorphisms is a ring homomorphism. (Contributed by Jeff Madsen, 16-Jun-2011) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Assertion rngohomco ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F ∈ R RingOpsHom T

Proof

Step Hyp Ref Expression
1 eqid ⊢ 1 st ⁡ S = 1 st ⁡ S
2 eqid ⊢ ran ⁡ 1 st ⁡ S = ran ⁡ 1 st ⁡ S
3 eqid ⊢ 1 st ⁡ T = 1 st ⁡ T
4 eqid ⊢ ran ⁡ 1 st ⁡ T = ran ⁡ 1 st ⁡ T
5 1 2 3 4 rngohomf ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G : ran ⁡ 1 st ⁡ S ⟶ ran ⁡ 1 st ⁡ T
6 5 3expa ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G : ran ⁡ 1 st ⁡ S ⟶ ran ⁡ 1 st ⁡ T
7 6 3adantl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G : ran ⁡ 1 st ⁡ S ⟶ ran ⁡ 1 st ⁡ T
8 7 adantrl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G : ran ⁡ 1 st ⁡ S ⟶ ran ⁡ 1 st ⁡ T
9 eqid ⊢ 1 st ⁡ R = 1 st ⁡ R
10 eqid ⊢ ran ⁡ 1 st ⁡ R = ran ⁡ 1 st ⁡ R
11 9 10 1 2 rngohomf ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S
12 11 3expa ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S
13 12 3adantl3 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S → F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S
14 13 adantrr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S
15 fco ⊢ G : ran ⁡ 1 st ⁡ S ⟶ ran ⁡ 1 st ⁡ T ∧ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S → G ∘ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ T
16 8 14 15 syl2anc ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ T
17 eqid ⊢ 2 nd ⁡ R = 2 nd ⁡ R
18 eqid ⊢ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ R
19 10 17 18 rngo1cl ⊢ R ∈ RingOps → GId ⁡ 2 nd ⁡ R ∈ ran ⁡ 1 st ⁡ R
20 19 3ad2ant1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps → GId ⁡ 2 nd ⁡ R ∈ ran ⁡ 1 st ⁡ R
21 20 adantr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → GId ⁡ 2 nd ⁡ R ∈ ran ⁡ 1 st ⁡ R
22 fvco3 ⊢ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S ∧ GId ⁡ 2 nd ⁡ R ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = G ⁡ F ⁡ GId ⁡ 2 nd ⁡ R
23 14 21 22 syl2anc ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = G ⁡ F ⁡ GId ⁡ 2 nd ⁡ R
24 eqid ⊢ 2 nd ⁡ S = 2 nd ⁡ S
25 eqid ⊢ GId ⁡ 2 nd ⁡ S = GId ⁡ 2 nd ⁡ S
26 17 18 24 25 rngohom1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ S
27 26 3expa ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ S
28 27 3adantl3 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S → F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ S
29 28 adantrr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ S
30 29 fveq2d ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ⁡ F ⁡ GId ⁡ 2 nd ⁡ R = G ⁡ GId ⁡ 2 nd ⁡ S
31 eqid ⊢ 2 nd ⁡ T = 2 nd ⁡ T
32 eqid ⊢ GId ⁡ 2 nd ⁡ T = GId ⁡ 2 nd ⁡ T
33 24 25 31 32 rngohom1 ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G ⁡ GId ⁡ 2 nd ⁡ S = GId ⁡ 2 nd ⁡ T
34 33 3expa ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G ⁡ GId ⁡ 2 nd ⁡ S = GId ⁡ 2 nd ⁡ T
35 34 3adantl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → G ⁡ GId ⁡ 2 nd ⁡ S = GId ⁡ 2 nd ⁡ T
36 35 adantrl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ⁡ GId ⁡ 2 nd ⁡ S = GId ⁡ 2 nd ⁡ T
37 30 36 eqtrd ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ⁡ F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ T
38 23 37 eqtrd ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ T
39 9 10 1 rngohomadd ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
40 39 ex ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
41 40 3expa ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
42 41 3adantl3 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
43 42 imp ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
44 43 adantlrr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 1 st ⁡ R y = F ⁡ x 1 st ⁡ S F ⁡ y
45 44 fveq2d ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 1 st ⁡ R y = G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y
46 9 10 1 2 rngohomcl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S
47 9 10 1 2 rngohomcl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ y ∈ ran ⁡ 1 st ⁡ S
48 46 47 anim12dan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
49 48 ex ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
50 49 3expa ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
51 50 3adantl3 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
52 51 imp ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
53 52 adantlrr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S
54 1 2 3 rngohomadd ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
55 54 ex ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
56 55 3expa ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
57 56 3adantl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
58 57 imp ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
59 58 adantlrl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
60 53 59 syldan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 1 st ⁡ S F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
61 45 60 eqtrd ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 1 st ⁡ R y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
62 9 10 rngogcl ⊢ R ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R
63 62 3expb ⊢ R ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R
64 63 3ad2antl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R
65 64 adantlr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R
66 fvco3 ⊢ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S ∧ x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ R y = G ⁡ F ⁡ x 1 st ⁡ R y
67 14 66 sylan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x 1 st ⁡ R y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ R y = G ⁡ F ⁡ x 1 st ⁡ R y
68 65 67 syldan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ R y = G ⁡ F ⁡ x 1 st ⁡ R y
69 fvco3 ⊢ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S ∧ x ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x = G ⁡ F ⁡ x
70 14 69 sylan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x = G ⁡ F ⁡ x
71 fvco3 ⊢ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ y = G ⁡ F ⁡ y
72 14 71 sylan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ y = G ⁡ F ⁡ y
73 70 72 anim12dan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x = G ⁡ F ⁡ x ∧ G ∘ F ⁡ y = G ⁡ F ⁡ y
74 oveq12 ⊢ G ∘ F ⁡ x = G ⁡ F ⁡ x ∧ G ∘ F ⁡ y = G ⁡ F ⁡ y → G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
75 73 74 syl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y = G ⁡ F ⁡ x 1 st ⁡ T G ⁡ F ⁡ y
76 61 68 75 3eqtr4d ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y
77 9 10 17 24 rngohommul ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
78 77 ex ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
79 78 3expa ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
80 79 3adantl3 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S → x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
81 80 imp ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
82 81 adantlrr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → F ⁡ x 2 nd ⁡ R y = F ⁡ x 2 nd ⁡ S F ⁡ y
83 82 fveq2d ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 2 nd ⁡ R y = G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y
84 1 2 24 31 rngohommul ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
85 84 ex ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
86 85 3expa ⊢ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
87 86 3adantl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T → F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
88 87 imp ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
89 88 adantlrl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ F ⁡ x ∈ ran ⁡ 1 st ⁡ S ∧ F ⁡ y ∈ ran ⁡ 1 st ⁡ S → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
90 53 89 syldan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 2 nd ⁡ S F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
91 83 90 eqtrd ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ⁡ F ⁡ x 2 nd ⁡ R y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
92 9 17 10 rngocl ⊢ R ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R
93 92 3expb ⊢ R ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R
94 93 3ad2antl1 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R
95 94 adantlr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R
96 fvco3 ⊢ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ S ∧ x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 2 nd ⁡ R y = G ⁡ F ⁡ x 2 nd ⁡ R y
97 14 96 sylan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x 2 nd ⁡ R y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 2 nd ⁡ R y = G ⁡ F ⁡ x 2 nd ⁡ R y
98 95 97 syldan ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 2 nd ⁡ R y = G ⁡ F ⁡ x 2 nd ⁡ R y
99 oveq12 ⊢ G ∘ F ⁡ x = G ⁡ F ⁡ x ∧ G ∘ F ⁡ y = G ⁡ F ⁡ y → G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
100 73 99 syl ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y = G ⁡ F ⁡ x 2 nd ⁡ T G ⁡ F ⁡ y
101 91 98 100 3eqtr4d ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
102 76 101 jca ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T ∧ x ∈ ran ⁡ 1 st ⁡ R ∧ y ∈ ran ⁡ 1 st ⁡ R → G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y ∧ G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
103 102 ralrimivva ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → ∀ x ∈ ran ⁡ 1 st ⁡ R ∀ y ∈ ran ⁡ 1 st ⁡ R G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y ∧ G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
104 9 17 10 18 3 31 4 32 isrngohom ⊢ R ∈ RingOps ∧ T ∈ RingOps → G ∘ F ∈ R RingOpsHom T ↔ G ∘ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ T ∧ G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ T ∧ ∀ x ∈ ran ⁡ 1 st ⁡ R ∀ y ∈ ran ⁡ 1 st ⁡ R G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y ∧ G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
105 104 3adant2 ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps → G ∘ F ∈ R RingOpsHom T ↔ G ∘ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ T ∧ G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ T ∧ ∀ x ∈ ran ⁡ 1 st ⁡ R ∀ y ∈ ran ⁡ 1 st ⁡ R G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y ∧ G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
106 105 adantr ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F ∈ R RingOpsHom T ↔ G ∘ F : ran ⁡ 1 st ⁡ R ⟶ ran ⁡ 1 st ⁡ T ∧ G ∘ F ⁡ GId ⁡ 2 nd ⁡ R = GId ⁡ 2 nd ⁡ T ∧ ∀ x ∈ ran ⁡ 1 st ⁡ R ∀ y ∈ ran ⁡ 1 st ⁡ R G ∘ F ⁡ x 1 st ⁡ R y = G ∘ F ⁡ x 1 st ⁡ T G ∘ F ⁡ y ∧ G ∘ F ⁡ x 2 nd ⁡ R y = G ∘ F ⁡ x 2 nd ⁡ T G ∘ F ⁡ y
107 16 38 103 106 mpbir3and ⊢ R ∈ RingOps ∧ S ∈ RingOps ∧ T ∈ RingOps ∧ F ∈ R RingOpsHom S ∧ G ∈ S RingOpsHom T → G ∘ F ∈ R RingOpsHom T