|
1 | 1 | import Mathlib.Algebra.Module.Projective
|
2 | 2 | import Mathlib.Topology.Algebra.Monoid
|
| 3 | +import Mathlib |
3 | 4 |
|
4 | 5 | section elsewhere
|
5 | 6 |
|
@@ -124,3 +125,46 @@ lemma TopologicalSpace.induced_id (X : Type*) : TopologicalSpace.induced (id : X
|
124 | 125 | --#check Induced.continuousSMul -- doesn't exist
|
125 | 126 |
|
126 | 127 | end continuous_smul
|
| 128 | + |
| 129 | + |
| 130 | +-- elsewhere |
| 131 | +lemma induced_sInf {α β : Type*} {g : β → α} |
| 132 | + {s : Set (TopologicalSpace α)} : |
| 133 | + TopologicalSpace.induced g (sInf s) = |
| 134 | + sInf ((TopologicalSpace.induced g) '' s) := by |
| 135 | + rw [sInf_eq_iInf' s, sInf_image'] |
| 136 | + exact induced_iInf |
| 137 | + |
| 138 | +-- elsewhere |
| 139 | +theorem _root_.Homeomorph.coinducing {A B : Type*} [τA : TopologicalSpace A] |
| 140 | + [τB : TopologicalSpace B] (e : A ≃ₜ B) : τB = τA.coinduced e := by |
| 141 | + ext U |
| 142 | + nth_rw 2 [isOpen_coinduced] |
| 143 | + exact e.isOpen_preimage.symm |
| 144 | + |
| 145 | +-- elsewhere |
| 146 | +lemma Homeomorph.symm_apply_eq {M N : Type*} [TopologicalSpace M] |
| 147 | + [TopologicalSpace N] (e : M ≃ₜ N) {x : N} {y : M} : |
| 148 | + e.symm x = y ↔ x = e y := Equiv.symm_apply_eq _ |
| 149 | + |
| 150 | +lemma finsum_option {ι : Type*} {B : Type*} [Finite ι] |
| 151 | + [AddCommMonoid B] (φ : Option ι → B) : |
| 152 | + (∑ᶠ oi, φ oi) = φ none + ∑ᶠ (j : ι), φ (some j) := by |
| 153 | + rw [← finsum_mem_univ] |
| 154 | + convert finsum_mem_insert φ (show none ∉ Set.range Option.some by aesop) |
| 155 | + (Set.finite_range some) |
| 156 | + · aesop |
| 157 | + · rw [finsum_mem_range] |
| 158 | + exact Option.some_injective ι |
| 159 | + |
| 160 | +lemma LinearMap.finsum_apply {R : Type*} [Semiring R] {A B : Type*} [AddCommMonoid A] [Module R A] |
| 161 | + [AddCommMonoid B] [Module R B] {ι : Type*} [Finite ι] (φ : ∀ _ : ι, A →ₗ[R] B) (a : A) : |
| 162 | + (∑ᶠ i, φ i) a = ∑ᶠ i, φ i a := by |
| 163 | + induction ι using Finite.induction_empty_option |
| 164 | + · case of_equiv X Y e hx => |
| 165 | + convert hx (φ ∘ e) |
| 166 | + · exact (finsum_comp_equiv e).symm |
| 167 | + · exact (finsum_comp_equiv e).symm |
| 168 | + · simp [finsum_of_isEmpty] |
| 169 | + · case h_option X _ hX => |
| 170 | + simp [finsum_option, hX] |
0 commit comments