This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Determine if a ring is a field based on its ideals. (Contributed by Jeff Madsen, 10-Jun-2010)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | isfldidl.1 | |- G = ( 1st ` K ) |
|
| isfldidl.2 | |- H = ( 2nd ` K ) |
||
| isfldidl.3 | |- X = ran G |
||
| isfldidl.4 | |- Z = ( GId ` G ) |
||
| isfldidl.5 | |- U = ( GId ` H ) |
||
| Assertion | isfldidl | |- ( K e. Fld <-> ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | isfldidl.1 | |- G = ( 1st ` K ) |
|
| 2 | isfldidl.2 | |- H = ( 2nd ` K ) |
|
| 3 | isfldidl.3 | |- X = ran G |
|
| 4 | isfldidl.4 | |- Z = ( GId ` G ) |
|
| 5 | isfldidl.5 | |- U = ( GId ` H ) |
|
| 6 | fldcrngo | |- ( K e. Fld -> K e. CRingOps ) |
|
| 7 | flddivrng | |- ( K e. Fld -> K e. DivRingOps ) |
|
| 8 | 1 2 3 4 5 | dvrunz | |- ( K e. DivRingOps -> U =/= Z ) |
| 9 | 7 8 | syl | |- ( K e. Fld -> U =/= Z ) |
| 10 | 1 2 3 4 | divrngidl | |- ( K e. DivRingOps -> ( Idl ` K ) = { { Z } , X } ) |
| 11 | 7 10 | syl | |- ( K e. Fld -> ( Idl ` K ) = { { Z } , X } ) |
| 12 | 6 9 11 | 3jca | |- ( K e. Fld -> ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) ) |
| 13 | crngorngo | |- ( K e. CRingOps -> K e. RingOps ) |
|
| 14 | 13 | 3ad2ant1 | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> K e. RingOps ) |
| 15 | simp2 | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> U =/= Z ) |
|
| 16 | 1 | rneqi | |- ran G = ran ( 1st ` K ) |
| 17 | 3 16 | eqtri | |- X = ran ( 1st ` K ) |
| 18 | 17 2 5 | rngo1cl | |- ( K e. RingOps -> U e. X ) |
| 19 | 13 18 | syl | |- ( K e. CRingOps -> U e. X ) |
| 20 | 19 | ad2antrr | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> U e. X ) |
| 21 | eldif | |- ( x e. ( X \ { Z } ) <-> ( x e. X /\ -. x e. { Z } ) ) |
|
| 22 | snssi | |- ( x e. X -> { x } C_ X ) |
|
| 23 | 1 3 | igenss | |- ( ( K e. RingOps /\ { x } C_ X ) -> { x } C_ ( K IdlGen { x } ) ) |
| 24 | 22 23 | sylan2 | |- ( ( K e. RingOps /\ x e. X ) -> { x } C_ ( K IdlGen { x } ) ) |
| 25 | vex | |- x e. _V |
|
| 26 | 25 | snss | |- ( x e. ( K IdlGen { x } ) <-> { x } C_ ( K IdlGen { x } ) ) |
| 27 | 26 | biimpri | |- ( { x } C_ ( K IdlGen { x } ) -> x e. ( K IdlGen { x } ) ) |
| 28 | eleq2 | |- ( ( K IdlGen { x } ) = { Z } -> ( x e. ( K IdlGen { x } ) <-> x e. { Z } ) ) |
|
| 29 | 27 28 | syl5ibcom | |- ( { x } C_ ( K IdlGen { x } ) -> ( ( K IdlGen { x } ) = { Z } -> x e. { Z } ) ) |
| 30 | 29 | con3dimp | |- ( ( { x } C_ ( K IdlGen { x } ) /\ -. x e. { Z } ) -> -. ( K IdlGen { x } ) = { Z } ) |
| 31 | 24 30 | sylan | |- ( ( ( K e. RingOps /\ x e. X ) /\ -. x e. { Z } ) -> -. ( K IdlGen { x } ) = { Z } ) |
| 32 | 31 | anasss | |- ( ( K e. RingOps /\ ( x e. X /\ -. x e. { Z } ) ) -> -. ( K IdlGen { x } ) = { Z } ) |
| 33 | 21 32 | sylan2b | |- ( ( K e. RingOps /\ x e. ( X \ { Z } ) ) -> -. ( K IdlGen { x } ) = { Z } ) |
| 34 | 33 | adantlr | |- ( ( ( K e. RingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> -. ( K IdlGen { x } ) = { Z } ) |
| 35 | eldifi | |- ( x e. ( X \ { Z } ) -> x e. X ) |
|
| 36 | 35 | snssd | |- ( x e. ( X \ { Z } ) -> { x } C_ X ) |
| 37 | 1 3 | igenidl | |- ( ( K e. RingOps /\ { x } C_ X ) -> ( K IdlGen { x } ) e. ( Idl ` K ) ) |
| 38 | 36 37 | sylan2 | |- ( ( K e. RingOps /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) e. ( Idl ` K ) ) |
| 39 | eleq2 | |- ( ( Idl ` K ) = { { Z } , X } -> ( ( K IdlGen { x } ) e. ( Idl ` K ) <-> ( K IdlGen { x } ) e. { { Z } , X } ) ) |
|
| 40 | 38 39 | syl5ibcom | |- ( ( K e. RingOps /\ x e. ( X \ { Z } ) ) -> ( ( Idl ` K ) = { { Z } , X } -> ( K IdlGen { x } ) e. { { Z } , X } ) ) |
| 41 | 40 | imp | |- ( ( ( K e. RingOps /\ x e. ( X \ { Z } ) ) /\ ( Idl ` K ) = { { Z } , X } ) -> ( K IdlGen { x } ) e. { { Z } , X } ) |
| 42 | 41 | an32s | |- ( ( ( K e. RingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) e. { { Z } , X } ) |
| 43 | ovex | |- ( K IdlGen { x } ) e. _V |
|
| 44 | 43 | elpr | |- ( ( K IdlGen { x } ) e. { { Z } , X } <-> ( ( K IdlGen { x } ) = { Z } \/ ( K IdlGen { x } ) = X ) ) |
| 45 | 42 44 | sylib | |- ( ( ( K e. RingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( ( K IdlGen { x } ) = { Z } \/ ( K IdlGen { x } ) = X ) ) |
| 46 | 45 | ord | |- ( ( ( K e. RingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( -. ( K IdlGen { x } ) = { Z } -> ( K IdlGen { x } ) = X ) ) |
| 47 | 34 46 | mpd | |- ( ( ( K e. RingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) = X ) |
| 48 | 13 47 | sylanl1 | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) = X ) |
| 49 | 1 2 3 | prnc | |- ( ( K e. CRingOps /\ x e. X ) -> ( K IdlGen { x } ) = { z e. X | E. y e. X z = ( y H x ) } ) |
| 50 | 35 49 | sylan2 | |- ( ( K e. CRingOps /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) = { z e. X | E. y e. X z = ( y H x ) } ) |
| 51 | 50 | adantlr | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( K IdlGen { x } ) = { z e. X | E. y e. X z = ( y H x ) } ) |
| 52 | 48 51 | eqtr3d | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> X = { z e. X | E. y e. X z = ( y H x ) } ) |
| 53 | 20 52 | eleqtrd | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> U e. { z e. X | E. y e. X z = ( y H x ) } ) |
| 54 | eqeq1 | |- ( z = U -> ( z = ( y H x ) <-> U = ( y H x ) ) ) |
|
| 55 | 54 | rexbidv | |- ( z = U -> ( E. y e. X z = ( y H x ) <-> E. y e. X U = ( y H x ) ) ) |
| 56 | 55 | elrab | |- ( U e. { z e. X | E. y e. X z = ( y H x ) } <-> ( U e. X /\ E. y e. X U = ( y H x ) ) ) |
| 57 | 53 56 | sylib | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> ( U e. X /\ E. y e. X U = ( y H x ) ) ) |
| 58 | 57 | simprd | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> E. y e. X U = ( y H x ) ) |
| 59 | eqcom | |- ( ( y H x ) = U <-> U = ( y H x ) ) |
|
| 60 | 59 | rexbii | |- ( E. y e. X ( y H x ) = U <-> E. y e. X U = ( y H x ) ) |
| 61 | 58 60 | sylibr | |- ( ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) /\ x e. ( X \ { Z } ) ) -> E. y e. X ( y H x ) = U ) |
| 62 | 61 | ralrimiva | |- ( ( K e. CRingOps /\ ( Idl ` K ) = { { Z } , X } ) -> A. x e. ( X \ { Z } ) E. y e. X ( y H x ) = U ) |
| 63 | 62 | 3adant2 | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> A. x e. ( X \ { Z } ) E. y e. X ( y H x ) = U ) |
| 64 | 14 15 63 | jca32 | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> ( K e. RingOps /\ ( U =/= Z /\ A. x e. ( X \ { Z } ) E. y e. X ( y H x ) = U ) ) ) |
| 65 | 1 2 4 3 5 | isdrngo3 | |- ( K e. DivRingOps <-> ( K e. RingOps /\ ( U =/= Z /\ A. x e. ( X \ { Z } ) E. y e. X ( y H x ) = U ) ) ) |
| 66 | 64 65 | sylibr | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> K e. DivRingOps ) |
| 67 | simp1 | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> K e. CRingOps ) |
|
| 68 | isfld2 | |- ( K e. Fld <-> ( K e. DivRingOps /\ K e. CRingOps ) ) |
|
| 69 | 66 67 68 | sylanbrc | |- ( ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) -> K e. Fld ) |
| 70 | 12 69 | impbii | |- ( K e. Fld <-> ( K e. CRingOps /\ U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) ) |