Metamath Proof Explorer


Theorem issubm

Description: Expand definition of a submonoid. (Contributed by Mario Carneiro, 7-Mar-2015)

Ref Expression
Hypotheses issubm.b 𝐵 = ( Base ‘ 𝑀 )
issubm.z 0 = ( 0g𝑀 )
issubm.p + = ( +g𝑀 )
Assertion issubm ( 𝑀 ∈ Mnd → ( 𝑆 ∈ ( SubMnd ‘ 𝑀 ) ↔ ( 𝑆𝐵0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ) )

Proof

Step Hyp Ref Expression
1 issubm.b 𝐵 = ( Base ‘ 𝑀 )
2 issubm.z 0 = ( 0g𝑀 )
3 issubm.p + = ( +g𝑀 )
4 fveq2 ( 𝑚 = 𝑀 → ( Base ‘ 𝑚 ) = ( Base ‘ 𝑀 ) )
5 4 pweqd ( 𝑚 = 𝑀 → 𝒫 ( Base ‘ 𝑚 ) = 𝒫 ( Base ‘ 𝑀 ) )
6 fveq2 ( 𝑚 = 𝑀 → ( 0g𝑚 ) = ( 0g𝑀 ) )
7 6 eleq1d ( 𝑚 = 𝑀 → ( ( 0g𝑚 ) ∈ 𝑡 ↔ ( 0g𝑀 ) ∈ 𝑡 ) )
8 fveq2 ( 𝑚 = 𝑀 → ( +g𝑚 ) = ( +g𝑀 ) )
9 8 oveqd ( 𝑚 = 𝑀 → ( 𝑥 ( +g𝑚 ) 𝑦 ) = ( 𝑥 ( +g𝑀 ) 𝑦 ) )
10 9 eleq1d ( 𝑚 = 𝑀 → ( ( 𝑥 ( +g𝑚 ) 𝑦 ) ∈ 𝑡 ↔ ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) )
11 10 2ralbidv ( 𝑚 = 𝑀 → ( ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑚 ) 𝑦 ) ∈ 𝑡 ↔ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) )
12 7 11 anbi12d ( 𝑚 = 𝑀 → ( ( ( 0g𝑚 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑚 ) 𝑦 ) ∈ 𝑡 ) ↔ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) ) )
13 5 12 rabeqbidv ( 𝑚 = 𝑀 → { 𝑡 ∈ 𝒫 ( Base ‘ 𝑚 ) ∣ ( ( 0g𝑚 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑚 ) 𝑦 ) ∈ 𝑡 ) } = { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } )
14 df-submnd SubMnd = ( 𝑚 ∈ Mnd ↦ { 𝑡 ∈ 𝒫 ( Base ‘ 𝑚 ) ∣ ( ( 0g𝑚 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑚 ) 𝑦 ) ∈ 𝑡 ) } )
15 fvex ( Base ‘ 𝑀 ) ∈ V
16 15 pwex 𝒫 ( Base ‘ 𝑀 ) ∈ V
17 16 rabex { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } ∈ V
18 13 14 17 fvmpt ( 𝑀 ∈ Mnd → ( SubMnd ‘ 𝑀 ) = { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } )
19 18 eleq2d ( 𝑀 ∈ Mnd → ( 𝑆 ∈ ( SubMnd ‘ 𝑀 ) ↔ 𝑆 ∈ { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } ) )
20 eleq2 ( 𝑡 = 𝑆 → ( ( 0g𝑀 ) ∈ 𝑡 ↔ ( 0g𝑀 ) ∈ 𝑆 ) )
21 eleq2 ( 𝑡 = 𝑆 → ( ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ↔ ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) )
22 21 raleqbi1dv ( 𝑡 = 𝑆 → ( ∀ 𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ↔ ∀ 𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) )
23 22 raleqbi1dv ( 𝑡 = 𝑆 → ( ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ↔ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) )
24 20 23 anbi12d ( 𝑡 = 𝑆 → ( ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) ↔ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) )
25 24 elrab ( 𝑆 ∈ { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } ↔ ( 𝑆 ∈ 𝒫 ( Base ‘ 𝑀 ) ∧ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) )
26 1 sseq2i ( 𝑆𝐵𝑆 ⊆ ( Base ‘ 𝑀 ) )
27 2 eleq1i ( 0𝑆 ↔ ( 0g𝑀 ) ∈ 𝑆 )
28 3 oveqi ( 𝑥 + 𝑦 ) = ( 𝑥 ( +g𝑀 ) 𝑦 )
29 28 eleq1i ( ( 𝑥 + 𝑦 ) ∈ 𝑆 ↔ ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 )
30 29 2ralbii ( ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ↔ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 )
31 27 30 anbi12i ( ( 0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ↔ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) )
32 26 31 anbi12i ( ( 𝑆𝐵 ∧ ( 0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ) ↔ ( 𝑆 ⊆ ( Base ‘ 𝑀 ) ∧ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) )
33 3anass ( ( 𝑆𝐵0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ↔ ( 𝑆𝐵 ∧ ( 0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ) )
34 15 elpw2 ( 𝑆 ∈ 𝒫 ( Base ‘ 𝑀 ) ↔ 𝑆 ⊆ ( Base ‘ 𝑀 ) )
35 34 anbi1i ( ( 𝑆 ∈ 𝒫 ( Base ‘ 𝑀 ) ∧ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) ↔ ( 𝑆 ⊆ ( Base ‘ 𝑀 ) ∧ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) )
36 32 33 35 3bitr4ri ( ( 𝑆 ∈ 𝒫 ( Base ‘ 𝑀 ) ∧ ( ( 0g𝑀 ) ∈ 𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑆 ) ) ↔ ( 𝑆𝐵0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) )
37 25 36 bitri ( 𝑆 ∈ { 𝑡 ∈ 𝒫 ( Base ‘ 𝑀 ) ∣ ( ( 0g𝑀 ) ∈ 𝑡 ∧ ∀ 𝑥𝑡𝑦𝑡 ( 𝑥 ( +g𝑀 ) 𝑦 ) ∈ 𝑡 ) } ↔ ( 𝑆𝐵0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) )
38 19 37 bitrdi ( 𝑀 ∈ Mnd → ( 𝑆 ∈ ( SubMnd ‘ 𝑀 ) ↔ ( 𝑆𝐵0𝑆 ∧ ∀ 𝑥𝑆𝑦𝑆 ( 𝑥 + 𝑦 ) ∈ 𝑆 ) ) )