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

Theorem bwth 21213
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 926 . . . . . . 7 ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
21a1i 11 . . . . . 6 (𝑏𝑧 → ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
32nrex 3000 . . . . 5 ¬ ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
4 r19.29 3072 . . . . 5 ((∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin) → ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
53, 4mto 188 . . . 4 ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
65a1i 11 . . 3 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
76nrex 3000 . 2 ¬ ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
8 ralnex 2992 . . . . . 6 (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
9 cmptop 21198 . . . . . . 7 (𝐽 ∈ Comp → 𝐽 ∈ Top)
10 bwt2.1 . . . . . . . . . . 11 𝑋 = 𝐽
1110islp3 20950 . . . . . . . . . 10 ((𝐽 ∈ Top ∧ 𝐴𝑋𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
12113expa 1265 . . . . . . . . 9 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1312notbid 308 . . . . . . . 8 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1413ralbidva 2985 . . . . . . 7 ((𝐽 ∈ Top ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
159, 14sylan 488 . . . . . 6 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
168, 15syl5bbr 274 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
17 rexanali 2998 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅))
18 nne 2798 . . . . . . . . . . . 12 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅)
19 vex 3203 . . . . . . . . . . . . 13 𝑥 ∈ V
20 sneq 4187 . . . . . . . . . . . . . . . 16 (𝑜 = 𝑥 → {𝑜} = {𝑥})
2120difeq2d 3728 . . . . . . . . . . . . . . 15 (𝑜 = 𝑥 → (𝐴 ∖ {𝑜}) = (𝐴 ∖ {𝑥}))
2221ineq2d 3814 . . . . . . . . . . . . . 14 (𝑜 = 𝑥 → (𝑏 ∩ (𝐴 ∖ {𝑜})) = (𝑏 ∩ (𝐴 ∖ {𝑥})))
2322eqeq1d 2624 . . . . . . . . . . . . 13 (𝑜 = 𝑥 → ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅))
2419, 23spcev 3300 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2518, 24sylbi 207 . . . . . . . . . . 11 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2625anim2i 593 . . . . . . . . . 10 ((𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2726reximi 3011 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2817, 27sylbir 225 . . . . . . . 8 (¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2928ralimi 2952 . . . . . . 7 (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3010cmpcov2 21193 . . . . . . . 8 ((𝐽 ∈ Comp ∧ ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3130ex 450 . . . . . . 7 (𝐽 ∈ Comp → (∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3229, 31syl5 34 . . . . . 6 (𝐽 ∈ Comp → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3332adantr 481 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3416, 33sylbid 230 . . . 4 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
35343adant3 1081 . . 3 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
36 inss2 3834 . . . . . . . . 9 (𝒫 𝐽 ∩ Fin) ⊆ Fin
3736sseli 3599 . . . . . . . 8 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → 𝑧 ∈ Fin)
38 sseq2 3627 . . . . . . . . . . . 12 (𝑋 = 𝑧 → (𝐴𝑋𝐴 𝑧))
3938biimpac 503 . . . . . . . . . . 11 ((𝐴𝑋𝑋 = 𝑧) → 𝐴 𝑧)
40 infssuni 8257 . . . . . . . . . . . . 13 ((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
41403expa 1265 . . . . . . . . . . . 12 (((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin) ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4241ancoms 469 . . . . . . . . . . 11 ((𝐴 𝑧 ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4339, 42sylan 488 . . . . . . . . . 10 (((𝐴𝑋𝑋 = 𝑧) ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4443an42s 870 . . . . . . . . 9 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ (𝑧 ∈ Fin ∧ 𝑋 = 𝑧)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4544anassrs 680 . . . . . . . 8 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ Fin) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4637, 45sylanl2 683 . . . . . . 7 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
47 0fin 8188 . . . . . . . . . . . 12 ∅ ∈ Fin
48 eleq1 2689 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ↔ ∅ ∈ Fin))
4947, 48mpbiri 248 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin)
50 snfi 8038 . . . . . . . . . . 11 {𝑜} ∈ Fin
51 unfi 8227 . . . . . . . . . . 11 (((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ∧ {𝑜} ∈ Fin) → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
5249, 50, 51sylancl 694 . . . . . . . . . 10 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
53 ssun1 3776 . . . . . . . . . . . 12 𝑏 ⊆ (𝑏 ∪ {𝑜})
54 ssun1 3776 . . . . . . . . . . . . 13 𝐴 ⊆ (𝐴 ∪ {𝑜})
55 undif1 4043 . . . . . . . . . . . . 13 ((𝐴 ∖ {𝑜}) ∪ {𝑜}) = (𝐴 ∪ {𝑜})
5654, 55sseqtr4i 3638 . . . . . . . . . . . 12 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})
57 ss2in 3840 . . . . . . . . . . . 12 ((𝑏 ⊆ (𝑏 ∪ {𝑜}) ∧ 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})) → (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜})))
5853, 56, 57mp2an 708 . . . . . . . . . . 11 (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
59 incom 3805 . . . . . . . . . . 11 (𝐴𝑏) = (𝑏𝐴)
60 undir 3876 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) = ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
6158, 59, 603sstr4i 3644 . . . . . . . . . 10 (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})
62 ssfi 8180 . . . . . . . . . 10 ((((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin ∧ (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})) → (𝐴𝑏) ∈ Fin)
6352, 61, 62sylancl 694 . . . . . . . . 9 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6463exlimiv 1858 . . . . . . . 8 (∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6564ralimi 2952 . . . . . . 7 (∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ∀𝑏𝑧 (𝐴𝑏) ∈ Fin)
6646, 65anim12ci 591 . . . . . 6 (((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
6766expl 648 . . . . 5 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) → ((𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
6867reximdva 3017 . . . 4 ((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
69683adant1 1079 . . 3 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
7035, 69syld 47 . 2 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
717, 70mt3i 141 1 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wa 384  w3a 1037   = wceq 1483  wex 1704  wcel 1990  wne 2794  wral 2912  wrex 2913  cdif 3571  cun 3572  cin 3573  wss 3574  c0 3915  𝒫 cpw 4158  {csn 4177   cuni 4436  cfv 5888  Fincfn 7955  Topctop 20698  limPtclp 20938  Compccmp 21189
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-iin 4523  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-oadd 7564  df-er 7742  df-en 7956  df-fin 7959  df-top 20699  df-cld 20823  df-ntr 20824  df-cls 20825  df-lp 20940  df-cmp 21190
This theorem is referenced by:  poimirlem30  33439  fourierdlem42  40366
  Copyright terms: Public domain W3C validator