Step |
Hyp |
Ref |
Expression |
1 |
|
risset |
|- ( A e. NN0 <-> E. b e. NN0 b = A ) |
2 |
1
|
rabbii |
|- { t e. ( NN0 ^m ( 1 ... N ) ) | A e. NN0 } = { t e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = A } |
3 |
2
|
a1i |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> { t e. ( NN0 ^m ( 1 ... N ) ) | A e. NN0 } = { t e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = A } ) |
4 |
|
nfcv |
|- F/_ t ( NN0 ^m ( 1 ... N ) ) |
5 |
|
nfcv |
|- F/_ a ( NN0 ^m ( 1 ... N ) ) |
6 |
|
nfv |
|- F/ a E. b e. NN0 b = A |
7 |
|
nfcv |
|- F/_ t NN0 |
8 |
|
nfcsb1v |
|- F/_ t [_ a / t ]_ A |
9 |
8
|
nfeq2 |
|- F/ t b = [_ a / t ]_ A |
10 |
7 9
|
nfrex |
|- F/ t E. b e. NN0 b = [_ a / t ]_ A |
11 |
|
csbeq1a |
|- ( t = a -> A = [_ a / t ]_ A ) |
12 |
11
|
eqeq2d |
|- ( t = a -> ( b = A <-> b = [_ a / t ]_ A ) ) |
13 |
12
|
rexbidv |
|- ( t = a -> ( E. b e. NN0 b = A <-> E. b e. NN0 b = [_ a / t ]_ A ) ) |
14 |
4 5 6 10 13
|
cbvrabw |
|- { t e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = A } = { a e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = [_ a / t ]_ A } |
15 |
3 14
|
eqtrdi |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> { t e. ( NN0 ^m ( 1 ... N ) ) | A e. NN0 } = { a e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = [_ a / t ]_ A } ) |
16 |
|
peano2nn0 |
|- ( N e. NN0 -> ( N + 1 ) e. NN0 ) |
17 |
16
|
adantr |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> ( N + 1 ) e. NN0 ) |
18 |
|
ovex |
|- ( 1 ... ( N + 1 ) ) e. _V |
19 |
|
nn0p1nn |
|- ( N e. NN0 -> ( N + 1 ) e. NN ) |
20 |
|
elfz1end |
|- ( ( N + 1 ) e. NN <-> ( N + 1 ) e. ( 1 ... ( N + 1 ) ) ) |
21 |
19 20
|
sylib |
|- ( N e. NN0 -> ( N + 1 ) e. ( 1 ... ( N + 1 ) ) ) |
22 |
21
|
adantr |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> ( N + 1 ) e. ( 1 ... ( N + 1 ) ) ) |
23 |
|
mzpproj |
|- ( ( ( 1 ... ( N + 1 ) ) e. _V /\ ( N + 1 ) e. ( 1 ... ( N + 1 ) ) ) -> ( c e. ( ZZ ^m ( 1 ... ( N + 1 ) ) ) |-> ( c ` ( N + 1 ) ) ) e. ( mzPoly ` ( 1 ... ( N + 1 ) ) ) ) |
24 |
18 22 23
|
sylancr |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> ( c e. ( ZZ ^m ( 1 ... ( N + 1 ) ) ) |-> ( c ` ( N + 1 ) ) ) e. ( mzPoly ` ( 1 ... ( N + 1 ) ) ) ) |
25 |
|
eqid |
|- ( N + 1 ) = ( N + 1 ) |
26 |
25
|
rabdiophlem2 |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> ( c e. ( ZZ ^m ( 1 ... ( N + 1 ) ) ) |-> [_ ( c |` ( 1 ... N ) ) / t ]_ A ) e. ( mzPoly ` ( 1 ... ( N + 1 ) ) ) ) |
27 |
|
eqrabdioph |
|- ( ( ( N + 1 ) e. NN0 /\ ( c e. ( ZZ ^m ( 1 ... ( N + 1 ) ) ) |-> ( c ` ( N + 1 ) ) ) e. ( mzPoly ` ( 1 ... ( N + 1 ) ) ) /\ ( c e. ( ZZ ^m ( 1 ... ( N + 1 ) ) ) |-> [_ ( c |` ( 1 ... N ) ) / t ]_ A ) e. ( mzPoly ` ( 1 ... ( N + 1 ) ) ) ) -> { c e. ( NN0 ^m ( 1 ... ( N + 1 ) ) ) | ( c ` ( N + 1 ) ) = [_ ( c |` ( 1 ... N ) ) / t ]_ A } e. ( Dioph ` ( N + 1 ) ) ) |
28 |
17 24 26 27
|
syl3anc |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> { c e. ( NN0 ^m ( 1 ... ( N + 1 ) ) ) | ( c ` ( N + 1 ) ) = [_ ( c |` ( 1 ... N ) ) / t ]_ A } e. ( Dioph ` ( N + 1 ) ) ) |
29 |
|
eqeq1 |
|- ( b = ( c ` ( N + 1 ) ) -> ( b = [_ a / t ]_ A <-> ( c ` ( N + 1 ) ) = [_ a / t ]_ A ) ) |
30 |
|
csbeq1 |
|- ( a = ( c |` ( 1 ... N ) ) -> [_ a / t ]_ A = [_ ( c |` ( 1 ... N ) ) / t ]_ A ) |
31 |
30
|
eqeq2d |
|- ( a = ( c |` ( 1 ... N ) ) -> ( ( c ` ( N + 1 ) ) = [_ a / t ]_ A <-> ( c ` ( N + 1 ) ) = [_ ( c |` ( 1 ... N ) ) / t ]_ A ) ) |
32 |
25 29 31
|
rexrabdioph |
|- ( ( N e. NN0 /\ { c e. ( NN0 ^m ( 1 ... ( N + 1 ) ) ) | ( c ` ( N + 1 ) ) = [_ ( c |` ( 1 ... N ) ) / t ]_ A } e. ( Dioph ` ( N + 1 ) ) ) -> { a e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = [_ a / t ]_ A } e. ( Dioph ` N ) ) |
33 |
28 32
|
syldan |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> { a e. ( NN0 ^m ( 1 ... N ) ) | E. b e. NN0 b = [_ a / t ]_ A } e. ( Dioph ` N ) ) |
34 |
15 33
|
eqeltrd |
|- ( ( N e. NN0 /\ ( t e. ( ZZ ^m ( 1 ... N ) ) |-> A ) e. ( mzPoly ` ( 1 ... N ) ) ) -> { t e. ( NN0 ^m ( 1 ... N ) ) | A e. NN0 } e. ( Dioph ` N ) ) |