Metamath Proof Explorer


Theorem ismhm

Description: Property of a monoid homomorphism. (Contributed by Mario Carneiro, 7-Mar-2015)

Ref Expression
Hypotheses ismhm.b 𝐵 = ( Base ‘ 𝑆 )
ismhm.c 𝐶 = ( Base ‘ 𝑇 )
ismhm.p + = ( +g𝑆 )
ismhm.q = ( +g𝑇 )
ismhm.z 0 = ( 0g𝑆 )
ismhm.y 𝑌 = ( 0g𝑇 )
Assertion ismhm ( 𝐹 ∈ ( 𝑆 MndHom 𝑇 ) ↔ ( ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) ∧ ( 𝐹 : 𝐵𝐶 ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )

Proof

Step Hyp Ref Expression
1 ismhm.b 𝐵 = ( Base ‘ 𝑆 )
2 ismhm.c 𝐶 = ( Base ‘ 𝑇 )
3 ismhm.p + = ( +g𝑆 )
4 ismhm.q = ( +g𝑇 )
5 ismhm.z 0 = ( 0g𝑆 )
6 ismhm.y 𝑌 = ( 0g𝑇 )
7 df-mhm MndHom = ( 𝑠 ∈ Mnd , 𝑡 ∈ Mnd ↦ { 𝑓 ∈ ( ( Base ‘ 𝑡 ) ↑m ( Base ‘ 𝑠 ) ) ∣ ( ∀ 𝑥 ∈ ( Base ‘ 𝑠 ) ∀ 𝑦 ∈ ( Base ‘ 𝑠 ) ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 0g𝑠 ) ) = ( 0g𝑡 ) ) } )
8 7 elmpocl ( 𝐹 ∈ ( 𝑆 MndHom 𝑇 ) → ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) )
9 fveq2 ( 𝑡 = 𝑇 → ( Base ‘ 𝑡 ) = ( Base ‘ 𝑇 ) )
10 9 2 eqtr4di ( 𝑡 = 𝑇 → ( Base ‘ 𝑡 ) = 𝐶 )
11 fveq2 ( 𝑠 = 𝑆 → ( Base ‘ 𝑠 ) = ( Base ‘ 𝑆 ) )
12 11 1 eqtr4di ( 𝑠 = 𝑆 → ( Base ‘ 𝑠 ) = 𝐵 )
13 10 12 oveqan12rd ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ( Base ‘ 𝑡 ) ↑m ( Base ‘ 𝑠 ) ) = ( 𝐶m 𝐵 ) )
14 12 adantr ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( Base ‘ 𝑠 ) = 𝐵 )
15 fveq2 ( 𝑠 = 𝑆 → ( +g𝑠 ) = ( +g𝑆 ) )
16 15 3 eqtr4di ( 𝑠 = 𝑆 → ( +g𝑠 ) = + )
17 16 oveqd ( 𝑠 = 𝑆 → ( 𝑥 ( +g𝑠 ) 𝑦 ) = ( 𝑥 + 𝑦 ) )
18 17 fveq2d ( 𝑠 = 𝑆 → ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) )
19 fveq2 ( 𝑡 = 𝑇 → ( +g𝑡 ) = ( +g𝑇 ) )
20 19 4 eqtr4di ( 𝑡 = 𝑇 → ( +g𝑡 ) = )
21 20 oveqd ( 𝑡 = 𝑇 → ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) )
22 18 21 eqeqan12d ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ↔ ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) )
23 14 22 raleqbidv ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ∀ 𝑦 ∈ ( Base ‘ 𝑠 ) ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ↔ ∀ 𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) )
24 14 23 raleqbidv ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ∀ 𝑥 ∈ ( Base ‘ 𝑠 ) ∀ 𝑦 ∈ ( Base ‘ 𝑠 ) ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ) )
25 fveq2 ( 𝑠 = 𝑆 → ( 0g𝑠 ) = ( 0g𝑆 ) )
26 25 5 eqtr4di ( 𝑠 = 𝑆 → ( 0g𝑠 ) = 0 )
27 26 fveq2d ( 𝑠 = 𝑆 → ( 𝑓 ‘ ( 0g𝑠 ) ) = ( 𝑓0 ) )
28 fveq2 ( 𝑡 = 𝑇 → ( 0g𝑡 ) = ( 0g𝑇 ) )
29 28 6 eqtr4di ( 𝑡 = 𝑇 → ( 0g𝑡 ) = 𝑌 )
30 27 29 eqeqan12d ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ( 𝑓 ‘ ( 0g𝑠 ) ) = ( 0g𝑡 ) ↔ ( 𝑓0 ) = 𝑌 ) )
31 24 30 anbi12d ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → ( ( ∀ 𝑥 ∈ ( Base ‘ 𝑠 ) ∀ 𝑦 ∈ ( Base ‘ 𝑠 ) ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 0g𝑠 ) ) = ( 0g𝑡 ) ) ↔ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) ) )
32 13 31 rabeqbidv ( ( 𝑠 = 𝑆𝑡 = 𝑇 ) → { 𝑓 ∈ ( ( Base ‘ 𝑡 ) ↑m ( Base ‘ 𝑠 ) ) ∣ ( ∀ 𝑥 ∈ ( Base ‘ 𝑠 ) ∀ 𝑦 ∈ ( Base ‘ 𝑠 ) ( 𝑓 ‘ ( 𝑥 ( +g𝑠 ) 𝑦 ) ) = ( ( 𝑓𝑥 ) ( +g𝑡 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓 ‘ ( 0g𝑠 ) ) = ( 0g𝑡 ) ) } = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } )
33 ovex ( 𝐶m 𝐵 ) ∈ V
34 33 rabex { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } ∈ V
35 32 7 34 ovmpoa ( ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) → ( 𝑆 MndHom 𝑇 ) = { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } )
36 35 eleq2d ( ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) → ( 𝐹 ∈ ( 𝑆 MndHom 𝑇 ) ↔ 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } ) )
37 2 fvexi 𝐶 ∈ V
38 1 fvexi 𝐵 ∈ V
39 37 38 elmap ( 𝐹 ∈ ( 𝐶m 𝐵 ) ↔ 𝐹 : 𝐵𝐶 )
40 39 anbi1i ( ( 𝐹 ∈ ( 𝐶m 𝐵 ) ∧ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )
41 fveq1 ( 𝑓 = 𝐹 → ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) )
42 fveq1 ( 𝑓 = 𝐹 → ( 𝑓𝑥 ) = ( 𝐹𝑥 ) )
43 fveq1 ( 𝑓 = 𝐹 → ( 𝑓𝑦 ) = ( 𝐹𝑦 ) )
44 42 43 oveq12d ( 𝑓 = 𝐹 → ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) )
45 41 44 eqeq12d ( 𝑓 = 𝐹 → ( ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ↔ ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ) )
46 45 2ralbidv ( 𝑓 = 𝐹 → ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ↔ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ) )
47 fveq1 ( 𝑓 = 𝐹 → ( 𝑓0 ) = ( 𝐹0 ) )
48 47 eqeq1d ( 𝑓 = 𝐹 → ( ( 𝑓0 ) = 𝑌 ↔ ( 𝐹0 ) = 𝑌 ) )
49 46 48 anbi12d ( 𝑓 = 𝐹 → ( ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) ↔ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )
50 49 elrab ( 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } ↔ ( 𝐹 ∈ ( 𝐶m 𝐵 ) ∧ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )
51 3anass ( ( 𝐹 : 𝐵𝐶 ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )
52 40 50 51 3bitr4i ( 𝐹 ∈ { 𝑓 ∈ ( 𝐶m 𝐵 ) ∣ ( ∀ 𝑥𝐵𝑦𝐵 ( 𝑓 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝑓𝑥 ) ( 𝑓𝑦 ) ) ∧ ( 𝑓0 ) = 𝑌 ) } ↔ ( 𝐹 : 𝐵𝐶 ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) )
53 36 52 bitrdi ( ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) → ( 𝐹 ∈ ( 𝑆 MndHom 𝑇 ) ↔ ( 𝐹 : 𝐵𝐶 ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )
54 8 53 biadanii ( 𝐹 ∈ ( 𝑆 MndHom 𝑇 ) ↔ ( ( 𝑆 ∈ Mnd ∧ 𝑇 ∈ Mnd ) ∧ ( 𝐹 : 𝐵𝐶 ∧ ∀ 𝑥𝐵𝑦𝐵 ( 𝐹 ‘ ( 𝑥 + 𝑦 ) ) = ( ( 𝐹𝑥 ) ( 𝐹𝑦 ) ) ∧ ( 𝐹0 ) = 𝑌 ) ) )