Metamath Proof Explorer


Theorem mzpcompact2

Description: Polynomials are finitary objects and can only reference a finite number of variables, even if the index set is infinite. Thus, every polynomial can be expressed as a (uniquely minimal, although we do not prove that) polynomial on a finite number of variables, which is then extended by adding an arbitrary set of ignored variables. (Contributed by Stefan O'Rear, 9-Oct-2014)

Ref Expression
Assertion mzpcompact2
|- ( A e. ( mzPoly ` B ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) )

Proof

Step Hyp Ref Expression
1 elfvex
 |-  ( A e. ( mzPoly ` B ) -> B e. _V )
2 fveq2
 |-  ( d = B -> ( mzPoly ` d ) = ( mzPoly ` B ) )
3 2 eleq2d
 |-  ( d = B -> ( A e. ( mzPoly ` d ) <-> A e. ( mzPoly ` B ) ) )
4 sseq2
 |-  ( d = B -> ( a C_ d <-> a C_ B ) )
5 oveq2
 |-  ( d = B -> ( ZZ ^m d ) = ( ZZ ^m B ) )
6 5 mpteq1d
 |-  ( d = B -> ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) )
7 6 eqeq2d
 |-  ( d = B -> ( A = ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) <-> A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) )
8 4 7 anbi12d
 |-  ( d = B -> ( ( a C_ d /\ A = ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) ) <-> ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) ) )
9 8 2rexbidv
 |-  ( d = B -> ( E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ d /\ A = ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) ) <-> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) ) )
10 3 9 imbi12d
 |-  ( d = B -> ( ( A e. ( mzPoly ` d ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ d /\ A = ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) ) ) <-> ( A e. ( mzPoly ` B ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) ) ) )
11 vex
 |-  d e. _V
12 11 mzpcompact2lem
 |-  ( A e. ( mzPoly ` d ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ d /\ A = ( c e. ( ZZ ^m d ) |-> ( b ` ( c |` a ) ) ) ) )
13 10 12 vtoclg
 |-  ( B e. _V -> ( A e. ( mzPoly ` B ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) ) )
14 1 13 mpcom
 |-  ( A e. ( mzPoly ` B ) -> E. a e. Fin E. b e. ( mzPoly ` a ) ( a C_ B /\ A = ( c e. ( ZZ ^m B ) |-> ( b ` ( c |` a ) ) ) ) )