Metamath Proof Explorer


Theorem isrhm0

Description: The predicate "is a ring homomorphism from R to S ". (Contributed by Jeff Madsen, 19-Jun-2010) (Revised by AV, 24-Jul-2026)

Ref Expression
Hypotheses rhmval0.b 𝐵 = ( Base ‘ 𝑅 )
rhmval0.c 𝐶 = ( Base ‘ 𝑆 )
rhmval0.1 1 = ( 1r𝑅 )
rhmval0.i 𝑁 = ( 1r𝑆 )
rhmval0.m · = ( .r𝑅 )
rhmval0.n × = ( .r𝑆 )
rhmval0.p + = ( +g𝑅 )
rhmval0.q = ( +g𝑆 )
Assertion isrhm0 ( ( 𝑅 ∈ Ring ∧ 𝑆 ∈ Ring ) → ( 𝐹 ∈ ( 𝑅 RingHom 𝑆 ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )

Proof

Step Hyp Ref Expression
1 rhmval0.b 𝐵 = ( Base ‘ 𝑅 )
2 rhmval0.c 𝐶 = ( Base ‘ 𝑆 )
3 rhmval0.1 1 = ( 1r𝑅 )
4 rhmval0.i 𝑁 = ( 1r𝑆 )
5 rhmval0.m · = ( .r𝑅 )
6 rhmval0.n × = ( .r𝑆 )
7 rhmval0.p + = ( +g𝑅 )
8 rhmval0.q = ( +g𝑆 )
9 1 2 3 4 5 6 7 8 rhmval0 ( ( 𝑅 ∈ Ring ∧ 𝑆 ∈ Ring ) → ( 𝑅 RingHom 𝑆 ) = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ( 𝑓1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ) } )
10 9 eleq2d ( ( 𝑅 ∈ Ring ∧ 𝑆 ∈ Ring ) → ( 𝐹 ∈ ( 𝑅 RingHom 𝑆 ) ↔ 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ( 𝑓1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ) } ) )
11 2 fvexi 𝐶 ∈ V
12 1 fvexi 𝐵 ∈ V
13 11 12 elmap ( 𝐹 ∈ ( 𝐶m 𝐵 ) ↔ 𝐹 : 𝐵𝐶 )
14 13 anbi1i ( ( 𝐹 ∈ ( 𝐶m 𝐵 ) ∧ ( ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )
15 fveq1 ( 𝑓 = 𝐹 → ( 𝑓1 ) = ( 𝐹1 ) )
16 15 eqeq1d ( 𝑓 = 𝐹 → ( ( 𝑓1 ) = 𝑁 ↔ ( 𝐹1 ) = 𝑁 ) )
17 fveq1 ( 𝑓 = 𝐹 → ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) )
18 fveq1 ( 𝑓 = 𝐹 → ( 𝑓𝑥 ) = ( 𝐹𝑥 ) )
19 fveq1 ( 𝑓 = 𝐹 → ( 𝑓𝑦 ) = ( 𝐹𝑦 ) )
20 18 19 oveq12d ( 𝑓 = 𝐹 → ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) )
21 17 20 eqeq12d ( 𝑓 = 𝐹 → ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ↔ ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ) )
22 fveq1 ( 𝑓 = 𝐹 → ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) )
23 18 19 oveq12d ( 𝑓 = 𝐹 → ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) )
24 22 23 eqeq12d ( 𝑓 = 𝐹 → ( ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ↔ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) )
25 21 24 anbi12d ( 𝑓 = 𝐹 → ( ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ↔ ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) )
26 25 2ralbidv ( 𝑓 = 𝐹 → ( ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) )
27 16 26 anbi12d ( 𝑓 = 𝐹 → ( ( ( 𝑓1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ) ↔ ( ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )
28 27 elrab ( 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ( 𝑓1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ) } ↔ ( 𝐹 ∈ ( 𝐶m 𝐵 ) ∧ ( ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )
29 3anass ( ( 𝐹 : 𝐵𝐶 ∧ ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )
30 14 28 29 3bitr4i ( 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ( 𝑓1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝑓𝑥 ) × ( 𝑓𝑦 ) ) ) ) } ↔ ( 𝐹 : 𝐵𝐶 ∧ ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) )
31 10 30 bitrdi ( ( 𝑅 ∈ Ring ∧ 𝑆 ∈ Ring ) → ( 𝐹 ∈ ( 𝑅 RingHom 𝑆 ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( 𝐹1 ) = 𝑁 ∧ ∀ 𝑥𝐵𝑦𝐵 ( ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹 ‘ ( 𝑥 · 𝑦 ) ) = ( ( 𝐹𝑥 ) × ( 𝐹𝑦 ) ) ) ) ) )