Skip to content

Commit 3ed56ed

Browse files
committed
refactor(Analysis): golf Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction (leanprover-community#39182)
- moves the additive lemmas next to the finite-sum version they now reuse - shortens `characteristic_add_top_le` to a one-line `simpa` from `characteristic_sum_top_le` Extracted from leanprover-community#37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
1 parent 5cb8c4f commit 3ed56ed

1 file changed

Lines changed: 23 additions & 30 deletions

File tree

Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -97,36 +97,6 @@ theorem characteristic_eventually_nonneg :
9797
## Behaviour under Arithmetic Operations
9898
-/
9999

100-
/--
101-
For `1 ≤ r`, the characteristic function of `f + g` at `⊤` is less than or equal to the sum of the
102-
characteristic functions of `f` and `g`, respectively, plus `log 2` (where `2` is the number of
103-
summands).
104-
-/
105-
theorem characteristic_add_top_le {f₁ f₂ : ℂ → E} {r : ℝ} (h₁f₁ : Meromorphic f₁)
106-
(h₁f₂ : Meromorphic f₂) (hr : 1 ≤ r) :
107-
characteristic (f₁ + f₂) ⊤ r ≤ characteristic f₁ ⊤ r + characteristic f₂ ⊤ r + log 2 := by
108-
simp only [characteristic]
109-
calc proximity (f₁ + f₂) ⊤ r + logCounting (f₁ + f₂) ⊤ r
110-
_ ≤ (proximity f₁ ⊤ r + proximity f₂ ⊤ r + log 2)
111-
+ (logCounting f₁ ⊤ r + logCounting f₂ ⊤ r) := by
112-
gcongr
113-
· apply proximity_add_top_le h₁f₁ h₁f₂
114-
· exact logCounting_add_top_le h₁f₁ h₁f₂ hr
115-
_ = proximity f₁ ⊤ r + logCounting f₁ ⊤ r + (proximity f₂ ⊤ r + logCounting f₂ ⊤ r)
116-
+ log 2 := by
117-
ring
118-
119-
/--
120-
Asymptotically, the characteristic function of `f + g` at `⊤` is less than or equal to the sum of
121-
the characteristic functions of `f` and `g`, respectively.
122-
-/
123-
theorem characteristic_add_top_eventuallyLE {f₁ f₂ : ℂ → E} (h₁f₁ : Meromorphic f₁)
124-
(h₁f₂ : Meromorphic f₂) :
125-
characteristic (f₁ + f₂) ⊤
126-
≤ᶠ[Filter.atTop] characteristic f₁ ⊤ + characteristic f₂ ⊤ + fun _ ↦ log 2 := by
127-
filter_upwards [Filter.eventually_ge_atTop 1] with r hr
128-
using characteristic_add_top_le h₁f₁ h₁f₂ hr
129-
130100
/--
131101
For `1 ≤ r`, the characteristic function of a sum `∑ a, f a` at `⊤` is less than or equal to the sum
132102
of the characteristic functions of `f ·`, plus `log s.card`.
@@ -156,6 +126,29 @@ theorem characteristic_sum_top_eventuallyLE {α : Type*} (s : Finset α) (f : α
156126
filter_upwards [Filter.eventually_ge_atTop 1]
157127
using fun _ hr ↦ characteristic_sum_top_le s f hf hr
158128

129+
/--
130+
For `1 ≤ r`, the characteristic function of `f + g` at `⊤` is less than or equal to the sum of the
131+
characteristic functions of `f` and `g`, respectively, plus `log 2` (where `2` is the number of
132+
summands).
133+
-/
134+
theorem characteristic_add_top_le {f₁ f₂ : ℂ → E} {r : ℝ} (h₁f₁ : Meromorphic f₁)
135+
(h₁f₂ : Meromorphic f₂) (hr : 1 ≤ r) :
136+
characteristic (f₁ + f₂) ⊤ r ≤ characteristic f₁ ⊤ r + characteristic f₂ ⊤ r + log 2 := by
137+
have h_meromorphic : ∀ a ∈ Finset.univ, Meromorphic (![f₁, f₂] a) := by
138+
simpa using ⟨h₁f₁, h₁f₂⟩
139+
simpa using characteristic_sum_top_le Finset.univ ![f₁, f₂] h_meromorphic hr
140+
141+
/--
142+
Asymptotically, the characteristic function of `f + g` at `⊤` is less than or equal to the sum of
143+
the characteristic functions of `f` and `g`, respectively.
144+
-/
145+
theorem characteristic_add_top_eventuallyLE {f₁ f₂ : ℂ → E} (h₁f₁ : Meromorphic f₁)
146+
(h₁f₂ : Meromorphic f₂) :
147+
characteristic (f₁ + f₂) ⊤
148+
≤ᶠ[Filter.atTop] characteristic f₁ ⊤ + characteristic f₂ ⊤ + fun _ ↦ log 2 := by
149+
filter_upwards [Filter.eventually_ge_atTop 1] with r hr
150+
using characteristic_add_top_le h₁f₁ h₁f₂ hr
151+
159152
/--
160153
For `1 ≤ r`, the characteristic function for the zeros of `f * g` is less than or equal to the sum
161154
of the characteristic functions for the zeros of `f` and `g`, respectively.

0 commit comments

Comments
 (0)