Skip to content

File tree

2 files changed

+52
-9
lines changed

2 files changed

+52
-9
lines changed

Archive/Hairer.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ variable (𝕜 E F) in
3838
/-- The set of `C^n` functions supported in a set `s`, as a submodule of the space of functions. -/
3939
def ContDiffSupportedOn (n : ℕ∞) (s : Set E) : Submodule 𝕜 (E → F) where
4040
carrier := { f : E → F | tsupport f ⊆ s ∧ ContDiff 𝕜 n f }
41-
add_mem' hf hg := ⟨tsupport_add.trans <| union_subset hf.1 hg.1, hf.2.add hg.2
41+
add_mem' hf hg := ⟨(tsupport_add _ _).trans <| union_subset hf.1 hg.1, hf.2.add hg.2
4242
zero_mem' :=
4343
⟨(tsupport_eq_empty_iff.mpr rfl).subset.trans (empty_subset _), contDiff_const (c := 0)⟩
4444
smul_mem' r f hf :=

Mathlib/Topology/Algebra/Support.lean

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,20 @@ theorem isClosed_mulTSupport (f : X → α) : IsClosed (mulTSupport f) :=
5656
theorem mulTSupport_eq_empty_iff {f : X → α} : mulTSupport f = ∅ ↔ f = 1 := by
5757
rw [mulTSupport, closure_empty_iff, mulSupport_eq_empty_iff]
5858

59+
@[to_additive (attr := simp)]
60+
theorem mulTSupport_fun_one : mulTSupport (fun _ ↦ 1 : X → α) = ∅ := by
61+
rw [mulTSupport, mulSupport_fun_one, closure_empty]
62+
63+
@[to_additive (attr := simp)]
64+
theorem mulTSupport_one : mulTSupport (1 : X → α) = ∅ := by
65+
rw [mulTSupport, mulSupport_one, closure_empty]
66+
67+
@[to_additive]
68+
theorem mulTSupport_binop_subset [One β] [One γ] (op : α → β → γ)
69+
(op1 : op 1 1 = 1) (f : X → α) (g : X → β) :
70+
mulTSupport (fun x ↦ op (f x) (g x)) ⊆ mulTSupport f ∪ mulTSupport g :=
71+
closure_mono (mulSupport_binop_subset op op1 f g) |>.trans closure_union.subset
72+
5973
@[to_additive]
6074
theorem image_eq_one_of_notMem_mulTSupport {f : X → α} {x : X} (hx : x ∉ mulTSupport f) : f x = 1 :=
6175
mulSupport_subset_iff'.mp (subset_mulTSupport f) x hx
@@ -86,20 +100,49 @@ theorem tsupport_mul_subset_right {α : Type*} [MulZeroClass α] {f g : X → α
86100

87101
end One
88102

89-
theorem tsupport_smul_subset_left {M α} [TopologicalSpace X] [Zero M] [Zero α] [SMulWithZero M α]
103+
section Operations
104+
105+
variable [TopologicalSpace X]
106+
107+
@[to_additive (attr := simp)]
108+
theorem mulTSupport_mul [MulOneClass α] (f g : X → α) :
109+
(mulTSupport fun x ↦ f x * g x) ⊆ mulTSupport f ∪ mulTSupport g :=
110+
mulTSupport_binop_subset (· * ·) (by simp) f g
111+
112+
@[to_additive]
113+
theorem mulTSupport_pow [Monoid α] (f : X → α) (n : ℕ) :
114+
(mulTSupport fun x => f x ^ n) ⊆ mulTSupport f :=
115+
closure_mono <| mulSupport_pow f n
116+
117+
@[to_additive (attr := simp)]
118+
theorem mulTSupport_fun_inv [DivisionMonoid α] (f : X → α) :
119+
(mulTSupport fun x => (f x)⁻¹) = mulTSupport f :=
120+
congrArg closure <| mulSupport_fun_inv f
121+
122+
@[to_additive (attr := simp)]
123+
theorem mulTSupport_inv [DivisionMonoid α] (f : X → α) :
124+
mulTSupport f⁻¹ = mulTSupport f :=
125+
mulTSupport_fun_inv f
126+
127+
@[to_additive]
128+
theorem mulTSupport_mul_inv [DivisionMonoid α] (f g : X → α) :
129+
(mulTSupport fun x => f x * (g x)⁻¹) ⊆ mulTSupport f ∪ mulTSupport g :=
130+
mulTSupport_binop_subset (· * ·⁻¹) (by simp) f g
131+
132+
@[to_additive]
133+
theorem mulTSupport_div [DivisionMonoid α] (f g : X → α) :
134+
(mulTSupport fun x => f x / g x) ⊆ mulTSupport f ∪ mulTSupport g :=
135+
mulTSupport_binop_subset (· / ·) one_div_one f g
136+
137+
theorem tsupport_smul_subset_left {M α} [Zero M] [Zero α] [SMulWithZero M α]
90138
(f : X → M) (g : X → α) : (tsupport fun x => f x • g x) ⊆ tsupport f :=
91139
closure_mono <| support_smul_subset_left f g
92140

93-
theorem tsupport_smul_subset_right {M α} [TopologicalSpace X] [Zero α] [SMulZeroClass M α]
141+
theorem tsupport_smul_subset_right {M α} [Zero α] [SMulZeroClass M α]
94142
(f : X → M) (g : X → α) : (tsupport fun x => f x • g x) ⊆ tsupport g :=
95143
closure_mono <| support_smul_subset_right f g
96144

97-
@[to_additive]
98-
theorem mulTSupport_mul [TopologicalSpace X] [MulOneClass α] {f g : X → α} :
99-
(mulTSupport fun x ↦ f x * g x) ⊆ mulTSupport f ∪ mulTSupport g :=
100-
closure_minimal
101-
((mulSupport_mul f g).trans (union_subset_union (subset_mulTSupport _) (subset_mulTSupport _)))
102-
(isClosed_closure.union isClosed_closure)
145+
end Operations
103146

104147
section
105148

0 commit comments

Comments
 (0)