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

Theorem bwth 21261
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 944 . . . . . . 7 ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
21a1i 11 . . . . . 6 (𝑏𝑧 → ¬ ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
32nrex 3029 . . . . 5 ¬ ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin)
4 r19.29 3101 . . . . 5 ((∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin) → ∃𝑏𝑧 ((𝐴𝑏) ∈ Fin ∧ ¬ (𝐴𝑏) ∈ Fin))
53, 4mto 188 . . . 4 ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
65a1i 11 . . 3 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → ¬ (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
76nrex 3029 . 2 ¬ ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
8 ralnex 3021 . . . . . 6 (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴))
9 cmptop 21246 . . . . . . 7 (𝐽 ∈ Comp → 𝐽 ∈ Top)
10 bwt2.1 . . . . . . . . . . 11 𝑋 = 𝐽
1110islp3 20998 . . . . . . . . . 10 ((𝐽 ∈ Top ∧ 𝐴𝑋𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
12113expa 1284 . . . . . . . . 9 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1312notbid 307 . . . . . . . 8 (((𝐽 ∈ Top ∧ 𝐴𝑋) ∧ 𝑥𝑋) → (¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
1413ralbidva 3014 . . . . . . 7 ((𝐽 ∈ Top ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
159, 14sylan 487 . . . . . 6 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
168, 15syl5bbr 274 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) ↔ ∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅)))
17 rexanali 3027 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) ↔ ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅))
18 nne 2827 . . . . . . . . . . . 12 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅)
19 vex 3234 . . . . . . . . . . . . 13 𝑥 ∈ V
20 sneq 4220 . . . . . . . . . . . . . . . 16 (𝑜 = 𝑥 → {𝑜} = {𝑥})
2120difeq2d 3761 . . . . . . . . . . . . . . 15 (𝑜 = 𝑥 → (𝐴 ∖ {𝑜}) = (𝐴 ∖ {𝑥}))
2221ineq2d 3847 . . . . . . . . . . . . . 14 (𝑜 = 𝑥 → (𝑏 ∩ (𝐴 ∖ {𝑜})) = (𝑏 ∩ (𝐴 ∖ {𝑥})))
2322eqeq1d 2653 . . . . . . . . . . . . 13 (𝑜 = 𝑥 → ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ ↔ (𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅))
2419, 23spcev 3331 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑥})) = ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2518, 24sylbi 207 . . . . . . . . . . 11 (¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅ → ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)
2625anim2i 592 . . . . . . . . . 10 ((𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2726reximi 3040 . . . . . . . . 9 (∃𝑏𝐽 (𝑥𝑏 ∧ ¬ (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2817, 27sylbir 225 . . . . . . . 8 (¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
2928ralimi 2981 . . . . . . 7 (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3010cmpcov2 21241 . . . . . . . 8 ((𝐽 ∈ Comp ∧ ∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅))
3130ex 449 . . . . . . 7 (𝐽 ∈ Comp → (∀𝑥𝑋𝑏𝐽 (𝑥𝑏 ∧ ∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3229, 31syl5 34 . . . . . 6 (𝐽 ∈ Comp → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3332adantr 480 . . . . 5 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (∀𝑥𝑋 ¬ ∀𝑏𝐽 (𝑥𝑏 → (𝑏 ∩ (𝐴 ∖ {𝑥})) ≠ ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
3416, 33sylbid 230 . . . 4 ((𝐽 ∈ Comp ∧ 𝐴𝑋) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
35343adant3 1101 . . 3 ((𝐽 ∈ Comp ∧ 𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (¬ ∃𝑥𝑋 𝑥 ∈ ((limPt‘𝐽)‘𝐴) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅)))
36 inss2 3867 . . . . . . . . 9 (𝒫 𝐽 ∩ Fin) ⊆ Fin
3736sseli 3632 . . . . . . . 8 (𝑧 ∈ (𝒫 𝐽 ∩ Fin) → 𝑧 ∈ Fin)
38 sseq2 3660 . . . . . . . . . . . 12 (𝑋 = 𝑧 → (𝐴𝑋𝐴 𝑧))
3938biimpac 502 . . . . . . . . . . 11 ((𝐴𝑋𝑋 = 𝑧) → 𝐴 𝑧)
40 infssuni 8298 . . . . . . . . . . . . 13 ((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
41403expa 1284 . . . . . . . . . . . 12 (((¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin) ∧ 𝐴 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4241ancoms 468 . . . . . . . . . . 11 ((𝐴 𝑧 ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4339, 42sylan 487 . . . . . . . . . 10 (((𝐴𝑋𝑋 = 𝑧) ∧ (¬ 𝐴 ∈ Fin ∧ 𝑧 ∈ Fin)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4443an42s 887 . . . . . . . . 9 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ (𝑧 ∈ Fin ∧ 𝑋 = 𝑧)) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4544anassrs 681 . . . . . . . 8 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ Fin) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
4637, 45sylanl2 684 . . . . . . 7 ((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) → ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)
47 0fin 8229 . . . . . . . . . . . 12 ∅ ∈ Fin
48 eleq1 2718 . . . . . . . . . . . 12 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ↔ ∅ ∈ Fin))
4947, 48mpbiri 248 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin)
50 snfi 8079 . . . . . . . . . . 11 {𝑜} ∈ Fin
51 unfi 8268 . . . . . . . . . . 11 (((𝑏 ∩ (𝐴 ∖ {𝑜})) ∈ Fin ∧ {𝑜} ∈ Fin) → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
5249, 50, 51sylancl 695 . . . . . . . . . 10 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin)
53 ssun1 3809 . . . . . . . . . . . 12 𝑏 ⊆ (𝑏 ∪ {𝑜})
54 ssun1 3809 . . . . . . . . . . . . 13 𝐴 ⊆ (𝐴 ∪ {𝑜})
55 undif1 4076 . . . . . . . . . . . . 13 ((𝐴 ∖ {𝑜}) ∪ {𝑜}) = (𝐴 ∪ {𝑜})
5654, 55sseqtr4i 3671 . . . . . . . . . . . 12 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})
57 ss2in 3873 . . . . . . . . . . . 12 ((𝑏 ⊆ (𝑏 ∪ {𝑜}) ∧ 𝐴 ⊆ ((𝐴 ∖ {𝑜}) ∪ {𝑜})) → (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜})))
5853, 56, 57mp2an 708 . . . . . . . . . . 11 (𝑏𝐴) ⊆ ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
59 incom 3838 . . . . . . . . . . 11 (𝐴𝑏) = (𝑏𝐴)
60 undir 3909 . . . . . . . . . . 11 ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) = ((𝑏 ∪ {𝑜}) ∩ ((𝐴 ∖ {𝑜}) ∪ {𝑜}))
6158, 59, 603sstr4i 3677 . . . . . . . . . 10 (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})
62 ssfi 8221 . . . . . . . . . 10 ((((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜}) ∈ Fin ∧ (𝐴𝑏) ⊆ ((𝑏 ∩ (𝐴 ∖ {𝑜})) ∪ {𝑜})) → (𝐴𝑏) ∈ Fin)
6352, 61, 62sylancl 695 . . . . . . . . 9 ((𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6463exlimiv 1898 . . . . . . . 8 (∃𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → (𝐴𝑏) ∈ Fin)
6564ralimi 2981 . . . . . . 7 (∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅ → ∀𝑏𝑧 (𝐴𝑏) ∈ Fin)
6646, 65anim12ci 590 . . . . . 6 (((((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) ∧ 𝑋 = 𝑧) ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin))
6766expl 647 . . . . 5 (((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) ∧ 𝑧 ∈ (𝒫 𝐽 ∩ Fin)) → ((𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → (∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
6867reximdva 3046 . . . 4 ((𝐴𝑋 ∧ ¬ 𝐴 ∈ Fin) → (∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(𝑋 = 𝑧 ∧ ∀𝑏𝑧𝑜(𝑏 ∩ (𝐴 ∖ {𝑜})) = ∅) → ∃𝑧 ∈ (𝒫 𝐽 ∩ Fin)(∀𝑏𝑧 (𝐴𝑏) ∈ Fin ∧ ∃𝑏𝑧 ¬ (𝐴𝑏) ∈ Fin)))
69683adant1 1099 . . 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 383  w3a 1054   = wceq 1523  wex 1744  wcel 2030  wne 2823  wral 2941  wrex 2942  cdif 3604  cun 3605  cin 3606  wss 3607  c0 3948  𝒫 cpw 4191  {csn 4210   cuni 4468  cfv 5926  Fincfn 7997  Topctop 20746  limPtclp 20986  Compccmp 21237
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-ral 2946  df-rex 2947  df-reu 2948  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-iin 4555  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-oadd 7609  df-er 7787  df-en 7998  df-fin 8001  df-top 20747  df-cld 20871  df-ntr 20872  df-cls 20873  df-lp 20988  df-cmp 21238
This theorem is referenced by:  poimirlem30  33569  fourierdlem42  40684
  Copyright terms: Public domain W3C validator