Skip to content

Commit

Permalink
bump to nightly-2024-02-02-06
Browse files Browse the repository at this point in the history
  • Loading branch information
leanprover-community-bot committed Feb 2, 2024
1 parent 5433bde commit 1f9867d
Show file tree
Hide file tree
Showing 57 changed files with 263 additions and 253 deletions.
12 changes: 7 additions & 5 deletions Mathbin/Algebra/GroupPower/Ring.lean
Expand Up @@ -37,12 +37,14 @@ theorem zero_pow : ∀ {n : ℕ}, 0 < n → (0 : M) ^ n = 0
#align zero_pow zero_pow
-/

#print zero_pow' /-
/- warning: zero_pow' clashes with zero_pow -> zero_pow
Case conversion may be inaccurate. Consider using '#align zero_pow' zero_powₓ'. -/
#print zero_pow /-
@[simp]
theorem zero_pow' : ∀ n : ℕ, n ≠ 0 → (0 : M) ^ n = 0
theorem zero_pow : ∀ n : ℕ, n ≠ 0 → (0 : M) ^ n = 0
| 0, h => absurd rfl h
| k + 1, h => by rw [pow_succ]; exact MulZeroClass.zero_mul _
#align zero_pow' zero_pow'
#align zero_pow' zero_pow
-/

#print zero_pow_eq /-
Expand Down Expand Up @@ -95,7 +97,7 @@ theorem pow_ne_zero_iff [NoZeroDivisors M] {a : M} {n : ℕ} (hn : 0 < n) : a ^

#print ne_zero_pow /-
theorem ne_zero_pow {a : M} {n : ℕ} (hn : n ≠ 0) : a ^ n ≠ 0 → a ≠ 0 := by contrapose!; rintro rfl;
exact zero_pow' n hn
exact zero_pow n hn
#align ne_zero_pow ne_zero_pow
-/

Expand Down Expand Up @@ -124,7 +126,7 @@ theorem zero_pow_eq_zero [Nontrivial M] {n : ℕ} : (0 : M) ^ n = 0 ↔ 0 < n :=
by
constructor <;> intro h
· rw [pos_iff_ne_zero]; rintro rfl; simpa using h
· exact zero_pow' n h.ne.symm
· exact zero_pow n h.ne.symm
#align zero_pow_eq_zero zero_pow_eq_zero
-/

Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Algebra/GroupWithZero/Power.lean
Expand Up @@ -75,7 +75,7 @@ attribute [local ematch] le_of_lt

#print zero_zpow /-
theorem zero_zpow : ∀ z : ℤ, z ≠ 0 → (0 : G₀) ^ z = 0
| (n : ℕ), h => by rw [zpow_ofNat, zero_pow']; simpa using h
| (n : ℕ), h => by rw [zpow_ofNat, zero_pow]; simpa using h
| -[n+1], h => by simp
#align zero_zpow zero_zpow
-/
Expand Down
12 changes: 6 additions & 6 deletions Mathbin/Analysis/Analytic/Basic.lean
Expand Up @@ -326,7 +326,7 @@ theorem summable_norm_mul_pow (p : FormalMultilinearSeries 𝕜 E F) {r : ℝ≥
obtain ⟨a, ha : a ∈ Ioo (0 : ℝ) 1, C, hC : 0 < C, hp⟩ := p.norm_mul_pow_le_mul_pow_of_lt_radius h
exact
Summable.of_nonneg_of_le (fun n => mul_nonneg (norm_nonneg _) (pow_nonneg r.coe_nonneg _)) hp
((summable_geometric_of_lt_1 ha.1.le ha.2).hMul_left _)
((summable_geometric_of_lt_one ha.1.le ha.2).hMul_left _)
#align formal_multilinear_series.summable_norm_mul_pow FormalMultilinearSeries.summable_norm_mul_pow
-/

Expand Down Expand Up @@ -374,7 +374,7 @@ theorem radius_eq_top_iff_summable_norm (p : FormalMultilinearSeries 𝕜 E F) :
(show (r : ℝ≥0∞) < p.radius from h.symm ▸ ENNReal.coe_lt_top)
refine'
Summable.of_norm_bounded (fun n => (C : ℝ) * a ^ n)
((summable_geometric_of_lt_1 ha.1.le ha.2).hMul_left _) fun n => _
((summable_geometric_of_lt_one ha.1.le ha.2).hMul_left _) fun n => _
specialize hp n
rwa [Real.norm_of_nonneg (mul_nonneg (norm_nonneg _) (pow_nonneg r.coe_nonneg n))]
· exact p.radius_eq_top_of_summable_norm
Expand Down Expand Up @@ -924,8 +924,8 @@ theorem HasFPowerSeriesOnBall.isBigO_image_sub_image_sub_deriv_principal
simp only [add_mul]
have : ‖a‖ < 1 := by simp only [Real.norm_eq_abs, abs_of_pos ha.1, ha.2]
convert
(hasSum_coe_mul_geometric_of_norm_lt_1 this).add
((hasSum_geometric_of_norm_lt_1 this).hMul_left 2)
(hasSum_coe_mul_geometric_of_norm_lt_one this).add
((hasSum_geometric_of_norm_lt_one this).hMul_left 2)
exact hA.norm_le_of_bounded hBL hAB
suffices L =O[𝓟 (EMetric.ball (x, x) r')] fun y => ‖y - (x, x)‖ * ‖y.1 - y.2‖
by
Expand Down Expand Up @@ -984,7 +984,7 @@ theorem HasFPowerSeriesOnBall.tendstoUniformlyOn {r' : ℝ≥0} (hf : HasFPowerS
exact hf.uniform_geometric_approx h
refine' Metric.tendstoUniformlyOn_iff.2 fun ε εpos => _
have L : tendsto (fun n => (C : ℝ) * a ^ n) at_top (𝓝 ((C : ℝ) * 0)) :=
tendsto_const_nhds.mul (tendsto_pow_atTop_nhds_0_of_lt_1 ha.1.le ha.2)
tendsto_const_nhds.mul (tendsto_pow_atTop_nhds_zero_of_lt_one ha.1.le ha.2)
rw [MulZeroClass.mul_zero] at L
refine' (L.eventually (gt_mem_nhds εpos)).mono fun n hn y hy => _
rw [dist_eq_norm]
Expand Down Expand Up @@ -1130,7 +1130,7 @@ theorem Asymptotics.IsBigO.continuousMultilinearMap_apply_eq_zero {n : ℕ} {p :
exact
norm_eq_zero.mp
(by
simpa only [fin0_apply_norm, norm_eq_zero, norm_zero, zero_pow', Ne.def, Nat.one_ne_zero,
simpa only [fin0_apply_norm, norm_eq_zero, norm_zero, zero_pow, Ne.def, Nat.one_ne_zero,
not_false_iff, MulZeroClass.mul_zero, norm_le_zero_iff] using
ht 0 (δε (Metric.mem_ball_self δ_pos)))
· refine' Or.elim (em (y = 0)) (fun hy => by simpa only [hy] using p.map_zero) fun hy => _
Expand Down
18 changes: 9 additions & 9 deletions Mathbin/Analysis/Asymptotics/Asymptotics.lean
Expand Up @@ -2611,8 +2611,8 @@ theorem isLittleO_pow_sub_sub (x₀ : E') {m : ℕ} (h : 1 < m) :
#align asymptotics.is_o_pow_sub_sub Asymptotics.isLittleO_pow_sub_sub
-/

#print Asymptotics.IsBigOWith.right_le_sub_of_lt_1 /-
theorem IsBigOWith.right_le_sub_of_lt_1 {f₁ f₂ : α → E'} (h : IsBigOWith c l f₁ f₂) (hc : c < 1) :
#print Asymptotics.IsBigOWith.right_le_sub_of_lt_one /-
theorem IsBigOWith.right_le_sub_of_lt_one {f₁ f₂ : α → E'} (h : IsBigOWith c l f₁ f₂) (hc : c < 1) :
IsBigOWith (1 / (1 - c)) l f₂ fun x => f₂ x - f₁ x :=
IsBigOWith.of_bound <|
mem_of_superset h.bound fun x hx =>
Expand All @@ -2621,28 +2621,28 @@ theorem IsBigOWith.right_le_sub_of_lt_1 {f₁ f₂ : α → E'} (h : IsBigOWith
rw [mul_comm, one_div, ← div_eq_mul_inv, le_div_iff, mul_sub, mul_one, mul_comm]
· exact le_trans (sub_le_sub_left hx _) (norm_sub_norm_le _ _)
· exact sub_pos.2 hc
#align asymptotics.is_O_with.right_le_sub_of_lt_1 Asymptotics.IsBigOWith.right_le_sub_of_lt_1
#align asymptotics.is_O_with.right_le_sub_of_lt_1 Asymptotics.IsBigOWith.right_le_sub_of_lt_one
-/

#print Asymptotics.IsBigOWith.right_le_add_of_lt_1 /-
theorem IsBigOWith.right_le_add_of_lt_1 {f₁ f₂ : α → E'} (h : IsBigOWith c l f₁ f₂) (hc : c < 1) :
#print Asymptotics.IsBigOWith.right_le_add_of_lt_one /-
theorem IsBigOWith.right_le_add_of_lt_one {f₁ f₂ : α → E'} (h : IsBigOWith c l f₁ f₂) (hc : c < 1) :
IsBigOWith (1 / (1 - c)) l f₂ fun x => f₁ x + f₂ x :=
(h.neg_right.right_le_sub_of_lt_1 hc).neg_right.of_neg_left.congr rfl (fun x => rfl) fun x => by
(h.neg_right.right_le_sub_of_lt_one hc).neg_right.of_neg_left.congr rfl (fun x => rfl) fun x => by
rw [neg_sub, sub_neg_eq_add]
#align asymptotics.is_O_with.right_le_add_of_lt_1 Asymptotics.IsBigOWith.right_le_add_of_lt_1
#align asymptotics.is_O_with.right_le_add_of_lt_1 Asymptotics.IsBigOWith.right_le_add_of_lt_one
-/

#print Asymptotics.IsLittleO.right_isBigO_sub /-
theorem IsLittleO.right_isBigO_sub {f₁ f₂ : α → E'} (h : f₁ =o[l] f₂) :
f₂ =O[l] fun x => f₂ x - f₁ x :=
((h.def' one_half_pos).right_le_sub_of_lt_1 one_half_lt_one).IsBigO
((h.def' one_half_pos).right_le_sub_of_lt_one one_half_lt_one).IsBigO
#align asymptotics.is_o.right_is_O_sub Asymptotics.IsLittleO.right_isBigO_sub
-/

#print Asymptotics.IsLittleO.right_isBigO_add /-
theorem IsLittleO.right_isBigO_add {f₁ f₂ : α → E'} (h : f₁ =o[l] f₂) :
f₂ =O[l] fun x => f₁ x + f₂ x :=
((h.def' one_half_pos).right_le_add_of_lt_1 one_half_lt_one).IsBigO
((h.def' one_half_pos).right_le_add_of_lt_one one_half_lt_one).IsBigO
#align asymptotics.is_o.right_is_O_add Asymptotics.IsLittleO.right_isBigO_add
-/

Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/Calculus/FderivSymmetric.lean
Expand Up @@ -185,7 +185,7 @@ theorem Convex.taylor_approx_two_segment {v w : E} (hv : x + v ∈ interior s)
· congr 1
dsimp only [g]
simp only [Nat.one_ne_zero, add_zero, one_mul, zero_div, MulZeroClass.zero_mul, sub_zero,
zero_smul, Ne.def, not_false_iff, bit0_eq_zero, zero_pow']
zero_smul, Ne.def, not_false_iff, bit0_eq_zero, zero_pow]
abel
·
simp only [Real.norm_eq_abs, abs_mul, add_nonneg (norm_nonneg v) (norm_nonneg w), abs_of_nonneg,
Expand Down
4 changes: 2 additions & 2 deletions Mathbin/Analysis/Calculus/Inverse.lean
Expand Up @@ -367,8 +367,8 @@ theorem surjOn_closedBall_of_nonlinearRightInverse (hf : ApproximatesLinearOn f
rw [tendsto_iff_dist_tendsto_zero]
refine' squeeze_zero (fun n => dist_nonneg) (fun n => (D n).1) _
simpa using
(tendsto_pow_atTop_nhds_0_of_lt_1 (mul_nonneg (NNReal.coe_nonneg _) (NNReal.coe_nonneg _))
Icf').mul
(tendsto_pow_atTop_nhds_zero_of_lt_one
(mul_nonneg (NNReal.coe_nonneg _) (NNReal.coe_nonneg _)) Icf').mul
tendsto_const_nhds
exact tendsto_nhds_unique T1 T2
#align approximates_linear_on.surj_on_closed_ball_of_nonlinear_right_inverse ApproximatesLinearOn.surjOn_closedBall_of_nonlinearRightInverse
Expand Down
6 changes: 3 additions & 3 deletions Mathbin/Analysis/Calculus/TangentCone.lean
Expand Up @@ -191,7 +191,7 @@ theorem subset_tangentCone_prod_left {t : Set F} {y : F} (ht : y ∈ closure t)
simp [hn, (hd' n).1]
· apply tendsto.prod_mk_nhds hy _
refine' squeeze_zero_norm (fun n => (hd' n).2.le) _
exact tendsto_pow_atTop_nhds_0_of_lt_1 one_half_pos.le one_half_lt_one
exact tendsto_pow_atTop_nhds_zero_of_lt_one one_half_pos.le one_half_lt_one
#align subset_tangent_cone_prod_left subset_tangentCone_prod_left
-/

Expand All @@ -217,7 +217,7 @@ theorem subset_tangentCone_prod_right {t : Set F} {y : F} (hs : x ∈ closure s)
simp [hn, (hd' n).1]
· apply tendsto.prod_mk_nhds _ hy
refine' squeeze_zero_norm (fun n => (hd' n).2.le) _
exact tendsto_pow_atTop_nhds_0_of_lt_1 one_half_pos.le one_half_lt_one
exact tendsto_pow_atTop_nhds_zero_of_lt_one one_half_pos.le one_half_lt_one
#align subset_tangent_cone_prod_right subset_tangentCone_prod_right
-/

Expand Down Expand Up @@ -248,7 +248,7 @@ theorem mapsTo_tangentCone_pi {ι : Type _} [DecidableEq ι] {E : ι → Type _}
· simp [hy]
· suffices tendsto (fun n => c n • d' n j) at_top (𝓝 0) by simpa [hj]
refine' squeeze_zero_norm (fun n => (hcd' n j hj).le) _
exact tendsto_pow_atTop_nhds_0_of_lt_1 one_half_pos.le one_half_lt_one
exact tendsto_pow_atTop_nhds_zero_of_lt_one one_half_pos.le one_half_lt_one
#align maps_to_tangent_cone_pi mapsTo_tangentCone_pi
-/

Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/Calculus/Taylor.lean
Expand Up @@ -341,7 +341,7 @@ theorem taylor_mean_remainder_lagrange {f : ℝ → ℝ} {x x₀ : ℝ} {n : ℕ
rcases taylor_mean_remainder hx hf hf' gcont (fun y _ => monomial_has_deriv_aux y x _) hg' with
⟨y, hy, h⟩
use y, hy
simp only [sub_self, zero_pow', Ne.def, Nat.succ_ne_zero, not_false_iff, zero_sub, mul_neg] at h
simp only [sub_self, zero_pow, Ne.def, Nat.succ_ne_zero, not_false_iff, zero_sub, mul_neg] at h
rw [h, neg_div, ← div_neg, neg_mul, neg_neg]
field_simp [n.cast_add_one_ne_zero, n.factorial_ne_zero, xy_ne y hy]
ring
Expand Down
8 changes: 4 additions & 4 deletions Mathbin/Analysis/InnerProductSpace/Projection.lean
Expand Up @@ -97,7 +97,7 @@ theorem exists_norm_eq_iInf_of_complete_convex {K : Set F} (ne : K.Nonempty) (h
by
have h : tendsto (fun n : ℕ => δ) at_top (nhds δ) := tendsto_const_nhds
have h' : tendsto (fun n : ℕ => δ + 1 / (n + 1)) at_top (nhds δ) := by
convert h.add tendsto_one_div_add_atTop_nhds_0_nat; simp only [add_zero]
convert h.add tendsto_one_div_add_atTop_nhds_zero_nat; simp only [add_zero]
exact tendsto_of_tendsto_of_tendsto_of_le_of_le h h' (fun x => δ_le _) fun x => le_of_lt (hw _)
-- Step 2: Prove that the sequence `w : ℕ → K` is a Cauchy sequence
have seq_is_cauchy : CauchySeq fun n => (w n : F) :=
Expand Down Expand Up @@ -175,16 +175,16 @@ theorem exists_norm_eq_iInf_of_complete_convex {K : Set F} (ne : K.Nonempty) (h
· convert continuous_sqrt.continuous_at; exact sqrt_zero.symm
have eq₁ : tendsto (fun n : ℕ => 8 * δ * (1 / (n + 1))) at_top (nhds (0 : ℝ)) :=
by
convert (@tendsto_const_nhds _ _ _ (8 * δ) _).mul tendsto_one_div_add_atTop_nhds_0_nat
convert (@tendsto_const_nhds _ _ _ (8 * δ) _).mul tendsto_one_div_add_atTop_nhds_zero_nat
simp only [MulZeroClass.mul_zero]
have : tendsto (fun n : ℕ => (4 : ℝ) * (1 / (n + 1))) at_top (nhds (0 : ℝ)) :=
by
convert (@tendsto_const_nhds _ _ _ (4 : ℝ) _).mul tendsto_one_div_add_atTop_nhds_0_nat
convert (@tendsto_const_nhds _ _ _ (4 : ℝ) _).mul tendsto_one_div_add_atTop_nhds_zero_nat
simp only [MulZeroClass.mul_zero]
have eq₂ :
tendsto (fun n : ℕ => (4 : ℝ) * (1 / (n + 1)) * (1 / (n + 1))) at_top (nhds (0 : ℝ)) :=
by
convert this.mul tendsto_one_div_add_atTop_nhds_0_nat
convert this.mul tendsto_one_div_add_atTop_nhds_zero_nat
simp only [MulZeroClass.mul_zero]
convert eq₁.add eq₂; simp only [add_zero]
-- Step 3: By completeness of `K`, let `w : ℕ → K` converge to some `v : K`.
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/MeanInequalitiesPow.lean
Expand Up @@ -80,7 +80,7 @@ theorem pow_sum_div_card_le_sum_pow {f : ι → ℝ} (n : ℕ) (hf : ∀ a ∈ s
(∑ x in s, f x) ^ (n + 1) / s.card ^ n ≤ ∑ x in s, f x ^ (n + 1) :=
by
rcases s.eq_empty_or_nonempty with (rfl | hs)
· simp_rw [Finset.sum_empty, zero_pow' _ (Nat.succ_ne_zero n), zero_div]
· simp_rw [Finset.sum_empty, zero_pow _ (Nat.succ_ne_zero n), zero_div]
· have hs0 : 0 < (s.card : ℝ) := Nat.cast_pos.2 hs.card_pos
suffices (∑ x in s, f x / s.card) ^ (n + 1) ≤ ∑ x in s, f x ^ (n + 1) / s.card by
rwa [← Finset.sum_div, ← Finset.sum_div, div_pow, pow_succ' (s.card : ℝ), ← div_div,
Expand Down
4 changes: 2 additions & 2 deletions Mathbin/Analysis/NormedSpace/Banach.lean
Expand Up @@ -212,7 +212,7 @@ theorem exists_preimage_norm_le (surj : Surjective f) :
have sNu : Summable fun n => ‖u n‖ :=
by
refine' Summable.of_nonneg_of_le (fun n => norm_nonneg _) ule _
exact Summable.mul_right _ (summable_geometric_of_lt_1 (by norm_num) (by norm_num))
exact Summable.mul_right _ (summable_geometric_of_lt_one (by norm_num) (by norm_num))
have su : Summable u := Summable.of_norm sNu
let x := tsum u
have x_ineq : ‖x‖ ≤ (2 * C + 1) * ‖y‖ :=
Expand Down Expand Up @@ -241,7 +241,7 @@ theorem exists_preimage_norm_le (surj : Surjective f) :
simp only [sub_zero]
refine' squeeze_zero (fun _ => norm_nonneg _) hnle _
rw [← MulZeroClass.zero_mul ‖y‖]
refine' (tendsto_pow_atTop_nhds_0_of_lt_1 _ _).mul tendsto_const_nhds <;> norm_num
refine' (tendsto_pow_atTop_nhds_zero_of_lt_one _ _).mul tendsto_const_nhds <;> norm_num
have feq : f x = y - 0 := tendsto_nhds_unique L₁ L₂
rw [sub_zero] at feq
exact ⟨x, feq, x_ineq⟩
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/NormedSpace/Spectrum.lean
Expand Up @@ -353,7 +353,7 @@ theorem hasFPowerSeriesOnBall_inverse_one_sub_smul [CompleteSpace A] (a : A) :
simpa only [← coe_inv h, mem_ball_zero_iff, Metric.emetric_ball_nnreal] using hy
rwa [← coe_nnnorm, ← Real.lt_toNNReal_iff_coe_lt, Real.toNNReal_one, nnnorm_smul, ←
NNReal.lt_inv_iff_mul_lt h]
simpa [← smul_pow, (NormedRing.summable_geometric_of_norm_lt_1 _ norm_lt).hasSum_iff] using
simpa [← smul_pow, (NormedRing.summable_geometric_of_norm_lt_one _ norm_lt).hasSum_iff] using
(NormedRing.inverse_one_sub _ norm_lt).symm }
#align spectrum.has_fpower_series_on_ball_inverse_one_sub_smul spectrum.hasFPowerSeriesOnBall_inverse_one_sub_smul
-/
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/NormedSpace/Units.lean
Expand Up @@ -224,7 +224,7 @@ theorem inverse_one_sub_norm : (fun t : R => inverse (1 - t)) =O[𝓝 0] (fun t
linarith
simp only [inverse_one_sub t ht', norm_one, mul_one, Set.mem_setOf_eq]
change ‖∑' n : ℕ, t ^ n‖ ≤ _
have := NormedRing.tsum_geometric_of_norm_lt_1 t ht'
have := NormedRing.tsum_geometric_of_norm_lt_one t ht'
have : (1 - ‖t‖)⁻¹ ≤ 2 := by
rw [← inv_inv (2 : ℝ)]
refine' inv_le_inv_of_le (by norm_num) _
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/PSeries.lean
Expand Up @@ -193,7 +193,7 @@ theorem Real.summable_nat_rpow_inv {p : ℝ} : Summable (fun n => (n ^ p)⁻¹ :
· rw [← summable_condensed_iff_of_nonneg]
· simp_rw [Nat.cast_pow, Nat.cast_two, ← rpow_nat_cast, ← rpow_mul zero_lt_two.le, mul_comm _ p,
rpow_mul zero_lt_two.le, rpow_nat_cast, ← inv_pow, ← mul_pow,
summable_geometric_iff_norm_lt_1]
summable_geometric_iff_norm_lt_one]
nth_rw 1 [← rpow_one 2]
rw [← division_def, ← rpow_sub zero_lt_two, norm_eq_abs,
abs_of_pos (rpow_pos_of_pos zero_lt_two _), rpow_lt_one_iff zero_lt_two.le]
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/SpecialFunctions/Bernstein.lean
Expand Up @@ -257,7 +257,7 @@ theorem bernsteinApproximation_uniform (f : C(I, ℝ)) :
simp only [metric.nhds_basis_ball.tendsto_right_iff, Metric.mem_ball, dist_eq_norm]
intro ε h
let δ := δ f ε h
have nhds_zero := tendsto_const_div_atTop_nhds_0_nat (2 * ‖f‖ * δ ^ (-2 : ℤ))
have nhds_zero := tendsto_const_div_atTop_nhds_zero_nat (2 * ‖f‖ * δ ^ (-2 : ℤ))
filter_upwards [nhds_zero.eventually (gt_mem_nhds (half_pos h)), eventually_gt_at_top 0] with n nh
npos'
have npos : 0 < (n : ℝ) := by exact_mod_cast npos'
Expand Down
22 changes: 11 additions & 11 deletions Mathbin/Analysis/SpecialFunctions/Exp.lean
Expand Up @@ -219,24 +219,24 @@ theorem tendsto_exp_atTop : Tendsto exp atTop atTop :=
#align real.tendsto_exp_at_top Real.tendsto_exp_atTop
-/

#print Real.tendsto_exp_neg_atTop_nhds_0 /-
#print Real.tendsto_exp_neg_atTop_nhds_zero /-
/-- The real exponential function tends to `0` at `-∞` or, equivalently, `exp(-x)` tends to `0`
at `+∞` -/
theorem tendsto_exp_neg_atTop_nhds_0 : Tendsto (fun x => exp (-x)) atTop (𝓝 0) :=
theorem tendsto_exp_neg_atTop_nhds_zero : Tendsto (fun x => exp (-x)) atTop (𝓝 0) :=
(tendsto_inv_atTop_zero.comp tendsto_exp_atTop).congr fun x => (exp_neg x).symm
#align real.tendsto_exp_neg_at_top_nhds_0 Real.tendsto_exp_neg_atTop_nhds_0
#align real.tendsto_exp_neg_at_top_nhds_0 Real.tendsto_exp_neg_atTop_nhds_zero
-/

#print Real.tendsto_exp_nhds_0_nhds_1 /-
#print Real.tendsto_exp_nhds_zero_nhds_one /-
/-- The real exponential function tends to `1` at `0`. -/
theorem tendsto_exp_nhds_0_nhds_1 : Tendsto exp (𝓝 0) (𝓝 1) := by convert continuous_exp.tendsto 0;
simp
#align real.tendsto_exp_nhds_0_nhds_1 Real.tendsto_exp_nhds_0_nhds_1
theorem tendsto_exp_nhds_zero_nhds_one : Tendsto exp (𝓝 0) (𝓝 1) := by
convert continuous_exp.tendsto 0; simp
#align real.tendsto_exp_nhds_0_nhds_1 Real.tendsto_exp_nhds_zero_nhds_one
-/

#print Real.tendsto_exp_atBot /-
theorem tendsto_exp_atBot : Tendsto exp atBot (𝓝 0) :=
(tendsto_exp_neg_atTop_nhds_0.comp tendsto_neg_atBot_atTop).congr fun x =>
(tendsto_exp_neg_atTop_nhds_zero.comp tendsto_neg_atBot_atTop).congr fun x =>
congr_arg exp <| neg_neg x
#align real.tendsto_exp_at_bot Real.tendsto_exp_atBot
-/
Expand Down Expand Up @@ -289,13 +289,13 @@ theorem tendsto_exp_div_pow_atTop (n : ℕ) : Tendsto (fun x => exp x / x ^ n) a
#align real.tendsto_exp_div_pow_at_top Real.tendsto_exp_div_pow_atTop
-/

#print Real.tendsto_pow_mul_exp_neg_atTop_nhds_0 /-
#print Real.tendsto_pow_mul_exp_neg_atTop_nhds_zero /-
/-- The function `x^n * exp(-x)` tends to `0` at `+∞`, for any natural number `n`. -/
theorem tendsto_pow_mul_exp_neg_atTop_nhds_0 (n : ℕ) :
theorem tendsto_pow_mul_exp_neg_atTop_nhds_zero (n : ℕ) :
Tendsto (fun x => x ^ n * exp (-x)) atTop (𝓝 0) :=
(tendsto_inv_atTop_zero.comp (tendsto_exp_div_pow_atTop n)).congr fun x => by
rw [comp_app, inv_eq_one_div, div_div_eq_mul_div, one_mul, div_eq_mul_inv, NormedSpace.exp_neg]
#align real.tendsto_pow_mul_exp_neg_at_top_nhds_0 Real.tendsto_pow_mul_exp_neg_atTop_nhds_0
#align real.tendsto_pow_mul_exp_neg_at_top_nhds_0 Real.tendsto_pow_mul_exp_neg_atTop_nhds_zero
-/

#print Real.tendsto_mul_exp_add_div_pow_atTop /-
Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/SpecialFunctions/Gamma/Basic.lean
Expand Up @@ -299,7 +299,7 @@ theorem GammaIntegral_add_one {s : ℂ} (hs : 0 < s.re) :
intro x hx; dsimp only
rw [norm_eq_abs, map_mul, abs.map_neg, abs_cpow_eq_rpow_re_of_pos hx,
abs_of_nonneg (exp_pos (-x)).le, neg_mul, one_mul]
exact (tendsto_congr' this).mpr (tendsto_rpow_mul_exp_neg_mul_atTop_nhds_0 _ _ zero_lt_one)
exact (tendsto_congr' this).mpr (tendsto_rpow_mul_exp_neg_mul_atTop_nhds_zero _ _ zero_lt_one)
#align complex.Gamma_integral_add_one Complex.GammaIntegral_add_one
-/

Expand Down
2 changes: 1 addition & 1 deletion Mathbin/Analysis/SpecialFunctions/Gaussian.lean
Expand Up @@ -218,7 +218,7 @@ theorem integral_mul_cexp_neg_mul_sq {b : ℂ} (hb : 0 < b.re) :
convert
integral_Ioi_of_has_deriv_at_of_tendsto' (fun x hx => (A ↑x).comp_ofReal)
(integrable_mul_cexp_neg_mul_sq hb).IntegrableOn B
simp only [MulZeroClass.mul_zero, of_real_zero, zero_pow', Ne.def, bit0_eq_zero, Nat.one_ne_zero,
simp only [MulZeroClass.mul_zero, of_real_zero, zero_pow, Ne.def, bit0_eq_zero, Nat.one_ne_zero,
not_false_iff, Complex.exp_zero, mul_one, sub_neg_eq_add, zero_add]
#align integral_mul_cexp_neg_mul_sq integral_mul_cexp_neg_mul_sq
-/
Expand Down

0 comments on commit 1f9867d

Please sign in to comment.