Step |
Hyp |
Ref |
Expression |
1 |
|
znval.s |
|- S = ( RSpan ` ZZring ) |
2 |
|
znval.u |
|- U = ( ZZring /s ( ZZring ~QG ( S ` { N } ) ) ) |
3 |
|
znval.y |
|- Y = ( Z/nZ ` N ) |
4 |
|
znval.f |
|- F = ( ( ZRHom ` U ) |` W ) |
5 |
|
znval.w |
|- W = if ( N = 0 , ZZ , ( 0 ..^ N ) ) |
6 |
|
znval.l |
|- .<_ = ( ( F o. <_ ) o. `' F ) |
7 |
|
zringring |
|- ZZring e. Ring |
8 |
7
|
a1i |
|- ( n = N -> ZZring e. Ring ) |
9 |
|
ovexd |
|- ( ( n = N /\ z = ZZring ) -> ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) e. _V ) |
10 |
|
id |
|- ( s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) -> s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) |
11 |
|
simpr |
|- ( ( n = N /\ z = ZZring ) -> z = ZZring ) |
12 |
11
|
fveq2d |
|- ( ( n = N /\ z = ZZring ) -> ( RSpan ` z ) = ( RSpan ` ZZring ) ) |
13 |
12 1
|
eqtr4di |
|- ( ( n = N /\ z = ZZring ) -> ( RSpan ` z ) = S ) |
14 |
|
simpl |
|- ( ( n = N /\ z = ZZring ) -> n = N ) |
15 |
14
|
sneqd |
|- ( ( n = N /\ z = ZZring ) -> { n } = { N } ) |
16 |
13 15
|
fveq12d |
|- ( ( n = N /\ z = ZZring ) -> ( ( RSpan ` z ) ` { n } ) = ( S ` { N } ) ) |
17 |
11 16
|
oveq12d |
|- ( ( n = N /\ z = ZZring ) -> ( z ~QG ( ( RSpan ` z ) ` { n } ) ) = ( ZZring ~QG ( S ` { N } ) ) ) |
18 |
11 17
|
oveq12d |
|- ( ( n = N /\ z = ZZring ) -> ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) = ( ZZring /s ( ZZring ~QG ( S ` { N } ) ) ) ) |
19 |
18 2
|
eqtr4di |
|- ( ( n = N /\ z = ZZring ) -> ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) = U ) |
20 |
10 19
|
sylan9eqr |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> s = U ) |
21 |
|
fvex |
|- ( ZRHom ` s ) e. _V |
22 |
21
|
resex |
|- ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) e. _V |
23 |
22
|
a1i |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) e. _V ) |
24 |
|
id |
|- ( f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) -> f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) |
25 |
20
|
fveq2d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( ZRHom ` s ) = ( ZRHom ` U ) ) |
26 |
|
simpll |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> n = N ) |
27 |
26
|
eqeq1d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( n = 0 <-> N = 0 ) ) |
28 |
26
|
oveq2d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( 0 ..^ n ) = ( 0 ..^ N ) ) |
29 |
27 28
|
ifbieq2d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> if ( n = 0 , ZZ , ( 0 ..^ n ) ) = if ( N = 0 , ZZ , ( 0 ..^ N ) ) ) |
30 |
29 5
|
eqtr4di |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> if ( n = 0 , ZZ , ( 0 ..^ n ) ) = W ) |
31 |
25 30
|
reseq12d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) = ( ( ZRHom ` U ) |` W ) ) |
32 |
31 4
|
eqtr4di |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) = F ) |
33 |
24 32
|
sylan9eqr |
|- ( ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) /\ f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) -> f = F ) |
34 |
33
|
coeq1d |
|- ( ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) /\ f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) -> ( f o. <_ ) = ( F o. <_ ) ) |
35 |
33
|
cnveqd |
|- ( ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) /\ f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) -> `' f = `' F ) |
36 |
34 35
|
coeq12d |
|- ( ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) /\ f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) -> ( ( f o. <_ ) o. `' f ) = ( ( F o. <_ ) o. `' F ) ) |
37 |
36 6
|
eqtr4di |
|- ( ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) /\ f = ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) ) -> ( ( f o. <_ ) o. `' f ) = .<_ ) |
38 |
23 37
|
csbied |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) = .<_ ) |
39 |
38
|
opeq2d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) >. = <. ( le ` ndx ) , .<_ >. ) |
40 |
20 39
|
oveq12d |
|- ( ( ( n = N /\ z = ZZring ) /\ s = ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) ) -> ( s sSet <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) >. ) = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) |
41 |
9 40
|
csbied |
|- ( ( n = N /\ z = ZZring ) -> [_ ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) / s ]_ ( s sSet <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) >. ) = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) |
42 |
8 41
|
csbied |
|- ( n = N -> [_ ZZring / z ]_ [_ ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) / s ]_ ( s sSet <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) >. ) = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) |
43 |
|
df-zn |
|- Z/nZ = ( n e. NN0 |-> [_ ZZring / z ]_ [_ ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) / s ]_ ( s sSet <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |` if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_ ( ( f o. <_ ) o. `' f ) >. ) ) |
44 |
|
ovex |
|- ( U sSet <. ( le ` ndx ) , .<_ >. ) e. _V |
45 |
42 43 44
|
fvmpt |
|- ( N e. NN0 -> ( Z/nZ ` N ) = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) |
46 |
3 45
|
eqtrid |
|- ( N e. NN0 -> Y = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) |