Metamath Proof Explorer


Theorem drngoi

Description: The properties of a division ring. (Contributed by NM, 4-Apr-2009) (New usage is discouraged.)

Ref Expression
Hypotheses drngi.1 𝐺 = ( 1st𝑅 )
drngi.2 𝐻 = ( 2nd𝑅 )
drngi.3 𝑋 = ran 𝐺
drngi.4 𝑍 = ( GId ‘ 𝐺 )
Assertion drngoi ( 𝑅 ∈ DivRingOps → ( 𝑅 ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )

Proof

Step Hyp Ref Expression
1 drngi.1 𝐺 = ( 1st𝑅 )
2 drngi.2 𝐻 = ( 2nd𝑅 )
3 drngi.3 𝑋 = ran 𝐺
4 drngi.4 𝑍 = ( GId ‘ 𝐺 )
5 opeq1 ( 𝑔 = ( 1st𝑅 ) → ⟨ 𝑔 , ⟩ = ⟨ ( 1st𝑅 ) , ⟩ )
6 5 eleq1d ( 𝑔 = ( 1st𝑅 ) → ( ⟨ 𝑔 , ⟩ ∈ RingOps ↔ ⟨ ( 1st𝑅 ) , ⟩ ∈ RingOps ) )
7 id ( 𝑔 = ( 1st𝑅 ) → 𝑔 = ( 1st𝑅 ) )
8 7 1 eqtr4di ( 𝑔 = ( 1st𝑅 ) → 𝑔 = 𝐺 )
9 8 rneqd ( 𝑔 = ( 1st𝑅 ) → ran 𝑔 = ran 𝐺 )
10 9 3 eqtr4di ( 𝑔 = ( 1st𝑅 ) → ran 𝑔 = 𝑋 )
11 8 fveq2d ( 𝑔 = ( 1st𝑅 ) → ( GId ‘ 𝑔 ) = ( GId ‘ 𝐺 ) )
12 11 4 eqtr4di ( 𝑔 = ( 1st𝑅 ) → ( GId ‘ 𝑔 ) = 𝑍 )
13 12 sneqd ( 𝑔 = ( 1st𝑅 ) → { ( GId ‘ 𝑔 ) } = { 𝑍 } )
14 10 13 difeq12d ( 𝑔 = ( 1st𝑅 ) → ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) = ( 𝑋 ∖ { 𝑍 } ) )
15 14 sqxpeqd ( 𝑔 = ( 1st𝑅 ) → ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) = ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) )
16 15 reseq2d ( 𝑔 = ( 1st𝑅 ) → ( ↾ ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) ) = ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) )
17 16 eleq1d ( 𝑔 = ( 1st𝑅 ) → ( ( ↾ ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) ) ∈ GrpOp ↔ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )
18 6 17 anbi12d ( 𝑔 = ( 1st𝑅 ) → ( ( ⟨ 𝑔 , ⟩ ∈ RingOps ∧ ( ↾ ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) ) ∈ GrpOp ) ↔ ( ⟨ ( 1st𝑅 ) , ⟩ ∈ RingOps ∧ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ) )
19 opeq2 ( = ( 2nd𝑅 ) → ⟨ ( 1st𝑅 ) , ⟩ = ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ )
20 19 eleq1d ( = ( 2nd𝑅 ) → ( ⟨ ( 1st𝑅 ) , ⟩ ∈ RingOps ↔ ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ) )
21 20 anbi1d ( = ( 2nd𝑅 ) → ( ( ⟨ ( 1st𝑅 ) , ⟩ ∈ RingOps ∧ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ↔ ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ) )
22 id ( = ( 2nd𝑅 ) → = ( 2nd𝑅 ) )
23 2 22 eqtr4id ( = ( 2nd𝑅 ) → 𝐻 = )
24 23 reseq1d ( = ( 2nd𝑅 ) → ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) = ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) )
25 24 eleq1d ( = ( 2nd𝑅 ) → ( ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ↔ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )
26 25 anbi2d ( = ( 2nd𝑅 ) → ( ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ↔ ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ) )
27 21 26 bitr4d ( = ( 2nd𝑅 ) → ( ( ⟨ ( 1st𝑅 ) , ⟩ ∈ RingOps ∧ ( ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ↔ ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ) )
28 18 27 elopabi ( 𝑅 ∈ { ⟨ 𝑔 , ⟩ ∣ ( ⟨ 𝑔 , ⟩ ∈ RingOps ∧ ( ↾ ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) ) ∈ GrpOp ) } → ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )
29 df-drngo DivRingOps = { ⟨ 𝑔 , ⟩ ∣ ( ⟨ 𝑔 , ⟩ ∈ RingOps ∧ ( ↾ ( ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) × ( ran 𝑔 ∖ { ( GId ‘ 𝑔 ) } ) ) ) ∈ GrpOp ) }
30 28 29 eleq2s ( 𝑅 ∈ DivRingOps → ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )
31 29 relopabiv Rel DivRingOps
32 1st2nd ( ( Rel DivRingOps ∧ 𝑅 ∈ DivRingOps ) → 𝑅 = ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ )
33 31 32 mpan ( 𝑅 ∈ DivRingOps → 𝑅 = ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ )
34 33 eleq1d ( 𝑅 ∈ DivRingOps → ( 𝑅 ∈ RingOps ↔ ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ) )
35 34 anbi1d ( 𝑅 ∈ DivRingOps → ( ( 𝑅 ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ↔ ( ⟨ ( 1st𝑅 ) , ( 2nd𝑅 ) ⟩ ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) ) )
36 30 35 mpbird ( 𝑅 ∈ DivRingOps → ( 𝑅 ∈ RingOps ∧ ( 𝐻 ↾ ( ( 𝑋 ∖ { 𝑍 } ) × ( 𝑋 ∖ { 𝑍 } ) ) ) ∈ GrpOp ) )