Step |
Hyp |
Ref |
Expression |
1 |
|
znval.s |
⊢ 𝑆 = ( RSpan ‘ ℤring ) |
2 |
|
znval.u |
⊢ 𝑈 = ( ℤring /s ( ℤring ~QG ( 𝑆 ‘ { 𝑁 } ) ) ) |
3 |
|
znval.y |
⊢ 𝑌 = ( ℤ/nℤ ‘ 𝑁 ) |
4 |
|
znval.f |
⊢ 𝐹 = ( ( ℤRHom ‘ 𝑈 ) ↾ 𝑊 ) |
5 |
|
znval.w |
⊢ 𝑊 = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) |
6 |
|
znval.l |
⊢ ≤ = ( ( 𝐹 ∘ ≤ ) ∘ ◡ 𝐹 ) |
7 |
|
zringring |
⊢ ℤring ∈ Ring |
8 |
7
|
a1i |
⊢ ( 𝑛 = 𝑁 → ℤring ∈ Ring ) |
9 |
|
ovexd |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ∈ V ) |
10 |
|
id |
⊢ ( 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) → 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) |
11 |
|
simpr |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → 𝑧 = ℤring ) |
12 |
11
|
fveq2d |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( RSpan ‘ 𝑧 ) = ( RSpan ‘ ℤring ) ) |
13 |
12 1
|
eqtr4di |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( RSpan ‘ 𝑧 ) = 𝑆 ) |
14 |
|
simpl |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → 𝑛 = 𝑁 ) |
15 |
14
|
sneqd |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → { 𝑛 } = { 𝑁 } ) |
16 |
13 15
|
fveq12d |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) = ( 𝑆 ‘ { 𝑁 } ) ) |
17 |
11 16
|
oveq12d |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) = ( ℤring ~QG ( 𝑆 ‘ { 𝑁 } ) ) ) |
18 |
11 17
|
oveq12d |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) = ( ℤring /s ( ℤring ~QG ( 𝑆 ‘ { 𝑁 } ) ) ) ) |
19 |
18 2
|
eqtr4di |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) = 𝑈 ) |
20 |
10 19
|
sylan9eqr |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → 𝑠 = 𝑈 ) |
21 |
|
fvex |
⊢ ( ℤRHom ‘ 𝑠 ) ∈ V |
22 |
21
|
resex |
⊢ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ∈ V |
23 |
22
|
a1i |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ∈ V ) |
24 |
|
id |
⊢ ( 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) → 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) |
25 |
20
|
fveq2d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( ℤRHom ‘ 𝑠 ) = ( ℤRHom ‘ 𝑈 ) ) |
26 |
|
simpll |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → 𝑛 = 𝑁 ) |
27 |
26
|
eqeq1d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( 𝑛 = 0 ↔ 𝑁 = 0 ) ) |
28 |
26
|
oveq2d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( 0 ..^ 𝑛 ) = ( 0 ..^ 𝑁 ) ) |
29 |
27 28
|
ifbieq2d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) ) |
30 |
29 5
|
eqtr4di |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) = 𝑊 ) |
31 |
25 30
|
reseq12d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) = ( ( ℤRHom ‘ 𝑈 ) ↾ 𝑊 ) ) |
32 |
31 4
|
eqtr4di |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) = 𝐹 ) |
33 |
24 32
|
sylan9eqr |
⊢ ( ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) ∧ 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) → 𝑓 = 𝐹 ) |
34 |
33
|
coeq1d |
⊢ ( ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) ∧ 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) → ( 𝑓 ∘ ≤ ) = ( 𝐹 ∘ ≤ ) ) |
35 |
33
|
cnveqd |
⊢ ( ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) ∧ 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) → ◡ 𝑓 = ◡ 𝐹 ) |
36 |
34 35
|
coeq12d |
⊢ ( ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) ∧ 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) → ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) = ( ( 𝐹 ∘ ≤ ) ∘ ◡ 𝐹 ) ) |
37 |
36 6
|
eqtr4di |
⊢ ( ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) ∧ 𝑓 = ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) ) → ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) = ≤ ) |
38 |
23 37
|
csbied |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) = ≤ ) |
39 |
38
|
opeq2d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → 〈 ( le ‘ ndx ) , ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) 〉 = 〈 ( le ‘ ndx ) , ≤ 〉 ) |
40 |
20 39
|
oveq12d |
⊢ ( ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) ∧ 𝑠 = ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) ) → ( 𝑠 sSet 〈 ( le ‘ ndx ) , ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) 〉 ) = ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ) |
41 |
9 40
|
csbied |
⊢ ( ( 𝑛 = 𝑁 ∧ 𝑧 = ℤring ) → ⦋ ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) / 𝑠 ⦌ ( 𝑠 sSet 〈 ( le ‘ ndx ) , ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) 〉 ) = ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ) |
42 |
8 41
|
csbied |
⊢ ( 𝑛 = 𝑁 → ⦋ ℤring / 𝑧 ⦌ ⦋ ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) / 𝑠 ⦌ ( 𝑠 sSet 〈 ( le ‘ ndx ) , ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) 〉 ) = ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ) |
43 |
|
df-zn |
⊢ ℤ/nℤ = ( 𝑛 ∈ ℕ0 ↦ ⦋ ℤring / 𝑧 ⦌ ⦋ ( 𝑧 /s ( 𝑧 ~QG ( ( RSpan ‘ 𝑧 ) ‘ { 𝑛 } ) ) ) / 𝑠 ⦌ ( 𝑠 sSet 〈 ( le ‘ ndx ) , ⦋ ( ( ℤRHom ‘ 𝑠 ) ↾ if ( 𝑛 = 0 , ℤ , ( 0 ..^ 𝑛 ) ) ) / 𝑓 ⦌ ( ( 𝑓 ∘ ≤ ) ∘ ◡ 𝑓 ) 〉 ) ) |
44 |
|
ovex |
⊢ ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ∈ V |
45 |
42 43 44
|
fvmpt |
⊢ ( 𝑁 ∈ ℕ0 → ( ℤ/nℤ ‘ 𝑁 ) = ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ) |
46 |
3 45
|
eqtrid |
⊢ ( 𝑁 ∈ ℕ0 → 𝑌 = ( 𝑈 sSet 〈 ( le ‘ ndx ) , ≤ 〉 ) ) |