Metamath Proof Explorer


Theorem hsmexlem2

Description: Lemma for hsmex . Bound the order type of a union of sets of ordinals, each of limited order type. Vaguely reminiscent of unictb but use of order types allows to canonically choose the sub-bijections, removing the choice requirement. (Contributed by Stefan O'Rear, 14-Feb-2015) (Revised by Mario Carneiro, 26-Jun-2015) (Revised by AV, 18-Sep-2021)

Ref Expression
Hypotheses hsmexlem.f 𝐹 = OrdIso ( E , 𝐵 )
hsmexlem.g 𝐺 = OrdIso ( E , 𝑎𝐴 𝐵 )
Assertion hsmexlem2 ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → dom 𝐺 ∈ ( har ‘ 𝒫 ( 𝐴 × 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 hsmexlem.f 𝐹 = OrdIso ( E , 𝐵 )
2 hsmexlem.g 𝐺 = OrdIso ( E , 𝑎𝐴 𝐵 )
3 elpwi ( 𝐵 ∈ 𝒫 On → 𝐵 ⊆ On )
4 3 adantr ( ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) → 𝐵 ⊆ On )
5 4 ralimi ( ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) → ∀ 𝑎𝐴 𝐵 ⊆ On )
6 iunss ( 𝑎𝐴 𝐵 ⊆ On ↔ ∀ 𝑎𝐴 𝐵 ⊆ On )
7 5 6 sylibr ( ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) → 𝑎𝐴 𝐵 ⊆ On )
8 7 3ad2ant3 ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → 𝑎𝐴 𝐵 ⊆ On )
9 xpexg ( ( 𝐴𝑉𝐶 ∈ On ) → ( 𝐴 × 𝐶 ) ∈ V )
10 9 3adant3 ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( 𝐴 × 𝐶 ) ∈ V )
11 nfv 𝑎 𝐶 ∈ On
12 nfra1 𝑎𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 )
13 11 12 nfan 𝑎 ( 𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) )
14 rsp ( ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) → ( 𝑎𝐴 → ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) )
15 onelss ( 𝐶 ∈ On → ( dom 𝐹𝐶 → dom 𝐹𝐶 ) )
16 15 imp ( ( 𝐶 ∈ On ∧ dom 𝐹𝐶 ) → dom 𝐹𝐶 )
17 16 adantrl ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → dom 𝐹𝐶 )
18 17 3adant3 ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ∧ 𝑏𝐵 ) → dom 𝐹𝐶 )
19 1 oismo ( 𝐵 ⊆ On → ( Smo 𝐹 ∧ ran 𝐹 = 𝐵 ) )
20 3 19 syl ( 𝐵 ∈ 𝒫 On → ( Smo 𝐹 ∧ ran 𝐹 = 𝐵 ) )
21 20 ad2antrl ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( Smo 𝐹 ∧ ran 𝐹 = 𝐵 ) )
22 21 simprd ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ran 𝐹 = 𝐵 )
23 1 oif 𝐹 : dom 𝐹𝐵
24 22 23 jctil ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( 𝐹 : dom 𝐹𝐵 ∧ ran 𝐹 = 𝐵 ) )
25 dffo2 ( 𝐹 : dom 𝐹onto𝐵 ↔ ( 𝐹 : dom 𝐹𝐵 ∧ ran 𝐹 = 𝐵 ) )
26 24 25 sylibr ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → 𝐹 : dom 𝐹onto𝐵 )
27 dffo3 ( 𝐹 : dom 𝐹onto𝐵 ↔ ( 𝐹 : dom 𝐹𝐵 ∧ ∀ 𝑏𝐵𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) ) )
28 27 simprbi ( 𝐹 : dom 𝐹onto𝐵 → ∀ 𝑏𝐵𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) )
29 rsp ( ∀ 𝑏𝐵𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) → ( 𝑏𝐵 → ∃ 𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) ) )
30 26 28 29 3syl ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( 𝑏𝐵 → ∃ 𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) ) )
31 30 3impia ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ∧ 𝑏𝐵 ) → ∃ 𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) )
32 ssrexv ( dom 𝐹𝐶 → ( ∃ 𝑒 ∈ dom 𝐹 𝑏 = ( 𝐹𝑒 ) → ∃ 𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ) )
33 18 31 32 sylc ( ( 𝐶 ∈ On ∧ ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ∧ 𝑏𝐵 ) → ∃ 𝑒𝐶 𝑏 = ( 𝐹𝑒 ) )
34 33 3exp ( 𝐶 ∈ On → ( ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) → ( 𝑏𝐵 → ∃ 𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ) ) )
35 14 34 sylan9r ( ( 𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( 𝑎𝐴 → ( 𝑏𝐵 → ∃ 𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ) ) )
36 13 35 reximdai ( ( 𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( ∃ 𝑎𝐴 𝑏𝐵 → ∃ 𝑎𝐴𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ) )
37 36 3adant1 ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( ∃ 𝑎𝐴 𝑏𝐵 → ∃ 𝑎𝐴𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ) )
38 nfv 𝑑𝑒𝐶 𝑏 = ( 𝐹𝑒 )
39 nfcv 𝑎 𝐶
40 nfcv 𝑎 E
41 nfcsb1v 𝑎 𝑑 / 𝑎 𝐵
42 40 41 nfoi 𝑎 OrdIso ( E , 𝑑 / 𝑎 𝐵 )
43 nfcv 𝑎 𝑒
44 42 43 nffv 𝑎 ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 )
45 44 nfeq2 𝑎 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 )
46 39 45 nfrex 𝑎𝑒𝐶 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 )
47 csbeq1a ( 𝑎 = 𝑑𝐵 = 𝑑 / 𝑎 𝐵 )
48 oieq2 ( 𝐵 = 𝑑 / 𝑎 𝐵 → OrdIso ( E , 𝐵 ) = OrdIso ( E , 𝑑 / 𝑎 𝐵 ) )
49 47 48 syl ( 𝑎 = 𝑑 → OrdIso ( E , 𝐵 ) = OrdIso ( E , 𝑑 / 𝑎 𝐵 ) )
50 1 49 eqtrid ( 𝑎 = 𝑑𝐹 = OrdIso ( E , 𝑑 / 𝑎 𝐵 ) )
51 50 fveq1d ( 𝑎 = 𝑑 → ( 𝐹𝑒 ) = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) )
52 51 eqeq2d ( 𝑎 = 𝑑 → ( 𝑏 = ( 𝐹𝑒 ) ↔ 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) ) )
53 52 rexbidv ( 𝑎 = 𝑑 → ( ∃ 𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ↔ ∃ 𝑒𝐶 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) ) )
54 38 46 53 cbvrexw ( ∃ 𝑎𝐴𝑒𝐶 𝑏 = ( 𝐹𝑒 ) ↔ ∃ 𝑑𝐴𝑒𝐶 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) )
55 37 54 syl6ib ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( ∃ 𝑎𝐴 𝑏𝐵 → ∃ 𝑑𝐴𝑒𝐶 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) ) )
56 eliun ( 𝑏 𝑎𝐴 𝐵 ↔ ∃ 𝑎𝐴 𝑏𝐵 )
57 vex 𝑑 ∈ V
58 vex 𝑒 ∈ V
59 57 58 op1std ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → ( 1st𝑐 ) = 𝑑 )
60 59 csbeq1d ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → ( 1st𝑐 ) / 𝑎 𝐵 = 𝑑 / 𝑎 𝐵 )
61 oieq2 ( ( 1st𝑐 ) / 𝑎 𝐵 = 𝑑 / 𝑎 𝐵 → OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) = OrdIso ( E , 𝑑 / 𝑎 𝐵 ) )
62 60 61 syl ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) = OrdIso ( E , 𝑑 / 𝑎 𝐵 ) )
63 57 58 op2ndd ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → ( 2nd𝑐 ) = 𝑒 )
64 62 63 fveq12d ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → ( OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) ‘ ( 2nd𝑐 ) ) = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) )
65 64 eqeq2d ( 𝑐 = ⟨ 𝑑 , 𝑒 ⟩ → ( 𝑏 = ( OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) ‘ ( 2nd𝑐 ) ) ↔ 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) ) )
66 65 rexxp ( ∃ 𝑐 ∈ ( 𝐴 × 𝐶 ) 𝑏 = ( OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) ‘ ( 2nd𝑐 ) ) ↔ ∃ 𝑑𝐴𝑒𝐶 𝑏 = ( OrdIso ( E , 𝑑 / 𝑎 𝐵 ) ‘ 𝑒 ) )
67 55 56 66 3imtr4g ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → ( 𝑏 𝑎𝐴 𝐵 → ∃ 𝑐 ∈ ( 𝐴 × 𝐶 ) 𝑏 = ( OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) ‘ ( 2nd𝑐 ) ) ) )
68 67 imp ( ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) ∧ 𝑏 𝑎𝐴 𝐵 ) → ∃ 𝑐 ∈ ( 𝐴 × 𝐶 ) 𝑏 = ( OrdIso ( E , ( 1st𝑐 ) / 𝑎 𝐵 ) ‘ ( 2nd𝑐 ) ) )
69 10 68 wdomd ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → 𝑎𝐴 𝐵* ( 𝐴 × 𝐶 ) )
70 2 hsmexlem1 ( ( 𝑎𝐴 𝐵 ⊆ On ∧ 𝑎𝐴 𝐵* ( 𝐴 × 𝐶 ) ) → dom 𝐺 ∈ ( har ‘ 𝒫 ( 𝐴 × 𝐶 ) ) )
71 8 69 70 syl2anc ( ( 𝐴𝑉𝐶 ∈ On ∧ ∀ 𝑎𝐴 ( 𝐵 ∈ 𝒫 On ∧ dom 𝐹𝐶 ) ) → dom 𝐺 ∈ ( har ‘ 𝒫 ( 𝐴 × 𝐶 ) ) )