Metamath Proof Explorer


Theorem iscmn

Description: The predicate "is a commutative monoid." (Contributed by Mario Carneiro, 6-Jan-2015)

Ref Expression
Hypotheses iscmn.b
|- B = ( Base ` G )
iscmn.p
|- .+ = ( +g ` G )
Assertion iscmn
|- ( G e. CMnd <-> ( G e. Mnd /\ A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) )

Proof

Step Hyp Ref Expression
1 iscmn.b
 |-  B = ( Base ` G )
2 iscmn.p
 |-  .+ = ( +g ` G )
3 fveq2
 |-  ( g = G -> ( Base ` g ) = ( Base ` G ) )
4 3 1 eqtr4di
 |-  ( g = G -> ( Base ` g ) = B )
5 raleq
 |-  ( ( Base ` g ) = B -> ( A. y e. ( Base ` g ) ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> A. y e. B ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) ) )
6 5 raleqbi1dv
 |-  ( ( Base ` g ) = B -> ( A. x e. ( Base ` g ) A. y e. ( Base ` g ) ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> A. x e. B A. y e. B ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) ) )
7 4 6 syl
 |-  ( g = G -> ( A. x e. ( Base ` g ) A. y e. ( Base ` g ) ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> A. x e. B A. y e. B ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) ) )
8 fveq2
 |-  ( g = G -> ( +g ` g ) = ( +g ` G ) )
9 8 2 eqtr4di
 |-  ( g = G -> ( +g ` g ) = .+ )
10 9 oveqd
 |-  ( g = G -> ( x ( +g ` g ) y ) = ( x .+ y ) )
11 9 oveqd
 |-  ( g = G -> ( y ( +g ` g ) x ) = ( y .+ x ) )
12 10 11 eqeq12d
 |-  ( g = G -> ( ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> ( x .+ y ) = ( y .+ x ) ) )
13 12 2ralbidv
 |-  ( g = G -> ( A. x e. B A. y e. B ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) )
14 7 13 bitrd
 |-  ( g = G -> ( A. x e. ( Base ` g ) A. y e. ( Base ` g ) ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) <-> A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) )
15 df-cmn
 |-  CMnd = { g e. Mnd | A. x e. ( Base ` g ) A. y e. ( Base ` g ) ( x ( +g ` g ) y ) = ( y ( +g ` g ) x ) }
16 14 15 elrab2
 |-  ( G e. CMnd <-> ( G e. Mnd /\ A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) )