Metamath Proof Explorer


Theorem rngohomval

Description: The set of ring homomorphisms. (Contributed by Jeff Madsen, 19-Jun-2010) (Revised by Mario Carneiro, 22-Sep-2015)

Ref Expression
Hypotheses rnghomval.1 𝐺 = ( 1st𝑅 )
rnghomval.2 𝐻 = ( 2nd𝑅 )
rnghomval.3 𝑋 = ran 𝐺
rnghomval.4 𝑈 = ( GId ‘ 𝐻 )
rnghomval.5 𝐽 = ( 1st𝑆 )
rnghomval.6 𝐾 = ( 2nd𝑆 )
rnghomval.7 𝑌 = ran 𝐽
rnghomval.8 𝑉 = ( GId ‘ 𝐾 )
Assertion rngohomval ( ( 𝑅 ∈ RingOps ∧ 𝑆 ∈ RingOps ) → ( 𝑅 RngHom 𝑆 ) = { 𝑓 ∈ ( 𝑌m 𝑋 ) ∣ ( ( 𝑓𝑈 ) = 𝑉 ∧ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) } )

Proof

Step Hyp Ref Expression
1 rnghomval.1 𝐺 = ( 1st𝑅 )
2 rnghomval.2 𝐻 = ( 2nd𝑅 )
3 rnghomval.3 𝑋 = ran 𝐺
4 rnghomval.4 𝑈 = ( GId ‘ 𝐻 )
5 rnghomval.5 𝐽 = ( 1st𝑆 )
6 rnghomval.6 𝐾 = ( 2nd𝑆 )
7 rnghomval.7 𝑌 = ran 𝐽
8 rnghomval.8 𝑉 = ( GId ‘ 𝐾 )
9 simpr ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → 𝑠 = 𝑆 )
10 9 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 1st𝑠 ) = ( 1st𝑆 ) )
11 10 5 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 1st𝑠 ) = 𝐽 )
12 11 rneqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ran ( 1st𝑠 ) = ran 𝐽 )
13 12 7 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ran ( 1st𝑠 ) = 𝑌 )
14 simpl ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → 𝑟 = 𝑅 )
15 14 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 1st𝑟 ) = ( 1st𝑅 ) )
16 15 1 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 1st𝑟 ) = 𝐺 )
17 16 rneqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ran ( 1st𝑟 ) = ran 𝐺 )
18 17 3 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ran ( 1st𝑟 ) = 𝑋 )
19 13 18 oveq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ran ( 1st𝑠 ) ↑m ran ( 1st𝑟 ) ) = ( 𝑌m 𝑋 ) )
20 14 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 2nd𝑟 ) = ( 2nd𝑅 ) )
21 20 2 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 2nd𝑟 ) = 𝐻 )
22 21 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( GId ‘ ( 2nd𝑟 ) ) = ( GId ‘ 𝐻 ) )
23 22 4 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( GId ‘ ( 2nd𝑟 ) ) = 𝑈 )
24 23 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑓 ‘ ( GId ‘ ( 2nd𝑟 ) ) ) = ( 𝑓𝑈 ) )
25 9 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 2nd𝑠 ) = ( 2nd𝑆 ) )
26 25 6 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 2nd𝑠 ) = 𝐾 )
27 26 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( GId ‘ ( 2nd𝑠 ) ) = ( GId ‘ 𝐾 ) )
28 27 8 eqtr4di ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( GId ‘ ( 2nd𝑠 ) ) = 𝑉 )
29 24 28 eqeq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓 ‘ ( GId ‘ ( 2nd𝑟 ) ) ) = ( GId ‘ ( 2nd𝑠 ) ) ↔ ( 𝑓𝑈 ) = 𝑉 ) )
30 16 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑥 ( 1st𝑟 ) 𝑦 ) = ( 𝑥 𝐺 𝑦 ) )
31 30 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) )
32 11 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) )
33 31 32 eqeq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ↔ ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ) )
34 21 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑥 ( 2nd𝑟 ) 𝑦 ) = ( 𝑥 𝐻 𝑦 ) )
35 34 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) )
36 26 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) )
37 35 36 eqeq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ↔ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) )
38 33 37 anbi12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) )
39 18 38 raleqbidv ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ∀ 𝑦 ∈ ran ( 1st𝑟 ) ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) )
40 18 39 raleqbidv ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ∀ 𝑥 ∈ ran ( 1st𝑟 ) ∀ 𝑦 ∈ ran ( 1st𝑟 ) ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) )
41 29 40 anbi12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( ( 𝑓 ‘ ( GId ‘ ( 2nd𝑟 ) ) ) = ( GId ‘ ( 2nd𝑠 ) ) ∧ ∀ 𝑥 ∈ ran ( 1st𝑟 ) ∀ 𝑦 ∈ ran ( 1st𝑟 ) ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ) ↔ ( ( 𝑓𝑈 ) = 𝑉 ∧ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) ) )
42 19 41 rabeqbidv ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → { 𝑓 ∈ ( ran ( 1st𝑠 ) ↑m ran ( 1st𝑟 ) ) ∣ ( ( 𝑓 ‘ ( GId ‘ ( 2nd𝑟 ) ) ) = ( GId ‘ ( 2nd𝑠 ) ) ∧ ∀ 𝑥 ∈ ran ( 1st𝑟 ) ∀ 𝑦 ∈ ran ( 1st𝑟 ) ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ) } = { 𝑓 ∈ ( 𝑌m 𝑋 ) ∣ ( ( 𝑓𝑈 ) = 𝑉 ∧ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) } )
43 df-rngohom RngHom = ( 𝑟 ∈ RingOps , 𝑠 ∈ RingOps ↦ { 𝑓 ∈ ( ran ( 1st𝑠 ) ↑m ran ( 1st𝑟 ) ) ∣ ( ( 𝑓 ‘ ( GId ‘ ( 2nd𝑟 ) ) ) = ( GId ‘ ( 2nd𝑠 ) ) ∧ ∀ 𝑥 ∈ ran ( 1st𝑟 ) ∀ 𝑦 ∈ ran ( 1st𝑟 ) ( ( 𝑓 ‘ ( 𝑥 ( 1st𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 1st𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( 2nd𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 2nd𝑠 ) ( 𝑓𝑦 ) ) ) ) } )
44 ovex ( 𝑌m 𝑋 ) ∈ V
45 44 rabex { 𝑓 ∈ ( 𝑌m 𝑋 ) ∣ ( ( 𝑓𝑈 ) = 𝑉 ∧ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) } ∈ V
46 42 43 45 ovmpoa ( ( 𝑅 ∈ RingOps ∧ 𝑆 ∈ RingOps ) → ( 𝑅 RngHom 𝑆 ) = { 𝑓 ∈ ( 𝑌m 𝑋 ) ∣ ( ( 𝑓𝑈 ) = 𝑉 ∧ ∀ 𝑥𝑋𝑦𝑋 ( ( 𝑓 ‘ ( 𝑥 𝐺 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐽 ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 𝐻 𝑦 ) ) = ( ( 𝑓𝑥 ) 𝐾 ( 𝑓𝑦 ) ) ) ) } )