This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The predicate "is an associative operation". (Contributed by FL, 1-Nov-2009) (New usage is discouraged.)
| Ref | Expression | ||
|---|---|---|---|
| Hypothesis | isass.1 | |- X = dom dom G |
|
| Assertion | isass | |- ( G e. A -> ( G e. Ass <-> A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | isass.1 | |- X = dom dom G |
|
| 2 | dmeq | |- ( g = G -> dom g = dom G ) |
|
| 3 | 2 | dmeqd | |- ( g = G -> dom dom g = dom dom G ) |
| 4 | 3 | eleq2d | |- ( g = G -> ( x e. dom dom g <-> x e. dom dom G ) ) |
| 5 | 3 | eleq2d | |- ( g = G -> ( y e. dom dom g <-> y e. dom dom G ) ) |
| 6 | 3 | eleq2d | |- ( g = G -> ( z e. dom dom g <-> z e. dom dom G ) ) |
| 7 | 4 5 6 | 3anbi123d | |- ( g = G -> ( ( x e. dom dom g /\ y e. dom dom g /\ z e. dom dom g ) <-> ( x e. dom dom G /\ y e. dom dom G /\ z e. dom dom G ) ) ) |
| 8 | oveq | |- ( g = G -> ( x g y ) = ( x G y ) ) |
|
| 9 | 8 | oveq1d | |- ( g = G -> ( ( x g y ) g z ) = ( ( x G y ) g z ) ) |
| 10 | oveq | |- ( g = G -> ( ( x G y ) g z ) = ( ( x G y ) G z ) ) |
|
| 11 | 9 10 | eqtrd | |- ( g = G -> ( ( x g y ) g z ) = ( ( x G y ) G z ) ) |
| 12 | oveq | |- ( g = G -> ( y g z ) = ( y G z ) ) |
|
| 13 | 12 | oveq2d | |- ( g = G -> ( x g ( y g z ) ) = ( x g ( y G z ) ) ) |
| 14 | oveq | |- ( g = G -> ( x g ( y G z ) ) = ( x G ( y G z ) ) ) |
|
| 15 | 13 14 | eqtrd | |- ( g = G -> ( x g ( y g z ) ) = ( x G ( y G z ) ) ) |
| 16 | 11 15 | eqeq12d | |- ( g = G -> ( ( ( x g y ) g z ) = ( x g ( y g z ) ) <-> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 17 | 7 16 | imbi12d | |- ( g = G -> ( ( ( x e. dom dom g /\ y e. dom dom g /\ z e. dom dom g ) -> ( ( x g y ) g z ) = ( x g ( y g z ) ) ) <-> ( ( x e. dom dom G /\ y e. dom dom G /\ z e. dom dom G ) -> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) ) |
| 18 | 17 | albidv | |- ( g = G -> ( A. z ( ( x e. dom dom g /\ y e. dom dom g /\ z e. dom dom g ) -> ( ( x g y ) g z ) = ( x g ( y g z ) ) ) <-> A. z ( ( x e. dom dom G /\ y e. dom dom G /\ z e. dom dom G ) -> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) ) |
| 19 | 18 | 2albidv | |- ( g = G -> ( A. x A. y A. z ( ( x e. dom dom g /\ y e. dom dom g /\ z e. dom dom g ) -> ( ( x g y ) g z ) = ( x g ( y g z ) ) ) <-> A. x A. y A. z ( ( x e. dom dom G /\ y e. dom dom G /\ z e. dom dom G ) -> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) ) |
| 20 | r3al | |- ( A. x e. dom dom g A. y e. dom dom g A. z e. dom dom g ( ( x g y ) g z ) = ( x g ( y g z ) ) <-> A. x A. y A. z ( ( x e. dom dom g /\ y e. dom dom g /\ z e. dom dom g ) -> ( ( x g y ) g z ) = ( x g ( y g z ) ) ) ) |
|
| 21 | r3al | |- ( A. x e. dom dom G A. y e. dom dom G A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) <-> A. x A. y A. z ( ( x e. dom dom G /\ y e. dom dom G /\ z e. dom dom G ) -> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
|
| 22 | 19 20 21 | 3bitr4g | |- ( g = G -> ( A. x e. dom dom g A. y e. dom dom g A. z e. dom dom g ( ( x g y ) g z ) = ( x g ( y g z ) ) <-> A. x e. dom dom G A. y e. dom dom G A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 23 | 1 | eqcomi | |- dom dom G = X |
| 24 | 23 | a1i | |- ( g = G -> dom dom G = X ) |
| 25 | 24 | raleqdv | |- ( g = G -> ( A. y e. dom dom G A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) <-> A. y e. X A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 26 | 24 25 | raleqbidv | |- ( g = G -> ( A. x e. dom dom G A. y e. dom dom G A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) <-> A. x e. X A. y e. X A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 27 | 24 | raleqdv | |- ( g = G -> ( A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) <-> A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 28 | 27 | 2ralbidv | |- ( g = G -> ( A. x e. X A. y e. X A. z e. dom dom G ( ( x G y ) G z ) = ( x G ( y G z ) ) <-> A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 29 | 22 26 28 | 3bitrd | |- ( g = G -> ( A. x e. dom dom g A. y e. dom dom g A. z e. dom dom g ( ( x g y ) g z ) = ( x g ( y g z ) ) <-> A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |
| 30 | df-ass | |- Ass = { g | A. x e. dom dom g A. y e. dom dom g A. z e. dom dom g ( ( x g y ) g z ) = ( x g ( y g z ) ) } |
|
| 31 | 29 30 | elab2g | |- ( G e. A -> ( G e. Ass <-> A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) |