MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  bwth Structured version   Visualization version   GIF version

Theorem bwth 21622
Description: The glorious Bolzano-Weierstrass theorem. The first general topology theorem ever proved. The first mention of this theorem can be found in a course by Weierstrass from 1865. In his course Weierstrass called it a lemma. He didn't know how famous this theorem would be. He used a Euclidean space instead of a general compact space. And he was not aware of the Heine-Borel property. But the concepts of neighborhood and limit point were already there although not precisely defined. Cantor was one of his students. He published and used the theorem in an article from 1872. The rest of the general topology followed from that. (Contributed by FL, 2-Aug-2009.) (Revised by Mario Carneiro, 15-Dec-2013.) Revised by BL to significantly shorten the proof and avoid infinity, regularity, and choice. (Revised by Brendan Leahy, 26-Dec-2018.)
Hypothesis
Ref Expression
bwt2.1 𝑋 = 𝐽
Assertion
Ref Expression
bwth ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
Distinct variable groups:   𝑥,𝐴   𝑥,𝐽   𝑥,𝑋

Proof of Theorem bwth
Dummy variables 𝑜 𝑏 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 pm3.24 393 . . . . . . 7 ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
21a1i 11 . . . . . 6 (𝑏𝑧 → ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
32nrex 3181 . . . . 5 ¬ ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
4 r19.29 3258 . . . . 5 ((∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin) → ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
53, 4mto 189 . . . 4 ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
65a1i 11 . . 3 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
76nrex 3181 . 2 ¬ ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
8 ralnex 3174 . . . . . 6 (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
9 cmptop 21607 . . . . . . 7 (𝐽 ∈ Comp → 𝐽 ∈ Top)
10 bwt2.1 . . . . . . . . . . 11 𝑋 = 𝐽
1110islp3 21358 . . . . . . . . . 10 ((𝐽 ∈ Top ∧ 𝐴𝑋𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
12113expa 1108 . . . . . . . . 9 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1312notbid 310 . . . . . . . 8 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1413ralbidva 3167 . . . . . . 7 ((𝐽 ∈ Top ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
159, 14sylan 575 . . . . . 6 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
168, 15syl5bbr 277 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
17 rexanali 3179 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅))
18 nne 2973 . . . . . . . . . . . 12 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅)
19 vex 3401 . . . . . . . . . . . . 13 𝑥 ∈ V
20 sneq 4408 . . . . . . . . . . . . . . . 16 (𝑜 = 𝑥 → {𝑜} = {𝑥})
2120difeq2d 3951 . . . . . . . . . . . . . . 15 (𝑜 = 𝑥 → (𝐴 ∖ {𝑜}) = (𝐴 ∖ {𝑥}))
2221ineq2d 4037 . . . . . . . . . . . . . 14 (𝑜 = 𝑥 → (𝑏 ∩ (𝐴 ∖ {𝑜})) = (𝑏 ∩ (𝐴 ∖ {𝑥})))
2322eqeq1d 2780 . . . . . . . . . . . . 13 (𝑜 = 𝑥 → ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅))
2419, 23spcev 3502 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2518, 24sylbi 209 . . . . . . . . . . 11 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2625anim2i 610 . . . . . . . . . 10 ((𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2726reximi 3192 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2817, 27sylbir 227 . . . . . . . 8 (¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2928ralimi 3134 . . . . . . 7 (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3010cmpcov2 21602 . . . . . . . 8 ((𝐽 ∈ Comp ∧ ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3130ex 403 . . . . . . 7 (𝐽 ∈ Comp → (∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3229, 31syl5 34 . . . . . 6 (𝐽 ∈ Comp → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3332adantr 474 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3416, 33sylbid 232 . . . 4 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
35343adant3 1123 . . 3 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
36 inss2 4054 . . . . . . . . 9 (𝒫 𝐽 ∩ Fin) ⊆ Fin
3736sseli 3817 . . . . . . . 8 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → 𝑧 ∈ Fin)
38 sseq2 3846 . . . . . . . . . . . 12 (𝑋 = 𝑧 → (𝐴𝑋𝐴 𝑧))
3938biimpac 472 . . . . . . . . . . 11 ((𝐴𝑋𝑋 = 𝑧) → 𝐴 𝑧)
40 infssuni 8545 . . . . . . . . . . . . 13 ((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
41403expa 1108 . . . . . . . . . . . 12 (((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin) ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4241ancoms 452 . . . . . . . . . . 11 ((𝐴 𝑧 ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4339, 42sylan 575 . . . . . . . . . 10 (((𝐴𝑋𝑋 = 𝑧) ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4443an42s 651 . . . . . . . . 9 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ (𝑧 ∈ Fin ∧ 𝑋 = 𝑧)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4544anassrs 461 . . . . . . . 8 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ Fin) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4637, 45sylanl2 671 . . . . . . 7 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
47 0fin 8476 . . . . . . . . . . . 12 ∅ ∈ Fin
48 eleq1 2847 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ↔ ∅ ∈ Fin))
4947, 48mpbiri 250 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin)
50 snfi 8326 . . . . . . . . . . 11 {𝑜} ∈ Fin
51 unfi 8515 . . . . . . . . . . 11 (((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ∧ {𝑜} ∈ Fin) → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
5249, 50, 51sylancl 580 . . . . . . . . . 10 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
53 ssun1 3999 . . . . . . . . . . . 12 𝑏 ⊆ (𝑏 ∪ {𝑜})
54 ssun1 3999 . . . . . . . . . . . . 13 𝐴 ⊆ (𝐴 ∪ {𝑜})
55 undif1 4267 . . . . . . . . . . . . 13 ((𝐴 ∖ {𝑜}) ∪ {𝑜}) = (𝐴 ∪ {𝑜})
5654, 55sseqtr4i 3857 . . . . . . . . . . . 12 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})
57 ss2in 4061 . . . . . . . . . . . 12 ((𝑏 ⊆ (𝑏 ∪ {𝑜}) ∧ 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})) → (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜})))
5853, 56, 57mp2an 682 . . . . . . . . . . 11 (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
59 incom 4028 . . . . . . . . . . 11 (𝐴𝑏) = (𝑏𝐴)
60 undir 4103 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) = ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
6158, 59, 603sstr4i 3863 . . . . . . . . . 10 (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})
62 ssfi 8468 . . . . . . . . . 10 ((((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin ∧ (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})) → (𝐴𝑏) ∈ Fin)
6352, 61, 62sylancl 580 . . . . . . . . 9 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6463exlimiv 1973 . . . . . . . 8 (∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6564ralimi 3134 . . . . . . 7 (∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ∀𝑏𝑧 (𝐴𝑏) ∈ Fin)
6646, 65anim12ci 607 . . . . . 6 (((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
6766expl 451 . . . . 5 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) → ((𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
6867reximdva 3198 . . . 4 ((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
69683adant1 1121 . . 3 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
7035, 69syld 47 . 2 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
717, 70mt3i 144 1 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 198  wa 386  w3a 1071   = wceq 1601  wex 1823  wcel 2107  wne 2969  wral 3090  wrex 3091  cdif 3789  cun 3790  cin 3791  wss 3792  c0 4141  𝒫 cpw 4379  {csn 4398   cuni 4671  cfv 6135  Fincfn 8241  Topctop 21105  limPtclp 21346  Compccmp 21598
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1839  ax-4 1853  ax-5 1953  ax-6 2021  ax-7 2055  ax-8 2109  ax-9 2116  ax-10 2135  ax-11 2150  ax-12 2163  ax-13 2334  ax-ext 2754  ax-rep 5006  ax-sep 5017  ax-nul 5025  ax-pow 5077  ax-pr 5138  ax-un 7226
This theorem depends on definitions:  df-bi 199  df-an 387  df-or 837  df-3or 1072  df-3an 1073  df-tru 1605  df-ex 1824  df-nf 1828  df-sb 2012  df-mo 2551  df-eu 2587  df-clab 2764  df-cleq 2770  df-clel 2774  df-nfc 2921  df-ne 2970  df-ral 3095  df-rex 3096  df-reu 3097  df-rab 3099  df-v 3400  df-sbc 3653  df-csb 3752  df-dif 3795  df-un 3797  df-in 3799  df-ss 3806  df-pss 3808  df-nul 4142  df-if 4308  df-pw 4381  df-sn 4399  df-pr 4401  df-tp 4403  df-op 4405  df-uni 4672  df-int 4711  df-iun 4755  df-iin 4756  df-br 4887  df-opab 4949  df-mpt 4966  df-tr 4988  df-id 5261  df-eprel 5266  df-po 5274  df-so 5275  df-fr 5314  df-we 5316  df-xp 5361  df-rel 5362  df-cnv 5363  df-co 5364  df-dm 5365  df-rn 5366  df-res 5367  df-ima 5368  df-pred 5933  df-ord 5979  df-on 5980  df-lim 5981  df-suc 5982  df-iota 6099  df-fun 6137  df-fn 6138  df-f 6139  df-f1 6140  df-fo 6141  df-f1o 6142  df-fv 6143  df-ov 6925  df-oprab 6926  df-mpt2 6927  df-om 7344  df-wrecs 7689  df-recs 7751  df-rdg 7789  df-1o 7843  df-oadd 7847  df-er 8026  df-en 8242  df-fin 8245  df-top 21106  df-cld 21231  df-ntr 21232  df-cls 21233  df-lp 21348  df-cmp 21599
This theorem is referenced by:  poimirlem30  34065  fourierdlem42  41293
  Copyright terms: Public domain W3C validator