Metamath Proof Explorer


Theorem ptrecube

Description: Any point in an open set of N-space is surrounded by an open cube within that set. (Contributed by Brendan Leahy, 21-Aug-2020) (Proof shortened by AV, 28-Sep-2020)

Ref Expression
Hypotheses ptrecube.r 𝑅 = ( ∏t ‘ ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) )
ptrecube.d 𝐷 = ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) )
Assertion ptrecube ( ( 𝑆𝑅𝑃𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 )

Proof

Step Hyp Ref Expression
1 ptrecube.r 𝑅 = ( ∏t ‘ ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) )
2 ptrecube.d 𝐷 = ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) )
3 fzfi ( 1 ... 𝑁 ) ∈ Fin
4 retop ( topGen ‘ ran (,) ) ∈ Top
5 fnconstg ( ( topGen ‘ ran (,) ) ∈ Top → ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) Fn ( 1 ... 𝑁 ) )
6 4 5 ax-mp ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) Fn ( 1 ... 𝑁 )
7 eqid { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } = { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) }
8 7 ptval ( ( ( 1 ... 𝑁 ) ∈ Fin ∧ ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) Fn ( 1 ... 𝑁 ) ) → ( ∏t ‘ ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ) = ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ) )
9 3 6 8 mp2an ( ∏t ‘ ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ) = ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } )
10 1 9 eqtri 𝑅 = ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } )
11 10 eleq2i ( 𝑆𝑅𝑆 ∈ ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ) )
12 tg2 ( ( 𝑆 ∈ ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ) ∧ 𝑃𝑆 ) → ∃ 𝑧 ∈ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ( 𝑃𝑧𝑧𝑆 ) )
13 7 elpt ( 𝑧 ∈ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ↔ ∃ 𝑔 ( ( 𝑔 Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑧 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑧 ) ( 𝑔𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) )
14 fvex ( topGen ‘ ran (,) ) ∈ V
15 14 fvconst2 ( 𝑛 ∈ ( 1 ... 𝑁 ) → ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) = ( topGen ‘ ran (,) ) )
16 15 eleq2d ( 𝑛 ∈ ( 1 ... 𝑁 ) → ( ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ↔ ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ) )
17 16 ralbiia ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ↔ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) )
18 elixp2 ( 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ↔ ( 𝑃 ∈ V ∧ 𝑃 Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) )
19 18 simp3bi ( 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) )
20 r19.26 ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) ↔ ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) )
21 uniretop ℝ = ( topGen ‘ ran (,) )
22 21 eltopss ( ( ( topGen ‘ ran (,) ) ∈ Top ∧ ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ) → ( 𝑔𝑛 ) ⊆ ℝ )
23 4 22 mpan ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) → ( 𝑔𝑛 ) ⊆ ℝ )
24 23 sselda ( ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ( 𝑃𝑛 ) ∈ ℝ )
25 2 rexmet 𝐷 ∈ ( ∞Met ‘ ℝ )
26 eqid ( MetOpen ‘ 𝐷 ) = ( MetOpen ‘ 𝐷 )
27 2 26 tgioo ( topGen ‘ ran (,) ) = ( MetOpen ‘ 𝐷 )
28 27 mopni2 ( ( 𝐷 ∈ ( ∞Met ‘ ℝ ) ∧ ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) )
29 25 28 mp3an1 ( ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) )
30 r19.42v ( ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) ↔ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) )
31 24 29 30 sylanbrc ( ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) )
32 31 ralimi ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) )
33 oveq2 ( 𝑦 = ( 𝑛 ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) = ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
34 33 sseq1d ( 𝑦 = ( 𝑛 ) → ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ↔ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) )
35 34 anbi2d ( 𝑦 = ( 𝑛 ) → ( ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) ↔ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) )
36 35 ac6sfi ( ( ( 1 ... 𝑁 ) ∈ Fin ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ∃ 𝑦 ∈ ℝ+ ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑦 ) ⊆ ( 𝑔𝑛 ) ) ) → ∃ ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) )
37 3 32 36 sylancr ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) )
38 1rp 1 ∈ ℝ+
39 38 a1i ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ( 1 ... 𝑁 ) = ∅ ) → 1 ∈ ℝ+ )
40 frn ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ran ⊆ ℝ+ )
41 40 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → ran ⊆ ℝ+ )
42 ffn ( : ( 1 ... 𝑁 ) ⟶ ℝ+ Fn ( 1 ... 𝑁 ) )
43 fnfi ( ( Fn ( 1 ... 𝑁 ) ∧ ( 1 ... 𝑁 ) ∈ Fin ) → ∈ Fin )
44 42 3 43 sylancl ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∈ Fin )
45 rnfi ( ∈ Fin → ran ∈ Fin )
46 44 45 syl ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ran ∈ Fin )
47 46 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → ran ∈ Fin )
48 dm0rn0 ( dom = ∅ ↔ ran = ∅ )
49 fdm ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → dom = ( 1 ... 𝑁 ) )
50 49 eqeq1d ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ( dom = ∅ ↔ ( 1 ... 𝑁 ) = ∅ ) )
51 48 50 bitr3id ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ( ran = ∅ ↔ ( 1 ... 𝑁 ) = ∅ ) )
52 51 necon3abid ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ( ran ≠ ∅ ↔ ¬ ( 1 ... 𝑁 ) = ∅ ) )
53 52 biimpar ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → ran ≠ ∅ )
54 rpssre + ⊆ ℝ
55 40 54 sstrdi ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ran ⊆ ℝ )
56 55 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → ran ⊆ ℝ )
57 ltso < Or ℝ
58 fiinfcl ( ( < Or ℝ ∧ ( ran ∈ Fin ∧ ran ≠ ∅ ∧ ran ⊆ ℝ ) ) → inf ( ran , ℝ , < ) ∈ ran )
59 57 58 mpan ( ( ran ∈ Fin ∧ ran ≠ ∅ ∧ ran ⊆ ℝ ) → inf ( ran , ℝ , < ) ∈ ran )
60 47 53 56 59 syl3anc ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → inf ( ran , ℝ , < ) ∈ ran )
61 41 60 sseldd ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ¬ ( 1 ... 𝑁 ) = ∅ ) → inf ( ran , ℝ , < ) ∈ ℝ+ )
62 39 61 ifclda ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ+ )
63 62 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ+ )
64 62 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ+ )
65 64 rpxrd ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* )
66 ffvelrn ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ( 𝑛 ) ∈ ℝ+ )
67 66 rpxrd ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ( 𝑛 ) ∈ ℝ* )
68 ne0i ( 𝑛 ∈ ( 1 ... 𝑁 ) → ( 1 ... 𝑁 ) ≠ ∅ )
69 ifnefalse ( ( 1 ... 𝑁 ) ≠ ∅ → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) = inf ( ran , ℝ , < ) )
70 68 69 syl ( 𝑛 ∈ ( 1 ... 𝑁 ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) = inf ( ran , ℝ , < ) )
71 70 adantl ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) = inf ( ran , ℝ , < ) )
72 55 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ran ⊆ ℝ )
73 0re 0 ∈ ℝ
74 rpge0 ( 𝑦 ∈ ℝ+ → 0 ≤ 𝑦 )
75 74 rgen 𝑦 ∈ ℝ+ 0 ≤ 𝑦
76 ssralv ( ran ⊆ ℝ+ → ( ∀ 𝑦 ∈ ℝ+ 0 ≤ 𝑦 → ∀ 𝑦 ∈ ran 0 ≤ 𝑦 ) )
77 40 75 76 mpisyl ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ∀ 𝑦 ∈ ran 0 ≤ 𝑦 )
78 breq1 ( 𝑥 = 0 → ( 𝑥𝑦 ↔ 0 ≤ 𝑦 ) )
79 78 ralbidv ( 𝑥 = 0 → ( ∀ 𝑦 ∈ ran 𝑥𝑦 ↔ ∀ 𝑦 ∈ ran 0 ≤ 𝑦 ) )
80 79 rspcev ( ( 0 ∈ ℝ ∧ ∀ 𝑦 ∈ ran 0 ≤ 𝑦 ) → ∃ 𝑥 ∈ ℝ ∀ 𝑦 ∈ ran 𝑥𝑦 )
81 73 77 80 sylancr ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ∃ 𝑥 ∈ ℝ ∀ 𝑦 ∈ ran 𝑥𝑦 )
82 81 adantr ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ∃ 𝑥 ∈ ℝ ∀ 𝑦 ∈ ran 𝑥𝑦 )
83 fnfvelrn ( ( Fn ( 1 ... 𝑁 ) ∧ 𝑛 ∈ ( 1 ... 𝑁 ) ) → ( 𝑛 ) ∈ ran )
84 42 83 sylan ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ( 𝑛 ) ∈ ran )
85 infrelb ( ( ran ⊆ ℝ ∧ ∃ 𝑥 ∈ ℝ ∀ 𝑦 ∈ ran 𝑥𝑦 ∧ ( 𝑛 ) ∈ ran ) → inf ( ran , ℝ , < ) ≤ ( 𝑛 ) )
86 72 82 84 85 syl3anc ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → inf ( ran , ℝ , < ) ≤ ( 𝑛 ) )
87 71 86 eqbrtrd ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) )
88 65 67 87 jca31 ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ( ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* ∧ ( 𝑛 ) ∈ ℝ* ) ∧ if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) ) )
89 ssbl ( ( ( 𝐷 ∈ ( ∞Met ‘ ℝ ) ∧ ( 𝑃𝑛 ) ∈ ℝ ) ∧ ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* ∧ ( 𝑛 ) ∈ ℝ* ) ∧ if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
90 89 3expb ( ( ( 𝐷 ∈ ( ∞Met ‘ ℝ ) ∧ ( 𝑃𝑛 ) ∈ ℝ ) ∧ ( ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* ∧ ( 𝑛 ) ∈ ℝ* ) ∧ if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) ) ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
91 25 90 mpanl1 ( ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* ∧ ( 𝑛 ) ∈ ℝ* ) ∧ if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) ) ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
92 91 ancoms ( ( ( ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ* ∧ ( 𝑛 ) ∈ ℝ* ) ∧ if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ≤ ( 𝑛 ) ) ∧ ( 𝑃𝑛 ) ∈ ℝ ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
93 88 92 sylan ( ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) ∧ ( 𝑃𝑛 ) ∈ ℝ ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) )
94 sstr2 ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) → ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
95 93 94 syl ( ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) ∧ ( 𝑃𝑛 ) ∈ ℝ ) → ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
96 95 expimpd ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ) → ( ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
97 96 ralimdva ( : ( 1 ... 𝑁 ) ⟶ ℝ+ → ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) → ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
98 97 imp ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) → ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) )
99 2 fveq2i ( ball ‘ 𝐷 ) = ( ball ‘ ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) ) )
100 99 oveqi ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) = ( ( 𝑃𝑛 ) ( ball ‘ ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) ) ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) )
101 100 sseq1i ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ↔ ( ( 𝑃𝑛 ) ( ball ‘ ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) ) ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) )
102 101 ralbii ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ↔ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) ) ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) )
103 nfv 𝑑𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ ( ( abs ∘ − ) ↾ ( ℝ × ℝ ) ) ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 )
104 102 103 nfxfr 𝑑𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 )
105 oveq2 ( 𝑑 = if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) → ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) = ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) )
106 105 sseq1d ( 𝑑 = if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) → ( ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) ↔ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
107 106 ralbidv ( 𝑑 = if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) → ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) ↔ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) )
108 104 107 rspce ( ( if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ∈ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) if ( ( 1 ... 𝑁 ) = ∅ , 1 , inf ( ran , ℝ , < ) ) ) ⊆ ( 𝑔𝑛 ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
109 63 98 108 syl2anc ( ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
110 109 exlimiv ( ∃ ( : ( 1 ... 𝑁 ) ⟶ ℝ+ ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ∈ ℝ ∧ ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) ( 𝑛 ) ) ⊆ ( 𝑔𝑛 ) ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
111 37 110 syl ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
112 20 111 sylbir ( ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑃𝑛 ) ∈ ( 𝑔𝑛 ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
113 19 112 sylan2 ( ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( topGen ‘ ran (,) ) ∧ 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
114 17 113 sylanb ( ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) → ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) )
115 sstr2 ( X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
116 ss2ixp ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) → X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) )
117 115 116 syl11 ( X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 → ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) → X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
118 117 reximdv ( X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 → ( ∃ 𝑑 ∈ ℝ+𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ ( 𝑔𝑛 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
119 114 118 syl5com ( ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) → ( X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
120 119 expimpd ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) → ( ( 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∧ X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
121 eleq2 ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( 𝑃𝑧𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) )
122 sseq1 ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( 𝑧𝑆X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 ) )
123 121 122 anbi12d ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( ( 𝑃𝑧𝑧𝑆 ) ↔ ( 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∧ X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 ) ) )
124 123 imbi1d ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) ↔ ( ( 𝑃X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∧ X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ⊆ 𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) ) )
125 120 124 syl5ibrcom ( ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) → ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) ) )
126 125 3ad2ant2 ( ( 𝑔 Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑧 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑧 ) ( 𝑔𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) → ( 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) → ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) ) )
127 126 imp ( ( ( 𝑔 Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑧 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑧 ) ( 𝑔𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) → ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
128 127 exlimiv ( ∃ 𝑔 ( ( 𝑔 Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑧 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑧 ) ( 𝑔𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑧 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑔𝑛 ) ) → ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
129 13 128 sylbi ( 𝑧 ∈ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } → ( ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 ) )
130 129 rexlimiv ( ∃ 𝑧 ∈ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ( 𝑃𝑧𝑧𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 )
131 12 130 syl ( ( 𝑆 ∈ ( topGen ‘ { 𝑥 ∣ ∃ ( ( Fn ( 1 ... 𝑁 ) ∧ ∀ 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ∈ ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ∧ ∃ 𝑤 ∈ Fin ∀ 𝑛 ∈ ( ( 1 ... 𝑁 ) ∖ 𝑤 ) ( 𝑛 ) = ( ( ( 1 ... 𝑁 ) × { ( topGen ‘ ran (,) ) } ) ‘ 𝑛 ) ) ∧ 𝑥 = X 𝑛 ∈ ( 1 ... 𝑁 ) ( 𝑛 ) ) } ) ∧ 𝑃𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 )
132 11 131 sylanb ( ( 𝑆𝑅𝑃𝑆 ) → ∃ 𝑑 ∈ ℝ+ X 𝑛 ∈ ( 1 ... 𝑁 ) ( ( 𝑃𝑛 ) ( ball ‘ 𝐷 ) 𝑑 ) ⊆ 𝑆 )