Metamath Proof Explorer


Theorem rnghmval

Description: The set of the non-unital ring homomorphisms between two non-unital rings. (Contributed by AV, 22-Feb-2020)

Ref Expression
Hypotheses isrnghm.b 𝐵 = ( Base ‘ 𝑅 )
isrnghm.t · = ( .r𝑅 )
isrnghm.m = ( .r𝑆 )
rnghmval.c 𝐶 = ( Base ‘ 𝑆 )
rnghmval.p + = ( +g𝑅 )
rnghmval.a = ( +g𝑆 )
Assertion rnghmval ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → ( 𝑅 RngHomo 𝑆 ) = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )

Proof

Step Hyp Ref Expression
1 isrnghm.b 𝐵 = ( Base ‘ 𝑅 )
2 isrnghm.t · = ( .r𝑅 )
3 isrnghm.m = ( .r𝑆 )
4 rnghmval.c 𝐶 = ( Base ‘ 𝑆 )
5 rnghmval.p + = ( +g𝑅 )
6 rnghmval.a = ( +g𝑆 )
7 df-rnghomo RngHomo = ( 𝑟 ∈ Rng , 𝑠 ∈ Rng ↦ ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
8 7 a1i ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → RngHomo = ( 𝑟 ∈ Rng , 𝑠 ∈ Rng ↦ ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } ) )
9 fveq2 ( 𝑟 = 𝑅 → ( Base ‘ 𝑟 ) = ( Base ‘ 𝑅 ) )
10 9 1 eqtr4di ( 𝑟 = 𝑅 → ( Base ‘ 𝑟 ) = 𝐵 )
11 10 csbeq1d ( 𝑟 = 𝑅 ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = 𝐵 / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
12 fveq2 ( 𝑠 = 𝑆 → ( Base ‘ 𝑠 ) = ( Base ‘ 𝑆 ) )
13 12 4 eqtr4di ( 𝑠 = 𝑆 → ( Base ‘ 𝑠 ) = 𝐶 )
14 13 csbeq1d ( 𝑠 = 𝑆 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
15 14 csbeq2dv ( 𝑠 = 𝑆 𝐵 / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
16 11 15 sylan9eq ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
17 16 adantl ( ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) ∧ ( 𝑟 = 𝑅𝑠 = 𝑆 ) ) → ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
18 1 fvexi 𝐵 ∈ V
19 4 fvexi 𝐶 ∈ V
20 oveq12 ( ( 𝑤 = 𝐶𝑣 = 𝐵 ) → ( 𝑤m 𝑣 ) = ( 𝐶m 𝐵 ) )
21 20 ancoms ( ( 𝑣 = 𝐵𝑤 = 𝐶 ) → ( 𝑤m 𝑣 ) = ( 𝐶m 𝐵 ) )
22 raleq ( 𝑣 = 𝐵 → ( ∀ 𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ) )
23 22 raleqbi1dv ( 𝑣 = 𝐵 → ( ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ) )
24 23 adantr ( ( 𝑣 = 𝐵𝑤 = 𝐶 ) → ( ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ) )
25 21 24 rabeqbidv ( ( 𝑣 = 𝐵𝑤 = 𝐶 ) → { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } )
26 18 19 25 csbie2 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) }
27 fveq2 ( 𝑟 = 𝑅 → ( +g𝑟 ) = ( +g𝑅 ) )
28 27 5 eqtr4di ( 𝑟 = 𝑅 → ( +g𝑟 ) = + )
29 28 oveqdr ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑥 ( +g𝑟 ) 𝑦 ) = ( 𝑥 + 𝑦 ) )
30 29 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) )
31 fveq2 ( 𝑠 = 𝑆 → ( +g𝑠 ) = ( +g𝑆 ) )
32 31 6 eqtr4di ( 𝑠 = 𝑆 → ( +g𝑠 ) = )
33 32 adantl ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( +g𝑠 ) = )
34 33 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) )
35 30 34 eqeq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ↔ ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) )
36 fveq2 ( 𝑟 = 𝑅 → ( .r𝑟 ) = ( .r𝑅 ) )
37 36 2 eqtr4di ( 𝑟 = 𝑅 → ( .r𝑟 ) = · )
38 37 oveqdr ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑥 ( .r𝑟 ) 𝑦 ) = ( 𝑥 · 𝑦 ) )
39 38 fveq2d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) )
40 fveq2 ( 𝑠 = 𝑆 → ( .r𝑠 ) = ( .r𝑆 ) )
41 40 3 eqtr4di ( 𝑠 = 𝑆 → ( .r𝑠 ) = )
42 41 adantl ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( .r𝑠 ) = )
43 42 oveqd ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) )
44 39 43 eqeq12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ↔ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) )
45 35 44 anbi12d ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) ) )
46 45 2ralbidv ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → ( ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) ) )
47 46 rabbidv ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )
48 26 47 syl5eq ( ( 𝑟 = 𝑅𝑠 = 𝑆 ) → 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )
49 48 adantl ( ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) ∧ ( 𝑟 = 𝑅𝑠 = 𝑆 ) ) → 𝐵 / 𝑣 𝐶 / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )
50 17 49 eqtrd ( ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) ∧ ( 𝑟 = 𝑅𝑠 = 𝑆 ) ) → ( Base ‘ 𝑟 ) / 𝑣 ( Base ‘ 𝑠 ) / 𝑤 { 𝑓 ∈ ( 𝑤m 𝑣 ) ∣ ∀ 𝑥𝑣𝑦𝑣 ( ( 𝑓 ‘ ( 𝑥 ( +g𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑠 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 ( .r𝑟 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( .r𝑠 ) ( 𝑓𝑦 ) ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )
51 simpl ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → 𝑅 ∈ Rng )
52 simpr ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → 𝑆 ∈ Rng )
53 ovex ( 𝐶m 𝐵 ) ∈ V
54 53 rabex { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } ∈ V
55 54 a1i ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } ∈ V )
56 8 50 51 52 55 ovmpod ( ( 𝑅 ∈ Rng ∧ 𝑆 ∈ Rng ) → ( 𝑅 RngHomo 𝑆 ) = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) } )