Metamath Proof Explorer


Theorem ismnd

Description: The predicate "is a monoid". This is the definig theorem of a monoid by showing that a set is a monoid if and only if it is a set equipped with a closed, everywhere defined internal operation (so, a magma, see mndcl ), whose operation is associative (so, a semigroup, see also mndass ) and has a two-sided neutral element (see mndid ). (Contributed by Mario Carneiro, 6-Jan-2015) (Revised by AV, 1-Feb-2020)

Ref Expression
Hypotheses ismnd.b B = Base G
ismnd.p + ˙ = + G
Assertion ismnd G Mnd a B b B a + ˙ b B c B a + ˙ b + ˙ c = a + ˙ b + ˙ c e B a B e + ˙ a = a a + ˙ e = a

Proof

Step Hyp Ref Expression
1 ismnd.b B = Base G
2 ismnd.p + ˙ = + G
3 1 2 ismnddef Could not format ( G e. Mnd <-> ( G e. Smgrp /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) : No typesetting found for |- ( G e. Mnd <-> ( G e. Smgrp /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) with typecode |-
4 rexn0 e B a B e + ˙ a = a a + ˙ e = a B
5 fvprc ¬ G V Base G =
6 1 5 syl5eq ¬ G V B =
7 6 necon1ai B G V
8 1 2 issgrpv Could not format ( G e. _V -> ( G e. Smgrp <-> A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) ) ) : No typesetting found for |- ( G e. _V -> ( G e. Smgrp <-> A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) ) ) with typecode |-
9 4 7 8 3syl Could not format ( E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) -> ( G e. Smgrp <-> A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) ) ) : No typesetting found for |- ( E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) -> ( G e. Smgrp <-> A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) ) ) with typecode |-
10 9 pm5.32ri Could not format ( ( G e. Smgrp /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) <-> ( A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) : No typesetting found for |- ( ( G e. Smgrp /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) <-> ( A. a e. B A. b e. B ( ( a .+ b ) e. B /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) ) /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) with typecode |-
11 3 10 bitri G Mnd a B b B a + ˙ b B c B a + ˙ b + ˙ c = a + ˙ b + ˙ c e B a B e + ˙ a = a a + ˙ e = a