Step |
Hyp |
Ref |
Expression |
1 |
|
prodmo.1 |
|- F = ( k e. ZZ |-> if ( k e. A , B , 1 ) ) |
2 |
|
prodmo.2 |
|- ( ( ph /\ k e. A ) -> B e. CC ) |
3 |
|
prodmo.3 |
|- G = ( j e. NN |-> [_ ( f ` j ) / k ]_ B ) |
4 |
|
prodmolem2.4 |
|- H = ( j e. NN |-> [_ ( K ` j ) / k ]_ B ) |
5 |
|
prodmolem2.5 |
|- ( ph -> N e. NN ) |
6 |
|
prodmolem2.6 |
|- ( ph -> M e. ZZ ) |
7 |
|
prodmolem2.7 |
|- ( ph -> A C_ ( ZZ>= ` M ) ) |
8 |
|
prodmolem2.8 |
|- ( ph -> f : ( 1 ... N ) -1-1-onto-> A ) |
9 |
|
prodmolem2.9 |
|- ( ph -> K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) ) |
10 |
|
fzfid |
|- ( ph -> ( 1 ... N ) e. Fin ) |
11 |
10 8
|
hasheqf1od |
|- ( ph -> ( # ` ( 1 ... N ) ) = ( # ` A ) ) |
12 |
5
|
nnnn0d |
|- ( ph -> N e. NN0 ) |
13 |
|
hashfz1 |
|- ( N e. NN0 -> ( # ` ( 1 ... N ) ) = N ) |
14 |
12 13
|
syl |
|- ( ph -> ( # ` ( 1 ... N ) ) = N ) |
15 |
11 14
|
eqtr3d |
|- ( ph -> ( # ` A ) = N ) |
16 |
15
|
oveq2d |
|- ( ph -> ( 1 ... ( # ` A ) ) = ( 1 ... N ) ) |
17 |
|
isoeq4 |
|- ( ( 1 ... ( # ` A ) ) = ( 1 ... N ) -> ( K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) <-> K Isom < , < ( ( 1 ... N ) , A ) ) ) |
18 |
16 17
|
syl |
|- ( ph -> ( K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) <-> K Isom < , < ( ( 1 ... N ) , A ) ) ) |
19 |
9 18
|
mpbid |
|- ( ph -> K Isom < , < ( ( 1 ... N ) , A ) ) |
20 |
|
isof1o |
|- ( K Isom < , < ( ( 1 ... N ) , A ) -> K : ( 1 ... N ) -1-1-onto-> A ) |
21 |
|
f1of |
|- ( K : ( 1 ... N ) -1-1-onto-> A -> K : ( 1 ... N ) --> A ) |
22 |
19 20 21
|
3syl |
|- ( ph -> K : ( 1 ... N ) --> A ) |
23 |
|
nnuz |
|- NN = ( ZZ>= ` 1 ) |
24 |
5 23
|
eleqtrdi |
|- ( ph -> N e. ( ZZ>= ` 1 ) ) |
25 |
|
eluzfz2 |
|- ( N e. ( ZZ>= ` 1 ) -> N e. ( 1 ... N ) ) |
26 |
24 25
|
syl |
|- ( ph -> N e. ( 1 ... N ) ) |
27 |
22 26
|
ffvelrnd |
|- ( ph -> ( K ` N ) e. A ) |
28 |
7 27
|
sseldd |
|- ( ph -> ( K ` N ) e. ( ZZ>= ` M ) ) |
29 |
7
|
sselda |
|- ( ( ph /\ j e. A ) -> j e. ( ZZ>= ` M ) ) |
30 |
19 20
|
syl |
|- ( ph -> K : ( 1 ... N ) -1-1-onto-> A ) |
31 |
|
f1ocnvfv2 |
|- ( ( K : ( 1 ... N ) -1-1-onto-> A /\ j e. A ) -> ( K ` ( `' K ` j ) ) = j ) |
32 |
30 31
|
sylan |
|- ( ( ph /\ j e. A ) -> ( K ` ( `' K ` j ) ) = j ) |
33 |
|
f1ocnv |
|- ( K : ( 1 ... N ) -1-1-onto-> A -> `' K : A -1-1-onto-> ( 1 ... N ) ) |
34 |
|
f1of |
|- ( `' K : A -1-1-onto-> ( 1 ... N ) -> `' K : A --> ( 1 ... N ) ) |
35 |
30 33 34
|
3syl |
|- ( ph -> `' K : A --> ( 1 ... N ) ) |
36 |
35
|
ffvelrnda |
|- ( ( ph /\ j e. A ) -> ( `' K ` j ) e. ( 1 ... N ) ) |
37 |
|
elfzle2 |
|- ( ( `' K ` j ) e. ( 1 ... N ) -> ( `' K ` j ) <_ N ) |
38 |
36 37
|
syl |
|- ( ( ph /\ j e. A ) -> ( `' K ` j ) <_ N ) |
39 |
19
|
adantr |
|- ( ( ph /\ j e. A ) -> K Isom < , < ( ( 1 ... N ) , A ) ) |
40 |
|
fzssuz |
|- ( 1 ... N ) C_ ( ZZ>= ` 1 ) |
41 |
|
uzssz |
|- ( ZZ>= ` 1 ) C_ ZZ |
42 |
|
zssre |
|- ZZ C_ RR |
43 |
41 42
|
sstri |
|- ( ZZ>= ` 1 ) C_ RR |
44 |
40 43
|
sstri |
|- ( 1 ... N ) C_ RR |
45 |
|
ressxr |
|- RR C_ RR* |
46 |
44 45
|
sstri |
|- ( 1 ... N ) C_ RR* |
47 |
46
|
a1i |
|- ( ( ph /\ j e. A ) -> ( 1 ... N ) C_ RR* ) |
48 |
|
uzssz |
|- ( ZZ>= ` M ) C_ ZZ |
49 |
48 42
|
sstri |
|- ( ZZ>= ` M ) C_ RR |
50 |
49 45
|
sstri |
|- ( ZZ>= ` M ) C_ RR* |
51 |
7 50
|
sstrdi |
|- ( ph -> A C_ RR* ) |
52 |
51
|
adantr |
|- ( ( ph /\ j e. A ) -> A C_ RR* ) |
53 |
26
|
adantr |
|- ( ( ph /\ j e. A ) -> N e. ( 1 ... N ) ) |
54 |
|
leisorel |
|- ( ( K Isom < , < ( ( 1 ... N ) , A ) /\ ( ( 1 ... N ) C_ RR* /\ A C_ RR* ) /\ ( ( `' K ` j ) e. ( 1 ... N ) /\ N e. ( 1 ... N ) ) ) -> ( ( `' K ` j ) <_ N <-> ( K ` ( `' K ` j ) ) <_ ( K ` N ) ) ) |
55 |
39 47 52 36 53 54
|
syl122anc |
|- ( ( ph /\ j e. A ) -> ( ( `' K ` j ) <_ N <-> ( K ` ( `' K ` j ) ) <_ ( K ` N ) ) ) |
56 |
38 55
|
mpbid |
|- ( ( ph /\ j e. A ) -> ( K ` ( `' K ` j ) ) <_ ( K ` N ) ) |
57 |
32 56
|
eqbrtrrd |
|- ( ( ph /\ j e. A ) -> j <_ ( K ` N ) ) |
58 |
7 48
|
sstrdi |
|- ( ph -> A C_ ZZ ) |
59 |
58
|
sselda |
|- ( ( ph /\ j e. A ) -> j e. ZZ ) |
60 |
|
eluzelz |
|- ( ( K ` N ) e. ( ZZ>= ` M ) -> ( K ` N ) e. ZZ ) |
61 |
28 60
|
syl |
|- ( ph -> ( K ` N ) e. ZZ ) |
62 |
61
|
adantr |
|- ( ( ph /\ j e. A ) -> ( K ` N ) e. ZZ ) |
63 |
|
eluz |
|- ( ( j e. ZZ /\ ( K ` N ) e. ZZ ) -> ( ( K ` N ) e. ( ZZ>= ` j ) <-> j <_ ( K ` N ) ) ) |
64 |
59 62 63
|
syl2anc |
|- ( ( ph /\ j e. A ) -> ( ( K ` N ) e. ( ZZ>= ` j ) <-> j <_ ( K ` N ) ) ) |
65 |
57 64
|
mpbird |
|- ( ( ph /\ j e. A ) -> ( K ` N ) e. ( ZZ>= ` j ) ) |
66 |
|
elfzuzb |
|- ( j e. ( M ... ( K ` N ) ) <-> ( j e. ( ZZ>= ` M ) /\ ( K ` N ) e. ( ZZ>= ` j ) ) ) |
67 |
29 65 66
|
sylanbrc |
|- ( ( ph /\ j e. A ) -> j e. ( M ... ( K ` N ) ) ) |
68 |
67
|
ex |
|- ( ph -> ( j e. A -> j e. ( M ... ( K ` N ) ) ) ) |
69 |
68
|
ssrdv |
|- ( ph -> A C_ ( M ... ( K ` N ) ) ) |
70 |
1 2 28 69
|
fprodcvg |
|- ( ph -> seq M ( x. , F ) ~~> ( seq M ( x. , F ) ` ( K ` N ) ) ) |
71 |
|
mulid2 |
|- ( m e. CC -> ( 1 x. m ) = m ) |
72 |
71
|
adantl |
|- ( ( ph /\ m e. CC ) -> ( 1 x. m ) = m ) |
73 |
|
mulid1 |
|- ( m e. CC -> ( m x. 1 ) = m ) |
74 |
73
|
adantl |
|- ( ( ph /\ m e. CC ) -> ( m x. 1 ) = m ) |
75 |
|
mulcl |
|- ( ( m e. CC /\ x e. CC ) -> ( m x. x ) e. CC ) |
76 |
75
|
adantl |
|- ( ( ph /\ ( m e. CC /\ x e. CC ) ) -> ( m x. x ) e. CC ) |
77 |
|
1cnd |
|- ( ph -> 1 e. CC ) |
78 |
26 16
|
eleqtrrd |
|- ( ph -> N e. ( 1 ... ( # ` A ) ) ) |
79 |
|
iftrue |
|- ( k e. A -> if ( k e. A , B , 1 ) = B ) |
80 |
79
|
adantl |
|- ( ( ph /\ k e. A ) -> if ( k e. A , B , 1 ) = B ) |
81 |
80 2
|
eqeltrd |
|- ( ( ph /\ k e. A ) -> if ( k e. A , B , 1 ) e. CC ) |
82 |
81
|
ex |
|- ( ph -> ( k e. A -> if ( k e. A , B , 1 ) e. CC ) ) |
83 |
|
iffalse |
|- ( -. k e. A -> if ( k e. A , B , 1 ) = 1 ) |
84 |
|
ax-1cn |
|- 1 e. CC |
85 |
83 84
|
eqeltrdi |
|- ( -. k e. A -> if ( k e. A , B , 1 ) e. CC ) |
86 |
82 85
|
pm2.61d1 |
|- ( ph -> if ( k e. A , B , 1 ) e. CC ) |
87 |
86
|
adantr |
|- ( ( ph /\ k e. ZZ ) -> if ( k e. A , B , 1 ) e. CC ) |
88 |
87 1
|
fmptd |
|- ( ph -> F : ZZ --> CC ) |
89 |
|
elfzelz |
|- ( m e. ( M ... ( K ` ( # ` A ) ) ) -> m e. ZZ ) |
90 |
|
ffvelrn |
|- ( ( F : ZZ --> CC /\ m e. ZZ ) -> ( F ` m ) e. CC ) |
91 |
88 89 90
|
syl2an |
|- ( ( ph /\ m e. ( M ... ( K ` ( # ` A ) ) ) ) -> ( F ` m ) e. CC ) |
92 |
|
fveqeq2 |
|- ( k = m -> ( ( F ` k ) = 1 <-> ( F ` m ) = 1 ) ) |
93 |
|
eldifi |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> k e. ( M ... ( K ` ( # ` A ) ) ) ) |
94 |
93
|
elfzelzd |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> k e. ZZ ) |
95 |
|
eldifn |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> -. k e. A ) |
96 |
95 83
|
syl |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> if ( k e. A , B , 1 ) = 1 ) |
97 |
96 84
|
eqeltrdi |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> if ( k e. A , B , 1 ) e. CC ) |
98 |
1
|
fvmpt2 |
|- ( ( k e. ZZ /\ if ( k e. A , B , 1 ) e. CC ) -> ( F ` k ) = if ( k e. A , B , 1 ) ) |
99 |
94 97 98
|
syl2anc |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> ( F ` k ) = if ( k e. A , B , 1 ) ) |
100 |
99 96
|
eqtrd |
|- ( k e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> ( F ` k ) = 1 ) |
101 |
92 100
|
vtoclga |
|- ( m e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) -> ( F ` m ) = 1 ) |
102 |
101
|
adantl |
|- ( ( ph /\ m e. ( ( M ... ( K ` ( # ` A ) ) ) \ A ) ) -> ( F ` m ) = 1 ) |
103 |
|
isof1o |
|- ( K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) -> K : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) |
104 |
|
f1of |
|- ( K : ( 1 ... ( # ` A ) ) -1-1-onto-> A -> K : ( 1 ... ( # ` A ) ) --> A ) |
105 |
9 103 104
|
3syl |
|- ( ph -> K : ( 1 ... ( # ` A ) ) --> A ) |
106 |
105
|
ffvelrnda |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> ( K ` x ) e. A ) |
107 |
106
|
iftrued |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) = [_ ( K ` x ) / k ]_ B ) |
108 |
58
|
adantr |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> A C_ ZZ ) |
109 |
108 106
|
sseldd |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> ( K ` x ) e. ZZ ) |
110 |
|
nfv |
|- F/ k ph |
111 |
|
nfv |
|- F/ k ( K ` x ) e. A |
112 |
|
nfcsb1v |
|- F/_ k [_ ( K ` x ) / k ]_ B |
113 |
|
nfcv |
|- F/_ k 1 |
114 |
111 112 113
|
nfif |
|- F/_ k if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) |
115 |
114
|
nfel1 |
|- F/ k if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC |
116 |
110 115
|
nfim |
|- F/ k ( ph -> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) |
117 |
|
fvex |
|- ( K ` x ) e. _V |
118 |
|
eleq1 |
|- ( k = ( K ` x ) -> ( k e. A <-> ( K ` x ) e. A ) ) |
119 |
|
csbeq1a |
|- ( k = ( K ` x ) -> B = [_ ( K ` x ) / k ]_ B ) |
120 |
118 119
|
ifbieq1d |
|- ( k = ( K ` x ) -> if ( k e. A , B , 1 ) = if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) ) |
121 |
120
|
eleq1d |
|- ( k = ( K ` x ) -> ( if ( k e. A , B , 1 ) e. CC <-> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) ) |
122 |
121
|
imbi2d |
|- ( k = ( K ` x ) -> ( ( ph -> if ( k e. A , B , 1 ) e. CC ) <-> ( ph -> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) ) ) |
123 |
116 117 122 86
|
vtoclf |
|- ( ph -> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) |
124 |
123
|
adantr |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) |
125 |
|
eleq1 |
|- ( n = ( K ` x ) -> ( n e. A <-> ( K ` x ) e. A ) ) |
126 |
|
csbeq1 |
|- ( n = ( K ` x ) -> [_ n / k ]_ B = [_ ( K ` x ) / k ]_ B ) |
127 |
125 126
|
ifbieq1d |
|- ( n = ( K ` x ) -> if ( n e. A , [_ n / k ]_ B , 1 ) = if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) ) |
128 |
|
nfcv |
|- F/_ n if ( k e. A , B , 1 ) |
129 |
|
nfv |
|- F/ k n e. A |
130 |
|
nfcsb1v |
|- F/_ k [_ n / k ]_ B |
131 |
129 130 113
|
nfif |
|- F/_ k if ( n e. A , [_ n / k ]_ B , 1 ) |
132 |
|
eleq1 |
|- ( k = n -> ( k e. A <-> n e. A ) ) |
133 |
|
csbeq1a |
|- ( k = n -> B = [_ n / k ]_ B ) |
134 |
132 133
|
ifbieq1d |
|- ( k = n -> if ( k e. A , B , 1 ) = if ( n e. A , [_ n / k ]_ B , 1 ) ) |
135 |
128 131 134
|
cbvmpt |
|- ( k e. ZZ |-> if ( k e. A , B , 1 ) ) = ( n e. ZZ |-> if ( n e. A , [_ n / k ]_ B , 1 ) ) |
136 |
1 135
|
eqtri |
|- F = ( n e. ZZ |-> if ( n e. A , [_ n / k ]_ B , 1 ) ) |
137 |
127 136
|
fvmptg |
|- ( ( ( K ` x ) e. ZZ /\ if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) e. CC ) -> ( F ` ( K ` x ) ) = if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) ) |
138 |
109 124 137
|
syl2anc |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> ( F ` ( K ` x ) ) = if ( ( K ` x ) e. A , [_ ( K ` x ) / k ]_ B , 1 ) ) |
139 |
|
elfznn |
|- ( x e. ( 1 ... ( # ` A ) ) -> x e. NN ) |
140 |
107 124
|
eqeltrrd |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> [_ ( K ` x ) / k ]_ B e. CC ) |
141 |
|
fveq2 |
|- ( j = x -> ( K ` j ) = ( K ` x ) ) |
142 |
141
|
csbeq1d |
|- ( j = x -> [_ ( K ` j ) / k ]_ B = [_ ( K ` x ) / k ]_ B ) |
143 |
142 4
|
fvmptg |
|- ( ( x e. NN /\ [_ ( K ` x ) / k ]_ B e. CC ) -> ( H ` x ) = [_ ( K ` x ) / k ]_ B ) |
144 |
139 140 143
|
syl2an2 |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> ( H ` x ) = [_ ( K ` x ) / k ]_ B ) |
145 |
107 138 144
|
3eqtr4rd |
|- ( ( ph /\ x e. ( 1 ... ( # ` A ) ) ) -> ( H ` x ) = ( F ` ( K ` x ) ) ) |
146 |
72 74 76 77 9 78 7 91 102 145
|
seqcoll |
|- ( ph -> ( seq M ( x. , F ) ` ( K ` N ) ) = ( seq 1 ( x. , H ) ` N ) ) |
147 |
5 5
|
jca |
|- ( ph -> ( N e. NN /\ N e. NN ) ) |
148 |
1 2 3 4 147 8 30
|
prodmolem3 |
|- ( ph -> ( seq 1 ( x. , G ) ` N ) = ( seq 1 ( x. , H ) ` N ) ) |
149 |
146 148
|
eqtr4d |
|- ( ph -> ( seq M ( x. , F ) ` ( K ` N ) ) = ( seq 1 ( x. , G ) ` N ) ) |
150 |
70 149
|
breqtrd |
|- ( ph -> seq M ( x. , F ) ~~> ( seq 1 ( x. , G ) ` N ) ) |