Metamath Proof Explorer


Theorem sgrpidmnd

Description: A semigroup with an identity element which is not the empty set is a monoid. Of course there could be monoids with the empty set as identity element (see, for example, the monoid of the power set of a class under union, pwmnd and pwmndid ), but these cannot be proven to be monoids with this theorem. (Contributed by AV, 29-Jan-2024)

Ref Expression
Hypotheses sgrpidmnd.b 𝐵 = ( Base ‘ 𝐺 )
sgrpidmnd.0 0 = ( 0g𝐺 )
Assertion sgrpidmnd ( ( 𝐺 ∈ Smgrp ∧ ∃ 𝑒𝐵 ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) ) → 𝐺 ∈ Mnd )

Proof

Step Hyp Ref Expression
1 sgrpidmnd.b 𝐵 = ( Base ‘ 𝐺 )
2 sgrpidmnd.0 0 = ( 0g𝐺 )
3 eqid ( +g𝐺 ) = ( +g𝐺 )
4 1 3 2 grpidval 0 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) )
5 4 eqeq2i ( 𝑒 = 0𝑒 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ) )
6 eleq1w ( 𝑦 = 𝑒 → ( 𝑦𝐵𝑒𝐵 ) )
7 oveq1 ( 𝑦 = 𝑒 → ( 𝑦 ( +g𝐺 ) 𝑥 ) = ( 𝑒 ( +g𝐺 ) 𝑥 ) )
8 7 eqeq1d ( 𝑦 = 𝑒 → ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ↔ ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ) )
9 8 ovanraleqv ( 𝑦 = 𝑒 → ( ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ↔ ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
10 6 9 anbi12d ( 𝑦 = 𝑒 → ( ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ↔ ( 𝑒𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) ) )
11 10 iotan0 ( ( 𝑒𝐵𝑒 ≠ ∅ ∧ 𝑒 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ) ) → ( 𝑒𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
12 rsp ( ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
13 11 12 simpl2im ( ( 𝑒𝐵𝑒 ≠ ∅ ∧ 𝑒 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ) ) → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
14 13 3expb ( ( 𝑒𝐵 ∧ ( 𝑒 ≠ ∅ ∧ 𝑒 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ) ) ) → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
15 14 expcom ( ( 𝑒 ≠ ∅ ∧ 𝑒 = ( ℩ 𝑦 ( 𝑦𝐵 ∧ ∀ 𝑥𝐵 ( ( 𝑦 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑦 ) = 𝑥 ) ) ) ) → ( 𝑒𝐵 → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) ) )
16 5 15 sylan2b ( ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) → ( 𝑒𝐵 → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) ) )
17 16 impcom ( ( 𝑒𝐵 ∧ ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) ) → ( 𝑥𝐵 → ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
18 17 ralrimiv ( ( 𝑒𝐵 ∧ ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) ) → ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) )
19 18 ex ( 𝑒𝐵 → ( ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) → ∀ 𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
20 19 reximia ( ∃ 𝑒𝐵 ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) → ∃ 𝑒𝐵𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) )
21 20 anim2i ( ( 𝐺 ∈ Smgrp ∧ ∃ 𝑒𝐵 ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) ) → ( 𝐺 ∈ Smgrp ∧ ∃ 𝑒𝐵𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
22 1 3 ismnddef ( 𝐺 ∈ Mnd ↔ ( 𝐺 ∈ Smgrp ∧ ∃ 𝑒𝐵𝑥𝐵 ( ( 𝑒 ( +g𝐺 ) 𝑥 ) = 𝑥 ∧ ( 𝑥 ( +g𝐺 ) 𝑒 ) = 𝑥 ) ) )
23 21 22 sylibr ( ( 𝐺 ∈ Smgrp ∧ ∃ 𝑒𝐵 ( 𝑒 ≠ ∅ ∧ 𝑒 = 0 ) ) → 𝐺 ∈ Mnd )