Metamath Proof Explorer


Theorem dsmmelbas

Description: Membership in the finitely supported hull of a structure product in terms of the index set. (Contributed by Stefan O'Rear, 11-Jan-2015)

Ref Expression
Hypotheses dsmmelbas.p
|- P = ( S Xs_ R )
dsmmelbas.c
|- C = ( S (+)m R )
dsmmelbas.b
|- B = ( Base ` P )
dsmmelbas.h
|- H = ( Base ` C )
dsmmelbas.i
|- ( ph -> I e. V )
dsmmelbas.r
|- ( ph -> R Fn I )
Assertion dsmmelbas
|- ( ph -> ( X e. H <-> ( X e. B /\ { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) ) )

Proof

Step Hyp Ref Expression
1 dsmmelbas.p
 |-  P = ( S Xs_ R )
2 dsmmelbas.c
 |-  C = ( S (+)m R )
3 dsmmelbas.b
 |-  B = ( Base ` P )
4 dsmmelbas.h
 |-  H = ( Base ` C )
5 dsmmelbas.i
 |-  ( ph -> I e. V )
6 dsmmelbas.r
 |-  ( ph -> R Fn I )
7 2 fveq2i
 |-  ( Base ` C ) = ( Base ` ( S (+)m R ) )
8 4 7 eqtri
 |-  H = ( Base ` ( S (+)m R ) )
9 fnex
 |-  ( ( R Fn I /\ I e. V ) -> R e. _V )
10 6 5 9 syl2anc
 |-  ( ph -> R e. _V )
11 eqid
 |-  { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } = { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin }
12 11 dsmmbase
 |-  ( R e. _V -> { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } = ( Base ` ( S (+)m R ) ) )
13 10 12 syl
 |-  ( ph -> { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } = ( Base ` ( S (+)m R ) ) )
14 8 13 eqtr4id
 |-  ( ph -> H = { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } )
15 14 eleq2d
 |-  ( ph -> ( X e. H <-> X e. { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } ) )
16 fveq1
 |-  ( b = X -> ( b ` a ) = ( X ` a ) )
17 16 neeq1d
 |-  ( b = X -> ( ( b ` a ) =/= ( 0g ` ( R ` a ) ) <-> ( X ` a ) =/= ( 0g ` ( R ` a ) ) ) )
18 17 rabbidv
 |-  ( b = X -> { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } = { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } )
19 18 eleq1d
 |-  ( b = X -> ( { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin <-> { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) )
20 19 elrab
 |-  ( X e. { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } <-> ( X e. ( Base ` ( S Xs_ R ) ) /\ { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) )
21 1 fveq2i
 |-  ( Base ` P ) = ( Base ` ( S Xs_ R ) )
22 3 21 eqtr2i
 |-  ( Base ` ( S Xs_ R ) ) = B
23 22 eleq2i
 |-  ( X e. ( Base ` ( S Xs_ R ) ) <-> X e. B )
24 23 a1i
 |-  ( ph -> ( X e. ( Base ` ( S Xs_ R ) ) <-> X e. B ) )
25 fndm
 |-  ( R Fn I -> dom R = I )
26 rabeq
 |-  ( dom R = I -> { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } = { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } )
27 6 25 26 3syl
 |-  ( ph -> { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } = { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } )
28 27 eleq1d
 |-  ( ph -> ( { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin <-> { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) )
29 24 28 anbi12d
 |-  ( ph -> ( ( X e. ( Base ` ( S Xs_ R ) ) /\ { a e. dom R | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) <-> ( X e. B /\ { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) ) )
30 20 29 syl5bb
 |-  ( ph -> ( X e. { b e. ( Base ` ( S Xs_ R ) ) | { a e. dom R | ( b ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin } <-> ( X e. B /\ { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) ) )
31 15 30 bitrd
 |-  ( ph -> ( X e. H <-> ( X e. B /\ { a e. I | ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) ) )