Step |
Hyp |
Ref |
Expression |
1 |
|
frlmdim.f |
|- F = ( R freeLMod I ) |
2 |
1
|
frlmlvec |
|- ( ( R e. DivRing /\ I e. V ) -> F e. LVec ) |
3 |
|
drngring |
|- ( R e. DivRing -> R e. Ring ) |
4 |
|
eqid |
|- ( R unitVec I ) = ( R unitVec I ) |
5 |
|
eqid |
|- ( LBasis ` F ) = ( LBasis ` F ) |
6 |
1 4 5
|
frlmlbs |
|- ( ( R e. Ring /\ I e. V ) -> ran ( R unitVec I ) e. ( LBasis ` F ) ) |
7 |
3 6
|
sylan |
|- ( ( R e. DivRing /\ I e. V ) -> ran ( R unitVec I ) e. ( LBasis ` F ) ) |
8 |
5
|
dimval |
|- ( ( F e. LVec /\ ran ( R unitVec I ) e. ( LBasis ` F ) ) -> ( dim ` F ) = ( # ` ran ( R unitVec I ) ) ) |
9 |
2 7 8
|
syl2anc |
|- ( ( R e. DivRing /\ I e. V ) -> ( dim ` F ) = ( # ` ran ( R unitVec I ) ) ) |
10 |
|
simpr |
|- ( ( R e. DivRing /\ I e. V ) -> I e. V ) |
11 |
|
drngnzr |
|- ( R e. DivRing -> R e. NzRing ) |
12 |
|
eqid |
|- ( Base ` F ) = ( Base ` F ) |
13 |
4 1 12
|
uvcf1 |
|- ( ( R e. NzRing /\ I e. V ) -> ( R unitVec I ) : I -1-1-> ( Base ` F ) ) |
14 |
11 13
|
sylan |
|- ( ( R e. DivRing /\ I e. V ) -> ( R unitVec I ) : I -1-1-> ( Base ` F ) ) |
15 |
|
hashf1rn |
|- ( ( I e. V /\ ( R unitVec I ) : I -1-1-> ( Base ` F ) ) -> ( # ` ( R unitVec I ) ) = ( # ` ran ( R unitVec I ) ) ) |
16 |
10 14 15
|
syl2anc |
|- ( ( R e. DivRing /\ I e. V ) -> ( # ` ( R unitVec I ) ) = ( # ` ran ( R unitVec I ) ) ) |
17 |
|
mptexg |
|- ( I e. V -> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) e. _V ) |
18 |
17
|
ad2antlr |
|- ( ( ( R e. DivRing /\ I e. V ) /\ j e. I ) -> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) e. _V ) |
19 |
18
|
ralrimiva |
|- ( ( R e. DivRing /\ I e. V ) -> A. j e. I ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) e. _V ) |
20 |
|
eqid |
|- ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) = ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) |
21 |
20
|
fnmpt |
|- ( A. j e. I ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) e. _V -> ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) Fn I ) |
22 |
19 21
|
syl |
|- ( ( R e. DivRing /\ I e. V ) -> ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) Fn I ) |
23 |
|
eqid |
|- ( 1r ` R ) = ( 1r ` R ) |
24 |
|
eqid |
|- ( 0g ` R ) = ( 0g ` R ) |
25 |
4 23 24
|
uvcfval |
|- ( ( R e. DivRing /\ I e. V ) -> ( R unitVec I ) = ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) ) |
26 |
25
|
fneq1d |
|- ( ( R e. DivRing /\ I e. V ) -> ( ( R unitVec I ) Fn I <-> ( j e. I |-> ( k e. I |-> if ( k = j , ( 1r ` R ) , ( 0g ` R ) ) ) ) Fn I ) ) |
27 |
22 26
|
mpbird |
|- ( ( R e. DivRing /\ I e. V ) -> ( R unitVec I ) Fn I ) |
28 |
|
hashfn |
|- ( ( R unitVec I ) Fn I -> ( # ` ( R unitVec I ) ) = ( # ` I ) ) |
29 |
27 28
|
syl |
|- ( ( R e. DivRing /\ I e. V ) -> ( # ` ( R unitVec I ) ) = ( # ` I ) ) |
30 |
9 16 29
|
3eqtr2d |
|- ( ( R e. DivRing /\ I e. V ) -> ( dim ` F ) = ( # ` I ) ) |