This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The predicate "is a commutative ring". (Contributed by Jeff Madsen, 8-Jun-2010)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | iscring2.1 | |- G = ( 1st ` R ) |
|
| iscring2.2 | |- H = ( 2nd ` R ) |
||
| iscring2.3 | |- X = ran G |
||
| Assertion | iscrngo2 | |- ( R e. CRingOps <-> ( R e. RingOps /\ A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | iscring2.1 | |- G = ( 1st ` R ) |
|
| 2 | iscring2.2 | |- H = ( 2nd ` R ) |
|
| 3 | iscring2.3 | |- X = ran G |
|
| 4 | iscrngo | |- ( R e. CRingOps <-> ( R e. RingOps /\ R e. Com2 ) ) |
|
| 5 | relrngo | |- Rel RingOps |
|
| 6 | 1st2nd | |- ( ( Rel RingOps /\ R e. RingOps ) -> R = <. ( 1st ` R ) , ( 2nd ` R ) >. ) |
|
| 7 | 5 6 | mpan | |- ( R e. RingOps -> R = <. ( 1st ` R ) , ( 2nd ` R ) >. ) |
| 8 | eleq1 | |- ( R = <. ( 1st ` R ) , ( 2nd ` R ) >. -> ( R e. Com2 <-> <. ( 1st ` R ) , ( 2nd ` R ) >. e. Com2 ) ) |
|
| 9 | 1 | rneqi | |- ran G = ran ( 1st ` R ) |
| 10 | 3 9 | eqtri | |- X = ran ( 1st ` R ) |
| 11 | 10 | raleqi | |- ( A. x e. X A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) <-> A. x e. ran ( 1st ` R ) A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) |
| 12 | 2 | oveqi | |- ( x H y ) = ( x ( 2nd ` R ) y ) |
| 13 | 2 | oveqi | |- ( y H x ) = ( y ( 2nd ` R ) x ) |
| 14 | 12 13 | eqeq12i | |- ( ( x H y ) = ( y H x ) <-> ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) |
| 15 | 10 14 | raleqbii | |- ( A. y e. X ( x H y ) = ( y H x ) <-> A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) |
| 16 | 15 | ralbii | |- ( A. x e. X A. y e. X ( x H y ) = ( y H x ) <-> A. x e. X A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) |
| 17 | fvex | |- ( 1st ` R ) e. _V |
|
| 18 | fvex | |- ( 2nd ` R ) e. _V |
|
| 19 | iscom2 | |- ( ( ( 1st ` R ) e. _V /\ ( 2nd ` R ) e. _V ) -> ( <. ( 1st ` R ) , ( 2nd ` R ) >. e. Com2 <-> A. x e. ran ( 1st ` R ) A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) ) |
|
| 20 | 17 18 19 | mp2an | |- ( <. ( 1st ` R ) , ( 2nd ` R ) >. e. Com2 <-> A. x e. ran ( 1st ` R ) A. y e. ran ( 1st ` R ) ( x ( 2nd ` R ) y ) = ( y ( 2nd ` R ) x ) ) |
| 21 | 11 16 20 | 3bitr4ri | |- ( <. ( 1st ` R ) , ( 2nd ` R ) >. e. Com2 <-> A. x e. X A. y e. X ( x H y ) = ( y H x ) ) |
| 22 | 8 21 | bitrdi | |- ( R = <. ( 1st ` R ) , ( 2nd ` R ) >. -> ( R e. Com2 <-> A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) |
| 23 | 7 22 | syl | |- ( R e. RingOps -> ( R e. Com2 <-> A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) |
| 24 | 23 | pm5.32i | |- ( ( R e. RingOps /\ R e. Com2 ) <-> ( R e. RingOps /\ A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) |
| 25 | 4 24 | bitri | |- ( R e. CRingOps <-> ( R e. RingOps /\ A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) |