|
| 1 | +import Munkres.Subtype.Induced |
| 2 | + |
| 3 | +import Munkres.Defs.Subtype |
| 4 | + |
| 5 | +open Set |
| 6 | + |
| 7 | +namespace Munkres |
| 8 | + |
| 9 | +universe u |
| 10 | + |
| 11 | +variable {α : Type u} |
| 12 | + |
| 13 | +section SimpleCases |
| 14 | +variable {X A : Set α} [TopologicalSpace X] |
| 15 | + |
| 16 | +-- Empty and univ lemmas. |
| 17 | + |
| 18 | +lemma isOpenIn_empty : IsOpenIn ∅ X |
| 19 | + := by -- |
| 20 | + exact { isOpen' := isOpen_const, subset' := empty_subset X } -- ∎ |
| 21 | +lemma isOpenIn_univ : IsOpenIn X X |
| 22 | + := by -- |
| 23 | + refine { isOpen' := ?_, subset' := le_rfl } |
| 24 | + rw [Subtype.coe_preimage_self] |
| 25 | + exact isOpen_univ -- ∎ |
| 26 | + |
| 27 | +lemma isClosedIn_empty : IsClosedIn ∅ X |
| 28 | + := by -- |
| 29 | + exact { isClosed' := isClosed_const, subset' := empty_subset X } -- ∎ |
| 30 | +lemma isClosedIn_univ : IsClosedIn X X |
| 31 | + := by -- |
| 32 | + refine { isClosed' := ?_, subset' := le_rfl } |
| 33 | + rw [Subtype.coe_preimage_self] |
| 34 | + exact isClosed_univ -- ∎ |
| 35 | + |
| 36 | +lemma isCompactIn_empty : IsCompactIn ∅ X |
| 37 | + := by -- |
| 38 | + refine { isCompact' := ?_, subset' := empty_subset X } |
| 39 | + rw [preimage_empty] |
| 40 | + exact isCompact_empty -- ∎ |
| 41 | + |
| 42 | +-- Complement lemmas. |
| 43 | + |
| 44 | +lemma IsClosedIn.isOpen_compl (h : IsClosedIn A X) : IsOpenIn (X \ A) X |
| 45 | + := by -- |
| 46 | + refine { isOpen' := ?_, subset' := diff_subset } |
| 47 | + rw [<-Subtype.compl] |
| 48 | + exact h.isClosed'.isOpen_compl -- ∎ |
| 49 | +lemma IsOpenIn.isClosed_compl (h : IsOpenIn A X) : IsClosedIn (X \ A) X |
| 50 | + := by -- |
| 51 | + refine { isClosed' := ?_, subset' := diff_subset } |
| 52 | + rw [<-Subtype.compl] |
| 53 | + exact h.isOpen'.isClosed_compl -- ∎ |
| 54 | + |
| 55 | +lemma IsClosedIn.iff_compl : IsClosedIn A X ↔ IsOpenIn (X \ A) X ∧ A ⊆ X |
| 56 | + := by -- |
| 57 | + refine ⟨fun h ↦ ⟨h.isOpen_compl, h.subset'⟩, ?_⟩ |
| 58 | + intro ⟨h, subset'⟩ |
| 59 | + rw [<-Set.diff_diff_cancel_left subset'] |
| 60 | + exact h.isClosed_compl -- ∎ |
| 61 | +lemma IsOpenIn.iff_compl : IsOpenIn A X ↔ IsClosedIn (X \ A) X ∧ A ⊆ X |
| 62 | + := by -- |
| 63 | + refine ⟨fun h ↦ ⟨h.isClosed_compl, h.subset'⟩, ?_⟩ |
| 64 | + intro ⟨h, subset'⟩ |
| 65 | + rw [<-Set.diff_diff_cancel_left subset'] |
| 66 | + exact h.isOpen_compl -- ∎ |
| 67 | + |
| 68 | +end SimpleCases |
| 69 | + |
| 70 | +example [TopologicalSpace α] {A X : Set α} |
| 71 | + : IsOpenIn A X → IsOpen X → IsOpen A |
| 72 | + := by |
| 73 | + intro hAX hX |
| 74 | + have hA := hAX.isOpen' |
| 75 | + rw [isOpen_induced_iff₂] at hA |
| 76 | + obtain ⟨U, hU, hA⟩ := hA |
| 77 | + rw [Subtype.image_preimage_val] at hA |
| 78 | + -- have : X ∩ A = A := inter_eq_self_of_subset_right hAX.subset' |
| 79 | + rw [inter_eq_self_of_subset_right hAX.subset'] at hA |
| 80 | + subst hA |
| 81 | + refine hX.inter hU |
| 82 | + |
| 83 | +section IsOpenIn |
| 84 | +variable {X Y A : Set α} |
| 85 | + |
| 86 | +theorem IsOpenIn.lift [TopologicalSpace α] |
| 87 | + : IsOpenIn A X → IsOpen X → IsOpen A |
| 88 | + := by -- |
| 89 | + intro hAX hX |
| 90 | + have hA := hAX.isOpen' |
| 91 | + rw [isOpen_induced_iff₂] at hA |
| 92 | + obtain ⟨U, hU, hA⟩ := hA |
| 93 | + rw [Subtype.image_preimage_val] at hA |
| 94 | + rw [inter_eq_self_of_subset_right hAX.subset'] at hA |
| 95 | + subst hA |
| 96 | + exact hX.inter hU -- ∎ |
| 97 | + |
| 98 | +end IsOpenIn |
| 99 | +section IsClosedIn |
| 100 | +variable {X Y A : Set α} |
| 101 | + |
| 102 | +theorem IsClosedIn.lift [TopologicalSpace α] |
| 103 | + : IsClosedIn A X → IsClosed X → IsClosed A |
| 104 | + := by -- |
| 105 | + intro hAX hX |
| 106 | + have hA := hAX.isClosed' |
| 107 | + rw [isClosed_induced_iff₂] at hA |
| 108 | + obtain ⟨U, hU, hA⟩ := hA |
| 109 | + rw [Subtype.image_preimage_val] at hA |
| 110 | + rw [inter_eq_self_of_subset_right hAX.subset'] at hA |
| 111 | + subst hA |
| 112 | + exact hX.inter hU -- ∎ |
| 113 | + |
| 114 | +end IsClosedIn |
| 115 | +end Munkres |
0 commit comments