Metamath Proof Explorer


Theorem elcls3

Description: Membership in a closure in terms of the members of a basis. Theorem 6.5(b) of Munkres p. 95. (Contributed by NM, 26-Feb-2007) (Revised by Mario Carneiro, 3-Sep-2015)

Ref Expression
Hypotheses elcls3.1 ( 𝜑𝐽 = ( topGen ‘ 𝐵 ) )
elcls3.2 ( 𝜑𝑋 = 𝐽 )
elcls3.3 ( 𝜑𝐵 ∈ TopBases )
elcls3.4 ( 𝜑𝑆𝑋 )
elcls3.5 ( 𝜑𝑃𝑋 )
Assertion elcls3 ( 𝜑 → ( 𝑃 ∈ ( ( cls ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) )

Proof

Step Hyp Ref Expression
1 elcls3.1 ( 𝜑𝐽 = ( topGen ‘ 𝐵 ) )
2 elcls3.2 ( 𝜑𝑋 = 𝐽 )
3 elcls3.3 ( 𝜑𝐵 ∈ TopBases )
4 elcls3.4 ( 𝜑𝑆𝑋 )
5 elcls3.5 ( 𝜑𝑃𝑋 )
6 tgcl ( 𝐵 ∈ TopBases → ( topGen ‘ 𝐵 ) ∈ Top )
7 3 6 syl ( 𝜑 → ( topGen ‘ 𝐵 ) ∈ Top )
8 1 7 eqeltrd ( 𝜑𝐽 ∈ Top )
9 4 2 sseqtrd ( 𝜑𝑆 𝐽 )
10 5 2 eleqtrd ( 𝜑𝑃 𝐽 )
11 eqid 𝐽 = 𝐽
12 11 elcls ( ( 𝐽 ∈ Top ∧ 𝑆 𝐽𝑃 𝐽 ) → ( 𝑃 ∈ ( ( cls ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) )
13 8 9 10 12 syl3anc ( 𝜑 → ( 𝑃 ∈ ( ( cls ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) )
14 bastg ( 𝐵 ∈ TopBases → 𝐵 ⊆ ( topGen ‘ 𝐵 ) )
15 3 14 syl ( 𝜑𝐵 ⊆ ( topGen ‘ 𝐵 ) )
16 15 1 sseqtrrd ( 𝜑𝐵𝐽 )
17 16 sseld ( 𝜑 → ( 𝑦𝐵𝑦𝐽 ) )
18 17 imim1d ( 𝜑 → ( ( 𝑦𝐽 → ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) → ( 𝑦𝐵 → ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) ) )
19 18 ralimdv2 ( 𝜑 → ( ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) → ∀ 𝑦𝐵 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) )
20 eleq2w ( 𝑦 = 𝑥 → ( 𝑃𝑦𝑃𝑥 ) )
21 ineq1 ( 𝑦 = 𝑥 → ( 𝑦𝑆 ) = ( 𝑥𝑆 ) )
22 21 neeq1d ( 𝑦 = 𝑥 → ( ( 𝑦𝑆 ) ≠ ∅ ↔ ( 𝑥𝑆 ) ≠ ∅ ) )
23 20 22 imbi12d ( 𝑦 = 𝑥 → ( ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ↔ ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) )
24 23 cbvralvw ( ∀ 𝑦𝐵 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ↔ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) )
25 19 24 syl6ib ( 𝜑 → ( ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) → ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) )
26 simprl ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → 𝑦𝐽 )
27 1 ad2antrr ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → 𝐽 = ( topGen ‘ 𝐵 ) )
28 26 27 eleqtrd ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → 𝑦 ∈ ( topGen ‘ 𝐵 ) )
29 simprr ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → 𝑃𝑦 )
30 tg2 ( ( 𝑦 ∈ ( topGen ‘ 𝐵 ) ∧ 𝑃𝑦 ) → ∃ 𝑧𝐵 ( 𝑃𝑧𝑧𝑦 ) )
31 28 29 30 syl2anc ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → ∃ 𝑧𝐵 ( 𝑃𝑧𝑧𝑦 ) )
32 eleq2w ( 𝑥 = 𝑧 → ( 𝑃𝑥𝑃𝑧 ) )
33 ineq1 ( 𝑥 = 𝑧 → ( 𝑥𝑆 ) = ( 𝑧𝑆 ) )
34 33 neeq1d ( 𝑥 = 𝑧 → ( ( 𝑥𝑆 ) ≠ ∅ ↔ ( 𝑧𝑆 ) ≠ ∅ ) )
35 32 34 imbi12d ( 𝑥 = 𝑧 → ( ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ↔ ( 𝑃𝑧 → ( 𝑧𝑆 ) ≠ ∅ ) ) )
36 35 rspccva ( ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ∧ 𝑧𝐵 ) → ( 𝑃𝑧 → ( 𝑧𝑆 ) ≠ ∅ ) )
37 36 imp ( ( ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ∧ 𝑧𝐵 ) ∧ 𝑃𝑧 ) → ( 𝑧𝑆 ) ≠ ∅ )
38 ssdisj ( ( 𝑧𝑦 ∧ ( 𝑦𝑆 ) = ∅ ) → ( 𝑧𝑆 ) = ∅ )
39 38 ex ( 𝑧𝑦 → ( ( 𝑦𝑆 ) = ∅ → ( 𝑧𝑆 ) = ∅ ) )
40 39 necon3d ( 𝑧𝑦 → ( ( 𝑧𝑆 ) ≠ ∅ → ( 𝑦𝑆 ) ≠ ∅ ) )
41 37 40 syl5com ( ( ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ∧ 𝑧𝐵 ) ∧ 𝑃𝑧 ) → ( 𝑧𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) )
42 41 exp31 ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) → ( 𝑧𝐵 → ( 𝑃𝑧 → ( 𝑧𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) ) )
43 42 imp4a ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) → ( 𝑧𝐵 → ( ( 𝑃𝑧𝑧𝑦 ) → ( 𝑦𝑆 ) ≠ ∅ ) ) )
44 43 rexlimdv ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) → ( ∃ 𝑧𝐵 ( 𝑃𝑧𝑧𝑦 ) → ( 𝑦𝑆 ) ≠ ∅ ) )
45 44 ad2antlr ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → ( ∃ 𝑧𝐵 ( 𝑃𝑧𝑧𝑦 ) → ( 𝑦𝑆 ) ≠ ∅ ) )
46 31 45 mpd ( ( ( 𝜑 ∧ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) ∧ ( 𝑦𝐽𝑃𝑦 ) ) → ( 𝑦𝑆 ) ≠ ∅ )
47 46 exp43 ( 𝜑 → ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) → ( 𝑦𝐽 → ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) ) )
48 47 ralrimdv ( 𝜑 → ( ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) → ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ) )
49 25 48 impbid ( 𝜑 → ( ∀ 𝑦𝐽 ( 𝑃𝑦 → ( 𝑦𝑆 ) ≠ ∅ ) ↔ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) )
50 13 49 bitrd ( 𝜑 → ( 𝑃 ∈ ( ( cls ‘ 𝐽 ) ‘ 𝑆 ) ↔ ∀ 𝑥𝐵 ( 𝑃𝑥 → ( 𝑥𝑆 ) ≠ ∅ ) ) )