Metamath Proof Explorer


Theorem hsmexlem4

Description: Lemma for hsmex . The core induction, establishing bounds on the order types of iterated unions of the initial set. (Contributed by Stefan O'Rear, 14-Feb-2015)

Ref Expression
Hypotheses hsmexlem4.x
|- X e. _V
hsmexlem4.h
|- H = ( rec ( ( z e. _V |-> ( har ` ~P ( X X. z ) ) ) , ( har ` ~P X ) ) |` _om )
hsmexlem4.u
|- U = ( x e. _V |-> ( rec ( ( y e. _V |-> U. y ) , x ) |` _om ) )
hsmexlem4.s
|- S = { a e. U. ( R1 " On ) | A. b e. ( TC ` { a } ) b ~<_ X }
hsmexlem4.o
|- O = OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) )
Assertion hsmexlem4
|- ( ( c e. _om /\ d e. S ) -> dom O e. ( H ` c ) )

Proof

Step Hyp Ref Expression
1 hsmexlem4.x
 |-  X e. _V
2 hsmexlem4.h
 |-  H = ( rec ( ( z e. _V |-> ( har ` ~P ( X X. z ) ) ) , ( har ` ~P X ) ) |` _om )
3 hsmexlem4.u
 |-  U = ( x e. _V |-> ( rec ( ( y e. _V |-> U. y ) , x ) |` _om ) )
4 hsmexlem4.s
 |-  S = { a e. U. ( R1 " On ) | A. b e. ( TC ` { a } ) b ~<_ X }
5 hsmexlem4.o
 |-  O = OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) )
6 fveq2
 |-  ( c = (/) -> ( ( U ` d ) ` c ) = ( ( U ` d ) ` (/) ) )
7 6 imaeq2d
 |-  ( c = (/) -> ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` (/) ) ) )
8 oieq2
 |-  ( ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` (/) ) ) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) )
9 7 8 syl
 |-  ( c = (/) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) )
10 5 9 syl5eq
 |-  ( c = (/) -> O = OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) )
11 10 dmeqd
 |-  ( c = (/) -> dom O = dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) )
12 fveq2
 |-  ( c = (/) -> ( H ` c ) = ( H ` (/) ) )
13 11 12 eleq12d
 |-  ( c = (/) -> ( dom O e. ( H ` c ) <-> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( H ` (/) ) ) )
14 13 ralbidv
 |-  ( c = (/) -> ( A. d e. S dom O e. ( H ` c ) <-> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( H ` (/) ) ) )
15 fveq2
 |-  ( c = e -> ( ( U ` d ) ` c ) = ( ( U ` d ) ` e ) )
16 15 imaeq2d
 |-  ( c = e -> ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` e ) ) )
17 oieq2
 |-  ( ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` e ) ) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) )
18 16 17 syl
 |-  ( c = e -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) )
19 5 18 syl5eq
 |-  ( c = e -> O = OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) )
20 19 dmeqd
 |-  ( c = e -> dom O = dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) )
21 fveq2
 |-  ( c = e -> ( H ` c ) = ( H ` e ) )
22 20 21 eleq12d
 |-  ( c = e -> ( dom O e. ( H ` c ) <-> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) ) )
23 22 ralbidv
 |-  ( c = e -> ( A. d e. S dom O e. ( H ` c ) <-> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) ) )
24 fveq2
 |-  ( c = suc e -> ( ( U ` d ) ` c ) = ( ( U ` d ) ` suc e ) )
25 24 imaeq2d
 |-  ( c = suc e -> ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` suc e ) ) )
26 oieq2
 |-  ( ( rank " ( ( U ` d ) ` c ) ) = ( rank " ( ( U ` d ) ` suc e ) ) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) )
27 25 26 syl
 |-  ( c = suc e -> OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) )
28 5 27 syl5eq
 |-  ( c = suc e -> O = OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) )
29 28 dmeqd
 |-  ( c = suc e -> dom O = dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) )
30 fveq2
 |-  ( c = suc e -> ( H ` c ) = ( H ` suc e ) )
31 29 30 eleq12d
 |-  ( c = suc e -> ( dom O e. ( H ` c ) <-> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) ) )
32 31 ralbidv
 |-  ( c = suc e -> ( A. d e. S dom O e. ( H ` c ) <-> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) ) )
33 imassrn
 |-  ( rank " ( ( U ` d ) ` (/) ) ) C_ ran rank
34 rankf
 |-  rank : U. ( R1 " On ) --> On
35 frn
 |-  ( rank : U. ( R1 " On ) --> On -> ran rank C_ On )
36 34 35 ax-mp
 |-  ran rank C_ On
37 33 36 sstri
 |-  ( rank " ( ( U ` d ) ` (/) ) ) C_ On
38 3 ituni0
 |-  ( d e. _V -> ( ( U ` d ) ` (/) ) = d )
39 38 elv
 |-  ( ( U ` d ) ` (/) ) = d
40 39 imaeq2i
 |-  ( rank " ( ( U ` d ) ` (/) ) ) = ( rank " d )
41 ffun
 |-  ( rank : U. ( R1 " On ) --> On -> Fun rank )
42 34 41 ax-mp
 |-  Fun rank
43 vex
 |-  d e. _V
44 wdomimag
 |-  ( ( Fun rank /\ d e. _V ) -> ( rank " d ) ~<_* d )
45 42 43 44 mp2an
 |-  ( rank " d ) ~<_* d
46 sneq
 |-  ( a = d -> { a } = { d } )
47 46 fveq2d
 |-  ( a = d -> ( TC ` { a } ) = ( TC ` { d } ) )
48 47 raleqdv
 |-  ( a = d -> ( A. b e. ( TC ` { a } ) b ~<_ X <-> A. b e. ( TC ` { d } ) b ~<_ X ) )
49 48 4 elrab2
 |-  ( d e. S <-> ( d e. U. ( R1 " On ) /\ A. b e. ( TC ` { d } ) b ~<_ X ) )
50 49 simprbi
 |-  ( d e. S -> A. b e. ( TC ` { d } ) b ~<_ X )
51 snex
 |-  { d } e. _V
52 tcid
 |-  ( { d } e. _V -> { d } C_ ( TC ` { d } ) )
53 51 52 ax-mp
 |-  { d } C_ ( TC ` { d } )
54 vsnid
 |-  d e. { d }
55 53 54 sselii
 |-  d e. ( TC ` { d } )
56 breq1
 |-  ( b = d -> ( b ~<_ X <-> d ~<_ X ) )
57 56 rspcv
 |-  ( d e. ( TC ` { d } ) -> ( A. b e. ( TC ` { d } ) b ~<_ X -> d ~<_ X ) )
58 55 57 ax-mp
 |-  ( A. b e. ( TC ` { d } ) b ~<_ X -> d ~<_ X )
59 domwdom
 |-  ( d ~<_ X -> d ~<_* X )
60 50 58 59 3syl
 |-  ( d e. S -> d ~<_* X )
61 wdomtr
 |-  ( ( ( rank " d ) ~<_* d /\ d ~<_* X ) -> ( rank " d ) ~<_* X )
62 45 60 61 sylancr
 |-  ( d e. S -> ( rank " d ) ~<_* X )
63 40 62 eqbrtrid
 |-  ( d e. S -> ( rank " ( ( U ` d ) ` (/) ) ) ~<_* X )
64 eqid
 |-  OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) = OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) )
65 64 hsmexlem1
 |-  ( ( ( rank " ( ( U ` d ) ` (/) ) ) C_ On /\ ( rank " ( ( U ` d ) ` (/) ) ) ~<_* X ) -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( har ` ~P X ) )
66 37 63 65 sylancr
 |-  ( d e. S -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( har ` ~P X ) )
67 2 hsmexlem7
 |-  ( H ` (/) ) = ( har ` ~P X )
68 66 67 eleqtrrdi
 |-  ( d e. S -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( H ` (/) ) )
69 68 rgen
 |-  A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` (/) ) ) ) e. ( H ` (/) )
70 nfra1
 |-  F/ d A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e )
71 nfv
 |-  F/ d e e. _om
72 70 71 nfan
 |-  F/ d ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ e e. _om )
73 3 ituniiun
 |-  ( d e. _V -> ( ( U ` d ) ` suc e ) = U_ f e. d ( ( U ` f ) ` e ) )
74 73 elv
 |-  ( ( U ` d ) ` suc e ) = U_ f e. d ( ( U ` f ) ` e )
75 74 imaeq2i
 |-  ( rank " ( ( U ` d ) ` suc e ) ) = ( rank " U_ f e. d ( ( U ` f ) ` e ) )
76 imaiun
 |-  ( rank " U_ f e. d ( ( U ` f ) ` e ) ) = U_ f e. d ( rank " ( ( U ` f ) ` e ) )
77 75 76 eqtri
 |-  ( rank " ( ( U ` d ) ` suc e ) ) = U_ f e. d ( rank " ( ( U ` f ) ` e ) )
78 oieq2
 |-  ( ( rank " ( ( U ` d ) ` suc e ) ) = U_ f e. d ( rank " ( ( U ` f ) ` e ) ) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) = OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) ) )
79 77 78 ax-mp
 |-  OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) = OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) )
80 79 dmeqi
 |-  dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) = dom OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) )
81 60 ad2antll
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> d ~<_* X )
82 2 hsmexlem9
 |-  ( e e. _om -> ( H ` e ) e. On )
83 82 ad2antrl
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> ( H ` e ) e. On )
84 fveq2
 |-  ( d = f -> ( U ` d ) = ( U ` f ) )
85 84 fveq1d
 |-  ( d = f -> ( ( U ` d ) ` e ) = ( ( U ` f ) ` e ) )
86 85 imaeq2d
 |-  ( d = f -> ( rank " ( ( U ` d ) ` e ) ) = ( rank " ( ( U ` f ) ` e ) ) )
87 oieq2
 |-  ( ( rank " ( ( U ` d ) ` e ) ) = ( rank " ( ( U ` f ) ` e ) ) -> OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) = OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) )
88 86 87 syl
 |-  ( d = f -> OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) = OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) )
89 88 dmeqd
 |-  ( d = f -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) = dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) )
90 89 eleq1d
 |-  ( d = f -> ( dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) <-> dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) e. ( H ` e ) ) )
91 simpll
 |-  ( ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) /\ f e. d ) -> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) )
92 4 ssrab3
 |-  S C_ U. ( R1 " On )
93 92 sseli
 |-  ( d e. S -> d e. U. ( R1 " On ) )
94 r1elssi
 |-  ( d e. U. ( R1 " On ) -> d C_ U. ( R1 " On ) )
95 93 94 syl
 |-  ( d e. S -> d C_ U. ( R1 " On ) )
96 95 sselda
 |-  ( ( d e. S /\ f e. d ) -> f e. U. ( R1 " On ) )
97 snssi
 |-  ( f e. d -> { f } C_ d )
98 43 tcss
 |-  ( { f } C_ d -> ( TC ` { f } ) C_ ( TC ` d ) )
99 97 98 syl
 |-  ( f e. d -> ( TC ` { f } ) C_ ( TC ` d ) )
100 51 tcel
 |-  ( d e. { d } -> ( TC ` d ) C_ ( TC ` { d } ) )
101 54 100 mp1i
 |-  ( f e. d -> ( TC ` d ) C_ ( TC ` { d } ) )
102 99 101 sstrd
 |-  ( f e. d -> ( TC ` { f } ) C_ ( TC ` { d } ) )
103 ssralv
 |-  ( ( TC ` { f } ) C_ ( TC ` { d } ) -> ( A. b e. ( TC ` { d } ) b ~<_ X -> A. b e. ( TC ` { f } ) b ~<_ X ) )
104 102 103 syl
 |-  ( f e. d -> ( A. b e. ( TC ` { d } ) b ~<_ X -> A. b e. ( TC ` { f } ) b ~<_ X ) )
105 50 104 mpan9
 |-  ( ( d e. S /\ f e. d ) -> A. b e. ( TC ` { f } ) b ~<_ X )
106 sneq
 |-  ( a = f -> { a } = { f } )
107 106 fveq2d
 |-  ( a = f -> ( TC ` { a } ) = ( TC ` { f } ) )
108 107 raleqdv
 |-  ( a = f -> ( A. b e. ( TC ` { a } ) b ~<_ X <-> A. b e. ( TC ` { f } ) b ~<_ X ) )
109 108 4 elrab2
 |-  ( f e. S <-> ( f e. U. ( R1 " On ) /\ A. b e. ( TC ` { f } ) b ~<_ X ) )
110 96 105 109 sylanbrc
 |-  ( ( d e. S /\ f e. d ) -> f e. S )
111 110 adantll
 |-  ( ( ( e e. _om /\ d e. S ) /\ f e. d ) -> f e. S )
112 111 adantll
 |-  ( ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) /\ f e. d ) -> f e. S )
113 90 91 112 rspcdva
 |-  ( ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) /\ f e. d ) -> dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) e. ( H ` e ) )
114 imassrn
 |-  ( rank " ( ( U ` f ) ` e ) ) C_ ran rank
115 114 36 sstri
 |-  ( rank " ( ( U ` f ) ` e ) ) C_ On
116 fvex
 |-  ( ( U ` f ) ` e ) e. _V
117 116 funimaex
 |-  ( Fun rank -> ( rank " ( ( U ` f ) ` e ) ) e. _V )
118 42 117 ax-mp
 |-  ( rank " ( ( U ` f ) ` e ) ) e. _V
119 118 elpw
 |-  ( ( rank " ( ( U ` f ) ` e ) ) e. ~P On <-> ( rank " ( ( U ` f ) ` e ) ) C_ On )
120 115 119 mpbir
 |-  ( rank " ( ( U ` f ) ` e ) ) e. ~P On
121 113 120 jctil
 |-  ( ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) /\ f e. d ) -> ( ( rank " ( ( U ` f ) ` e ) ) e. ~P On /\ dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) e. ( H ` e ) ) )
122 121 ralrimiva
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> A. f e. d ( ( rank " ( ( U ` f ) ` e ) ) e. ~P On /\ dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) e. ( H ` e ) ) )
123 eqid
 |-  OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) = OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) )
124 eqid
 |-  OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) ) = OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) )
125 123 124 hsmexlem3
 |-  ( ( ( d ~<_* X /\ ( H ` e ) e. On ) /\ A. f e. d ( ( rank " ( ( U ` f ) ` e ) ) e. ~P On /\ dom OrdIso ( _E , ( rank " ( ( U ` f ) ` e ) ) ) e. ( H ` e ) ) ) -> dom OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) ) e. ( har ` ~P ( X X. ( H ` e ) ) ) )
126 81 83 122 125 syl21anc
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> dom OrdIso ( _E , U_ f e. d ( rank " ( ( U ` f ) ` e ) ) ) e. ( har ` ~P ( X X. ( H ` e ) ) ) )
127 80 126 eqeltrid
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( har ` ~P ( X X. ( H ` e ) ) ) )
128 2 hsmexlem8
 |-  ( e e. _om -> ( H ` suc e ) = ( har ` ~P ( X X. ( H ` e ) ) ) )
129 128 ad2antrl
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> ( H ` suc e ) = ( har ` ~P ( X X. ( H ` e ) ) ) )
130 127 129 eleqtrrd
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ ( e e. _om /\ d e. S ) ) -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) )
131 130 expr
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ e e. _om ) -> ( d e. S -> dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) ) )
132 72 131 ralrimi
 |-  ( ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) /\ e e. _om ) -> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) )
133 132 expcom
 |-  ( e e. _om -> ( A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` e ) ) ) e. ( H ` e ) -> A. d e. S dom OrdIso ( _E , ( rank " ( ( U ` d ) ` suc e ) ) ) e. ( H ` suc e ) ) )
134 14 23 32 69 133 finds1
 |-  ( c e. _om -> A. d e. S dom O e. ( H ` c ) )
135 134 r19.21bi
 |-  ( ( c e. _om /\ d e. S ) -> dom O e. ( H ` c ) )