analysis.calculus.lhopital
⟷
Mathlib.Analysis.Calculus.LHopital
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -129,20 +129,20 @@ theorem lhopital_zero_left_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x)
comp x (hff' (-x) hx) (hasDerivAt_neg x)
have hdng : ∀ x ∈ -Ioo a b, HasDerivAt (g ∘ Neg.neg) (g' (-x) * -1) x := fun x hx =>
comp x (hgg' (-x) hx) (hasDerivAt_neg x)
- rw [preimage_neg_Ioo] at hdnf
- rw [preimage_neg_Ioo] at hdng
+ rw [preimage_neg_Ioo] at hdnf
+ rw [preimage_neg_Ioo] at hdng
have :=
lhopital_zero_right_on_Ioo (neg_lt_neg hab) hdnf hdng
(by
intro x hx h
- apply hg' _ (by rw [← preimage_neg_Ioo] at hx ; exact hx)
- rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h )
+ apply hg' _ (by rw [← preimage_neg_Ioo] at hx; exact hx)
+ rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
(hfb.comp tendsto_neg_nhdsWithin_Ioi_neg) (hgb.comp tendsto_neg_nhdsWithin_Ioi_neg)
(by
simp only [neg_div_neg_eq, mul_one, mul_neg]
exact (tendsto_congr fun x => rfl).mp (hdiv.comp tendsto_neg_nhdsWithin_Ioi_neg))
have := this.comp tendsto_neg_nhdsWithin_Iio
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_left_on_Ioo HasDerivAt.lhopital_zero_left_on_Ioo
-/
@@ -193,7 +193,7 @@ theorem lhopital_zero_atTop_on_Ioi (hff' : ∀ x ∈ Ioi a, HasDerivAt f (f' x)
erw [mul_div_mul_right]
refine' neg_ne_zero.mpr (inv_ne_zero <| pow_ne_zero _ <| ne_of_gt hx))
have := this.comp tendsto_inv_atTop_zero'
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [inv_inv]
#align has_deriv_at.lhopital_zero_at_top_on_Ioi HasDerivAt.lhopital_zero_atTop_on_Ioi
-/
@@ -209,20 +209,20 @@ theorem lhopital_zero_atBot_on_Iio (hff' : ∀ x ∈ Iio a, HasDerivAt f (f' x)
comp x (hff' (-x) hx) (hasDerivAt_neg x)
have hdng : ∀ x ∈ -Iio a, HasDerivAt (g ∘ Neg.neg) (g' (-x) * -1) x := fun x hx =>
comp x (hgg' (-x) hx) (hasDerivAt_neg x)
- rw [preimage_neg_Iio] at hdnf
- rw [preimage_neg_Iio] at hdng
+ rw [preimage_neg_Iio] at hdnf
+ rw [preimage_neg_Iio] at hdng
have :=
lhopital_zero_at_top_on_Ioi hdnf hdng
(by
intro x hx h
- apply hg' _ (by rw [← preimage_neg_Iio] at hx ; exact hx)
- rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h )
+ apply hg' _ (by rw [← preimage_neg_Iio] at hx; exact hx)
+ rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
(hfbot.comp tendsto_neg_at_top_at_bot) (hgbot.comp tendsto_neg_at_top_at_bot)
(by
simp only [mul_one, mul_neg, neg_div_neg_eq]
exact (tendsto_congr fun x => rfl).mp (hdiv.comp tendsto_neg_at_top_at_bot))
have := this.comp tendsto_neg_at_bot_at_top
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_at_bot_on_Iio HasDerivAt.lhopital_zero_atBot_on_Iio
-/
@@ -337,7 +337,7 @@ theorem lhopital_zero_nhds_right (hff' : ∀ᶠ x in 𝓝[>] a, HasDerivAt f (f'
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ 𝓝[>] a := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_nhdsWithin_Ioi_iff_exists_Ioo_subset] at hs
+ rw [mem_nhdsWithin_Ioi_iff_exists_Ioo_subset] at hs
rcases hs with ⟨u, hau, hu⟩
refine' lhopital_zero_right_on_Ioo hau _ _ _ hfa hga hdiv <;> intro x hx <;> apply_assumption <;>
first
@@ -360,7 +360,7 @@ theorem lhopital_zero_nhds_left (hff' : ∀ᶠ x in 𝓝[<] a, HasDerivAt f (f'
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ 𝓝[<] a := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_nhdsWithin_Iio_iff_exists_Ioo_subset] at hs
+ rw [mem_nhdsWithin_Iio_iff_exists_Ioo_subset] at hs
rcases hs with ⟨l, hal, hl⟩
refine' lhopital_zero_left_on_Ioo hal _ _ _ hfa hga hdiv <;> intro x hx <;> apply_assumption <;>
first
@@ -412,7 +412,7 @@ theorem lhopital_zero_atTop (hff' : ∀ᶠ x in atTop, HasDerivAt f (f' x) x)
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ at_top := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_at_top_sets] at hs
+ rw [mem_at_top_sets] at hs
rcases hs with ⟨l, hl⟩
have hl' : Ioi l ⊆ s := fun x hx => hl x (le_of_lt hx)
refine' lhopital_zero_at_top_on_Ioi _ _ (fun x hx => hg' x <| (hl' hx).2) hftop hgtop hdiv <;>
@@ -437,7 +437,7 @@ theorem lhopital_zero_atBot (hff' : ∀ᶠ x in atBot, HasDerivAt f (f' x) x)
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ at_bot := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_at_bot_sets] at hs
+ rw [mem_at_bot_sets] at hs
rcases hs with ⟨l, hl⟩
have hl' : Iio l ⊆ s := fun x hx => hl x (le_of_lt hx)
refine' lhopital_zero_at_bot_on_Iio _ _ (fun x hx => hg' x <| (hl' hx).2) hfbot hgbot hdiv <;>
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-/
-import Mathbin.Analysis.Calculus.MeanValue
-import Mathbin.Analysis.Calculus.Deriv.Inv
+import Analysis.Calculus.MeanValue
+import Analysis.Calculus.Deriv.Inv
#align_import analysis.calculus.lhopital from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module analysis.calculus.lhopital
-! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Calculus.MeanValue
import Mathbin.Analysis.Calculus.Deriv.Inv
+#align_import analysis.calculus.lhopital from "leanprover-community/mathlib"@"af471b9e3ce868f296626d33189b4ce730fa4c00"
+
/-!
# L'Hôpital's rule for 0/0 indeterminate forms
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -54,8 +54,7 @@ to be satisfied on an explicitly-provided interval.
namespace HasDerivAt
-include hab
-
+#print HasDerivAt.lhopital_zero_right_on_Ioo /-
theorem lhopital_zero_right_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Ioo a b, HasDerivAt g (g' x) x) (hg' : ∀ x ∈ Ioo a b, g' x ≠ 0)
(hfa : Tendsto f (𝓝[>] a) (𝓝 0)) (hga : Tendsto g (𝓝[>] a) (𝓝 0))
@@ -106,7 +105,9 @@ theorem lhopital_zero_right_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x
try simp
linarith [this]
#align has_deriv_at.lhopital_zero_right_on_Ioo HasDerivAt.lhopital_zero_right_on_Ioo
+-/
+#print HasDerivAt.lhopital_zero_right_on_Ico /-
theorem lhopital_zero_right_on_Ico (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Ioo a b, HasDerivAt g (g' x) x) (hcf : ContinuousOn f (Ico a b))
(hcg : ContinuousOn g (Ico a b)) (hg' : ∀ x ∈ Ioo a b, g' x ≠ 0) (hfa : f a = 0) (hga : g a = 0)
@@ -118,7 +119,9 @@ theorem lhopital_zero_right_on_Ico (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x
· rw [← hga, ← nhdsWithin_Ioo_eq_nhdsWithin_Ioi hab]
exact ((hcg a <| left_mem_Ico.mpr hab).mono Ioo_subset_Ico_self).Tendsto
#align has_deriv_at.lhopital_zero_right_on_Ico HasDerivAt.lhopital_zero_right_on_Ico
+-/
+#print HasDerivAt.lhopital_zero_left_on_Ioo /-
theorem lhopital_zero_left_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Ioo a b, HasDerivAt g (g' x) x) (hg' : ∀ x ∈ Ioo a b, g' x ≠ 0)
(hfb : Tendsto f (𝓝[<] b) (𝓝 0)) (hgb : Tendsto g (𝓝[<] b) (𝓝 0))
@@ -145,7 +148,9 @@ theorem lhopital_zero_left_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x)
unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_left_on_Ioo HasDerivAt.lhopital_zero_left_on_Ioo
+-/
+#print HasDerivAt.lhopital_zero_left_on_Ioc /-
theorem lhopital_zero_left_on_Ioc (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Ioo a b, HasDerivAt g (g' x) x) (hcf : ContinuousOn f (Ioc a b))
(hcg : ContinuousOn g (Ioc a b)) (hg' : ∀ x ∈ Ioo a b, g' x ≠ 0) (hfb : f b = 0) (hgb : g b = 0)
@@ -157,9 +162,9 @@ theorem lhopital_zero_left_on_Ioc (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x)
· rw [← hgb, ← nhdsWithin_Ioo_eq_nhdsWithin_Iio hab]
exact ((hcg b <| right_mem_Ioc.mpr hab).mono Ioo_subset_Ioc_self).Tendsto
#align has_deriv_at.lhopital_zero_left_on_Ioc HasDerivAt.lhopital_zero_left_on_Ioc
+-/
-omit hab
-
+#print HasDerivAt.lhopital_zero_atTop_on_Ioi /-
theorem lhopital_zero_atTop_on_Ioi (hff' : ∀ x ∈ Ioi a, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Ioi a, HasDerivAt g (g' x) x) (hg' : ∀ x ∈ Ioi a, g' x ≠ 0)
(hftop : Tendsto f atTop (𝓝 0)) (hgtop : Tendsto g atTop (𝓝 0))
@@ -194,7 +199,9 @@ theorem lhopital_zero_atTop_on_Ioi (hff' : ∀ x ∈ Ioi a, HasDerivAt f (f' x)
unfold Function.comp at this
simpa only [inv_inv]
#align has_deriv_at.lhopital_zero_at_top_on_Ioi HasDerivAt.lhopital_zero_atTop_on_Ioi
+-/
+#print HasDerivAt.lhopital_zero_atBot_on_Iio /-
theorem lhopital_zero_atBot_on_Iio (hff' : ∀ x ∈ Iio a, HasDerivAt f (f' x) x)
(hgg' : ∀ x ∈ Iio a, HasDerivAt g (g' x) x) (hg' : ∀ x ∈ Iio a, g' x ≠ 0)
(hfbot : Tendsto f atBot (𝓝 0)) (hgbot : Tendsto g atBot (𝓝 0))
@@ -221,13 +228,13 @@ theorem lhopital_zero_atBot_on_Iio (hff' : ∀ x ∈ Iio a, HasDerivAt f (f' x)
unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_at_bot_on_Iio HasDerivAt.lhopital_zero_atBot_on_Iio
+-/
end HasDerivAt
namespace deriv
-include hab
-
+#print deriv.lhopital_zero_right_on_Ioo /-
theorem lhopital_zero_right_on_Ioo (hdf : DifferentiableOn ℝ f (Ioo a b))
(hg' : ∀ x ∈ Ioo a b, deriv g x ≠ 0) (hfa : Tendsto f (𝓝[>] a) (𝓝 0))
(hga : Tendsto g (𝓝[>] a) (𝓝 0))
@@ -242,7 +249,9 @@ theorem lhopital_zero_right_on_Ioo (hdf : DifferentiableOn ℝ f (Ioo a b))
HasDerivAt.lhopital_zero_right_on_Ioo hab (fun x hx => (hdf x hx).HasDerivAt)
(fun x hx => (hdg x hx).HasDerivAt) hg' hfa hga hdiv
#align deriv.lhopital_zero_right_on_Ioo deriv.lhopital_zero_right_on_Ioo
+-/
+#print deriv.lhopital_zero_right_on_Ico /-
theorem lhopital_zero_right_on_Ico (hdf : DifferentiableOn ℝ f (Ioo a b))
(hcf : ContinuousOn f (Ico a b)) (hcg : ContinuousOn g (Ico a b))
(hg' : ∀ x ∈ Ioo a b, (deriv g) x ≠ 0) (hfa : f a = 0) (hga : g a = 0)
@@ -255,7 +264,9 @@ theorem lhopital_zero_right_on_Ico (hdf : DifferentiableOn ℝ f (Ioo a b))
· rw [← hga, ← nhdsWithin_Ioo_eq_nhdsWithin_Ioi hab]
exact ((hcg a <| left_mem_Ico.mpr hab).mono Ioo_subset_Ico_self).Tendsto
#align deriv.lhopital_zero_right_on_Ico deriv.lhopital_zero_right_on_Ico
+-/
+#print deriv.lhopital_zero_left_on_Ioo /-
theorem lhopital_zero_left_on_Ioo (hdf : DifferentiableOn ℝ f (Ioo a b))
(hg' : ∀ x ∈ Ioo a b, (deriv g) x ≠ 0) (hfb : Tendsto f (𝓝[<] b) (𝓝 0))
(hgb : Tendsto g (𝓝[<] b) (𝓝 0))
@@ -270,9 +281,9 @@ theorem lhopital_zero_left_on_Ioo (hdf : DifferentiableOn ℝ f (Ioo a b))
HasDerivAt.lhopital_zero_left_on_Ioo hab (fun x hx => (hdf x hx).HasDerivAt)
(fun x hx => (hdg x hx).HasDerivAt) hg' hfb hgb hdiv
#align deriv.lhopital_zero_left_on_Ioo deriv.lhopital_zero_left_on_Ioo
+-/
-omit hab
-
+#print deriv.lhopital_zero_atTop_on_Ioi /-
theorem lhopital_zero_atTop_on_Ioi (hdf : DifferentiableOn ℝ f (Ioi a))
(hg' : ∀ x ∈ Ioi a, (deriv g) x ≠ 0) (hftop : Tendsto f atTop (𝓝 0))
(hgtop : Tendsto g atTop (𝓝 0)) (hdiv : Tendsto (fun x => (deriv f) x / (deriv g) x) atTop l) :
@@ -286,7 +297,9 @@ theorem lhopital_zero_atTop_on_Ioi (hdf : DifferentiableOn ℝ f (Ioi a))
HasDerivAt.lhopital_zero_atTop_on_Ioi (fun x hx => (hdf x hx).HasDerivAt)
(fun x hx => (hdg x hx).HasDerivAt) hg' hftop hgtop hdiv
#align deriv.lhopital_zero_at_top_on_Ioi deriv.lhopital_zero_atTop_on_Ioi
+-/
+#print deriv.lhopital_zero_atBot_on_Iio /-
theorem lhopital_zero_atBot_on_Iio (hdf : DifferentiableOn ℝ f (Iio a))
(hg' : ∀ x ∈ Iio a, (deriv g) x ≠ 0) (hfbot : Tendsto f atBot (𝓝 0))
(hgbot : Tendsto g atBot (𝓝 0)) (hdiv : Tendsto (fun x => (deriv f) x / (deriv g) x) atBot l) :
@@ -300,6 +313,7 @@ theorem lhopital_zero_atBot_on_Iio (hdf : DifferentiableOn ℝ f (Iio a))
HasDerivAt.lhopital_zero_atBot_on_Iio (fun x hx => (hdf x hx).HasDerivAt)
(fun x hx => (hdg x hx).HasDerivAt) hg' hfbot hgbot hdiv
#align deriv.lhopital_zero_at_bot_on_Iio deriv.lhopital_zero_atBot_on_Iio
+-/
end deriv
@@ -313,6 +327,7 @@ conditions holding eventually.
namespace HasDerivAt
+#print HasDerivAt.lhopital_zero_nhds_right /-
/-- L'Hôpital's rule for approaching a real from the right, `has_deriv_at` version -/
theorem lhopital_zero_nhds_right (hff' : ∀ᶠ x in 𝓝[>] a, HasDerivAt f (f' x) x)
(hgg' : ∀ᶠ x in 𝓝[>] a, HasDerivAt g (g' x) x) (hg' : ∀ᶠ x in 𝓝[>] a, g' x ≠ 0)
@@ -333,7 +348,9 @@ theorem lhopital_zero_nhds_right (hff' : ∀ᶠ x in 𝓝[>] a, HasDerivAt f (f'
| exact (hu hx).1.2
| exact (hu hx).2
#align has_deriv_at.lhopital_zero_nhds_right HasDerivAt.lhopital_zero_nhds_right
+-/
+#print HasDerivAt.lhopital_zero_nhds_left /-
/-- L'Hôpital's rule for approaching a real from the left, `has_deriv_at` version -/
theorem lhopital_zero_nhds_left (hff' : ∀ᶠ x in 𝓝[<] a, HasDerivAt f (f' x) x)
(hgg' : ∀ᶠ x in 𝓝[<] a, HasDerivAt g (g' x) x) (hg' : ∀ᶠ x in 𝓝[<] a, g' x ≠ 0)
@@ -354,7 +371,9 @@ theorem lhopital_zero_nhds_left (hff' : ∀ᶠ x in 𝓝[<] a, HasDerivAt f (f'
| exact (hl hx).1.2
| exact (hl hx).2
#align has_deriv_at.lhopital_zero_nhds_left HasDerivAt.lhopital_zero_nhds_left
+-/
+#print HasDerivAt.lhopital_zero_nhds' /-
/-- L'Hôpital's rule for approaching a real, `has_deriv_at` version. This
does not require anything about the situation at `a` -/
theorem lhopital_zero_nhds' (hff' : ∀ᶠ x in 𝓝[≠] a, HasDerivAt f (f' x) x)
@@ -367,7 +386,9 @@ theorem lhopital_zero_nhds' (hff' : ∀ᶠ x in 𝓝[≠] a, HasDerivAt f (f' x)
⟨lhopital_zero_nhds_left hff'.1 hgg'.1 hg'.1 hfa.1 hga.1 hdiv.1,
lhopital_zero_nhds_right hff'.2 hgg'.2 hg'.2 hfa.2 hga.2 hdiv.2⟩
#align has_deriv_at.lhopital_zero_nhds' HasDerivAt.lhopital_zero_nhds'
+-/
+#print HasDerivAt.lhopital_zero_nhds /-
/-- **L'Hôpital's rule** for approaching a real, `has_deriv_at` version -/
theorem lhopital_zero_nhds (hff' : ∀ᶠ x in 𝓝 a, HasDerivAt f (f' x) x)
(hgg' : ∀ᶠ x in 𝓝 a, HasDerivAt g (g' x) x) (hg' : ∀ᶠ x in 𝓝 a, g' x ≠ 0)
@@ -379,7 +400,9 @@ theorem lhopital_zero_nhds (hff' : ∀ᶠ x in 𝓝 a, HasDerivAt f (f' x) x)
| apply tendsto_nhdsWithin_of_tendsto_nhds <;>
assumption
#align has_deriv_at.lhopital_zero_nhds HasDerivAt.lhopital_zero_nhds
+-/
+#print HasDerivAt.lhopital_zero_atTop /-
/-- L'Hôpital's rule for approaching +∞, `has_deriv_at` version -/
theorem lhopital_zero_atTop (hff' : ∀ᶠ x in atTop, HasDerivAt f (f' x) x)
(hgg' : ∀ᶠ x in atTop, HasDerivAt g (g' x) x) (hg' : ∀ᶠ x in atTop, g' x ≠ 0)
@@ -402,7 +425,9 @@ theorem lhopital_zero_atTop (hff' : ∀ᶠ x in atTop, HasDerivAt f (f' x) x)
| exact (hl' hx).1.1
| exact (hl' hx).1.2
#align has_deriv_at.lhopital_zero_at_top HasDerivAt.lhopital_zero_atTop
+-/
+#print HasDerivAt.lhopital_zero_atBot /-
/-- L'Hôpital's rule for approaching -∞, `has_deriv_at` version -/
theorem lhopital_zero_atBot (hff' : ∀ᶠ x in atBot, HasDerivAt f (f' x) x)
(hgg' : ∀ᶠ x in atBot, HasDerivAt g (g' x) x) (hg' : ∀ᶠ x in atBot, g' x ≠ 0)
@@ -425,11 +450,13 @@ theorem lhopital_zero_atBot (hff' : ∀ᶠ x in atBot, HasDerivAt f (f' x) x)
| exact (hl' hx).1.1
| exact (hl' hx).1.2
#align has_deriv_at.lhopital_zero_at_bot HasDerivAt.lhopital_zero_atBot
+-/
end HasDerivAt
namespace deriv
+#print deriv.lhopital_zero_nhds_right /-
/-- **L'Hôpital's rule** for approaching a real from the right, `deriv` version -/
theorem lhopital_zero_nhds_right (hdf : ∀ᶠ x in 𝓝[>] a, DifferentiableAt ℝ f x)
(hg' : ∀ᶠ x in 𝓝[>] a, deriv g x ≠ 0) (hfa : Tendsto f (𝓝[>] a) (𝓝 0))
@@ -447,7 +474,9 @@ theorem lhopital_zero_nhds_right (hdf : ∀ᶠ x in 𝓝[>] a, DifferentiableAt
hdg.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
exact HasDerivAt.lhopital_zero_nhds_right hdf' hdg' hg' hfa hga hdiv
#align deriv.lhopital_zero_nhds_right deriv.lhopital_zero_nhds_right
+-/
+#print deriv.lhopital_zero_nhds_left /-
/-- **L'Hôpital's rule** for approaching a real from the left, `deriv` version -/
theorem lhopital_zero_nhds_left (hdf : ∀ᶠ x in 𝓝[<] a, DifferentiableAt ℝ f x)
(hg' : ∀ᶠ x in 𝓝[<] a, deriv g x ≠ 0) (hfa : Tendsto f (𝓝[<] a) (𝓝 0))
@@ -465,7 +494,9 @@ theorem lhopital_zero_nhds_left (hdf : ∀ᶠ x in 𝓝[<] a, DifferentiableAt
hdg.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
exact HasDerivAt.lhopital_zero_nhds_left hdf' hdg' hg' hfa hga hdiv
#align deriv.lhopital_zero_nhds_left deriv.lhopital_zero_nhds_left
+-/
+#print deriv.lhopital_zero_nhds' /-
/-- **L'Hôpital's rule** for approaching a real, `deriv` version. This
does not require anything about the situation at `a` -/
theorem lhopital_zero_nhds' (hdf : ∀ᶠ x in 𝓝[≠] a, DifferentiableAt ℝ f x)
@@ -479,7 +510,9 @@ theorem lhopital_zero_nhds' (hdf : ∀ᶠ x in 𝓝[≠] a, DifferentiableAt ℝ
⟨lhopital_zero_nhds_left hdf.1 hg'.1 hfa.1 hga.1 hdiv.1,
lhopital_zero_nhds_right hdf.2 hg'.2 hfa.2 hga.2 hdiv.2⟩
#align deriv.lhopital_zero_nhds' deriv.lhopital_zero_nhds'
+-/
+#print deriv.lhopital_zero_nhds /-
/-- **L'Hôpital's rule** for approaching a real, `deriv` version -/
theorem lhopital_zero_nhds (hdf : ∀ᶠ x in 𝓝 a, DifferentiableAt ℝ f x)
(hg' : ∀ᶠ x in 𝓝 a, deriv g x ≠ 0) (hfa : Tendsto f (𝓝 a) (𝓝 0)) (hga : Tendsto g (𝓝 a) (𝓝 0))
@@ -491,7 +524,9 @@ theorem lhopital_zero_nhds (hdf : ∀ᶠ x in 𝓝 a, DifferentiableAt ℝ f x)
| apply tendsto_nhdsWithin_of_tendsto_nhds <;>
assumption
#align deriv.lhopital_zero_nhds deriv.lhopital_zero_nhds
+-/
+#print deriv.lhopital_zero_atTop /-
/-- **L'Hôpital's rule** for approaching +∞, `deriv` version -/
theorem lhopital_zero_atTop (hdf : ∀ᶠ x : ℝ in atTop, DifferentiableAt ℝ f x)
(hg' : ∀ᶠ x : ℝ in atTop, deriv g x ≠ 0) (hftop : Tendsto f atTop (𝓝 0))
@@ -508,7 +543,9 @@ theorem lhopital_zero_atTop (hdf : ∀ᶠ x : ℝ in atTop, DifferentiableAt ℝ
hdg.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
exact HasDerivAt.lhopital_zero_atTop hdf' hdg' hg' hftop hgtop hdiv
#align deriv.lhopital_zero_at_top deriv.lhopital_zero_atTop
+-/
+#print deriv.lhopital_zero_atBot /-
/-- **L'Hôpital's rule** for approaching -∞, `deriv` version -/
theorem lhopital_zero_atBot (hdf : ∀ᶠ x : ℝ in atBot, DifferentiableAt ℝ f x)
(hg' : ∀ᶠ x : ℝ in atBot, deriv g x ≠ 0) (hfbot : Tendsto f atBot (𝓝 0))
@@ -525,6 +562,7 @@ theorem lhopital_zero_atBot (hdf : ∀ᶠ x : ℝ in atBot, DifferentiableAt ℝ
hdg.mp (eventually_of_forall fun _ => DifferentiableAt.hasDerivAt)
exact HasDerivAt.lhopital_zero_atBot hdf' hdg' hg' hfbot hgbot hdiv
#align deriv.lhopital_zero_at_bot deriv.lhopital_zero_atBot
+-/
end deriv
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
! This file was ported from Lean 3 source module analysis.calculus.lhopital
-! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
+! leanprover-community/mathlib commit af471b9e3ce868f296626d33189b4ce730fa4c00
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Analysis.Calculus.Deriv.Inv
/-!
# L'Hôpital's rule for 0/0 indeterminate forms
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file, we prove several forms of "L'Hopital's rule" for computing 0/0
indeterminate forms. The proof of `has_deriv_at.lhopital_zero_right_on_Ioo`
is based on the one given in the corresponding
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -126,20 +126,20 @@ theorem lhopital_zero_left_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x)
comp x (hff' (-x) hx) (hasDerivAt_neg x)
have hdng : ∀ x ∈ -Ioo a b, HasDerivAt (g ∘ Neg.neg) (g' (-x) * -1) x := fun x hx =>
comp x (hgg' (-x) hx) (hasDerivAt_neg x)
- rw [preimage_neg_Ioo] at hdnf
- rw [preimage_neg_Ioo] at hdng
+ rw [preimage_neg_Ioo] at hdnf
+ rw [preimage_neg_Ioo] at hdng
have :=
lhopital_zero_right_on_Ioo (neg_lt_neg hab) hdnf hdng
(by
intro x hx h
- apply hg' _ (by rw [← preimage_neg_Ioo] at hx; exact hx)
- rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
+ apply hg' _ (by rw [← preimage_neg_Ioo] at hx ; exact hx)
+ rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h )
(hfb.comp tendsto_neg_nhdsWithin_Ioi_neg) (hgb.comp tendsto_neg_nhdsWithin_Ioi_neg)
(by
simp only [neg_div_neg_eq, mul_one, mul_neg]
exact (tendsto_congr fun x => rfl).mp (hdiv.comp tendsto_neg_nhdsWithin_Ioi_neg))
have := this.comp tendsto_neg_nhdsWithin_Iio
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_left_on_Ioo HasDerivAt.lhopital_zero_left_on_Ioo
@@ -188,7 +188,7 @@ theorem lhopital_zero_atTop_on_Ioi (hff' : ∀ x ∈ Ioi a, HasDerivAt f (f' x)
erw [mul_div_mul_right]
refine' neg_ne_zero.mpr (inv_ne_zero <| pow_ne_zero _ <| ne_of_gt hx))
have := this.comp tendsto_inv_atTop_zero'
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [inv_inv]
#align has_deriv_at.lhopital_zero_at_top_on_Ioi HasDerivAt.lhopital_zero_atTop_on_Ioi
@@ -202,20 +202,20 @@ theorem lhopital_zero_atBot_on_Iio (hff' : ∀ x ∈ Iio a, HasDerivAt f (f' x)
comp x (hff' (-x) hx) (hasDerivAt_neg x)
have hdng : ∀ x ∈ -Iio a, HasDerivAt (g ∘ Neg.neg) (g' (-x) * -1) x := fun x hx =>
comp x (hgg' (-x) hx) (hasDerivAt_neg x)
- rw [preimage_neg_Iio] at hdnf
- rw [preimage_neg_Iio] at hdng
+ rw [preimage_neg_Iio] at hdnf
+ rw [preimage_neg_Iio] at hdng
have :=
lhopital_zero_at_top_on_Ioi hdnf hdng
(by
intro x hx h
- apply hg' _ (by rw [← preimage_neg_Iio] at hx; exact hx)
- rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
+ apply hg' _ (by rw [← preimage_neg_Iio] at hx ; exact hx)
+ rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h )
(hfbot.comp tendsto_neg_at_top_at_bot) (hgbot.comp tendsto_neg_at_top_at_bot)
(by
simp only [mul_one, mul_neg, neg_div_neg_eq]
exact (tendsto_congr fun x => rfl).mp (hdiv.comp tendsto_neg_at_top_at_bot))
have := this.comp tendsto_neg_at_bot_at_top
- unfold Function.comp at this
+ unfold Function.comp at this
simpa only [neg_neg]
#align has_deriv_at.lhopital_zero_at_bot_on_Iio HasDerivAt.lhopital_zero_atBot_on_Iio
@@ -322,10 +322,13 @@ theorem lhopital_zero_nhds_right (hff' : ∀ᶠ x in 𝓝[>] a, HasDerivAt f (f'
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ 𝓝[>] a := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_nhdsWithin_Ioi_iff_exists_Ioo_subset] at hs
+ rw [mem_nhdsWithin_Ioi_iff_exists_Ioo_subset] at hs
rcases hs with ⟨u, hau, hu⟩
refine' lhopital_zero_right_on_Ioo hau _ _ _ hfa hga hdiv <;> intro x hx <;> apply_assumption <;>
- first |exact (hu hx).1.1|exact (hu hx).1.2|exact (hu hx).2
+ first
+ | exact (hu hx).1.1
+ | exact (hu hx).1.2
+ | exact (hu hx).2
#align has_deriv_at.lhopital_zero_nhds_right HasDerivAt.lhopital_zero_nhds_right
/-- L'Hôpital's rule for approaching a real from the left, `has_deriv_at` version -/
@@ -340,10 +343,13 @@ theorem lhopital_zero_nhds_left (hff' : ∀ᶠ x in 𝓝[<] a, HasDerivAt f (f'
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ 𝓝[<] a := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_nhdsWithin_Iio_iff_exists_Ioo_subset] at hs
+ rw [mem_nhdsWithin_Iio_iff_exists_Ioo_subset] at hs
rcases hs with ⟨l, hal, hl⟩
refine' lhopital_zero_left_on_Ioo hal _ _ _ hfa hga hdiv <;> intro x hx <;> apply_assumption <;>
- first |exact (hl hx).1.1|exact (hl hx).1.2|exact (hl hx).2
+ first
+ | exact (hl hx).1.1
+ | exact (hl hx).1.2
+ | exact (hl hx).2
#align has_deriv_at.lhopital_zero_nhds_left HasDerivAt.lhopital_zero_nhds_left
/-- L'Hôpital's rule for approaching a real, `has_deriv_at` version. This
@@ -366,7 +372,8 @@ theorem lhopital_zero_nhds (hff' : ∀ᶠ x in 𝓝 a, HasDerivAt f (f' x) x)
(hdiv : Tendsto (fun x => f' x / g' x) (𝓝 a) l) : Tendsto (fun x => f x / g x) (𝓝[≠] a) l := by
apply @lhopital_zero_nhds' _ _ _ f' _ g' <;>
first
- |apply eventually_nhdsWithin_of_eventually_nhds|apply tendsto_nhdsWithin_of_tendsto_nhds <;>
+ | apply eventually_nhdsWithin_of_eventually_nhds
+ | apply tendsto_nhdsWithin_of_tendsto_nhds <;>
assumption
#align has_deriv_at.lhopital_zero_nhds HasDerivAt.lhopital_zero_nhds
@@ -382,13 +389,15 @@ theorem lhopital_zero_atTop (hff' : ∀ᶠ x in atTop, HasDerivAt f (f' x) x)
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ at_top := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_at_top_sets] at hs
+ rw [mem_at_top_sets] at hs
rcases hs with ⟨l, hl⟩
have hl' : Ioi l ⊆ s := fun x hx => hl x (le_of_lt hx)
refine' lhopital_zero_at_top_on_Ioi _ _ (fun x hx => hg' x <| (hl' hx).2) hftop hgtop hdiv <;>
intro x hx <;>
apply_assumption <;>
- first |exact (hl' hx).1.1|exact (hl' hx).1.2
+ first
+ | exact (hl' hx).1.1
+ | exact (hl' hx).1.2
#align has_deriv_at.lhopital_zero_at_top HasDerivAt.lhopital_zero_atTop
/-- L'Hôpital's rule for approaching -∞, `has_deriv_at` version -/
@@ -403,13 +412,15 @@ theorem lhopital_zero_atBot (hff' : ∀ᶠ x in atBot, HasDerivAt f (f' x) x)
rcases hg' with ⟨s₃, hs₃, hg'⟩
let s := s₁ ∩ s₂ ∩ s₃
have hs : s ∈ at_bot := inter_mem (inter_mem hs₁ hs₂) hs₃
- rw [mem_at_bot_sets] at hs
+ rw [mem_at_bot_sets] at hs
rcases hs with ⟨l, hl⟩
have hl' : Iio l ⊆ s := fun x hx => hl x (le_of_lt hx)
refine' lhopital_zero_at_bot_on_Iio _ _ (fun x hx => hg' x <| (hl' hx).2) hfbot hgbot hdiv <;>
intro x hx <;>
apply_assumption <;>
- first |exact (hl' hx).1.1|exact (hl' hx).1.2
+ first
+ | exact (hl' hx).1.1
+ | exact (hl' hx).1.2
#align has_deriv_at.lhopital_zero_at_bot HasDerivAt.lhopital_zero_atBot
end HasDerivAt
@@ -473,7 +484,8 @@ theorem lhopital_zero_nhds (hdf : ∀ᶠ x in 𝓝 a, DifferentiableAt ℝ f x)
Tendsto (fun x => f x / g x) (𝓝[≠] a) l := by
apply lhopital_zero_nhds' <;>
first
- |apply eventually_nhdsWithin_of_eventually_nhds|apply tendsto_nhdsWithin_of_tendsto_nhds <;>
+ | apply eventually_nhdsWithin_of_eventually_nhds
+ | apply tendsto_nhdsWithin_of_tendsto_nhds <;>
assumption
#align deriv.lhopital_zero_nhds deriv.lhopital_zero_nhds
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -37,7 +37,7 @@ L'Hôpital's rule, L'Hopital's rule
open Filter Set
-open Filter Topology Pointwise
+open scoped Filter Topology Pointwise
variable {a b : ℝ} (hab : a < b) {l : Filter ℝ} {f f' g g' : ℝ → ℝ}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -132,11 +132,7 @@ theorem lhopital_zero_left_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x)
lhopital_zero_right_on_Ioo (neg_lt_neg hab) hdnf hdng
(by
intro x hx h
- apply
- hg' _
- (by
- rw [← preimage_neg_Ioo] at hx
- exact hx)
+ apply hg' _ (by rw [← preimage_neg_Ioo] at hx; exact hx)
rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
(hfb.comp tendsto_neg_nhdsWithin_Ioi_neg) (hgb.comp tendsto_neg_nhdsWithin_Ioi_neg)
(by
@@ -212,11 +208,7 @@ theorem lhopital_zero_atBot_on_Iio (hff' : ∀ x ∈ Iio a, HasDerivAt f (f' x)
lhopital_zero_at_top_on_Ioi hdnf hdng
(by
intro x hx h
- apply
- hg' _
- (by
- rw [← preimage_neg_Iio] at hx
- exact hx)
+ apply hg' _ (by rw [← preimage_neg_Iio] at hx; exact hx)
rwa [mul_comm, ← neg_eq_neg_one_mul, neg_eq_zero] at h)
(hfbot.comp tendsto_neg_at_top_at_bot) (hgbot.comp tendsto_neg_at_top_at_bot)
(by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,11 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
! This file was ported from Lean 3 source module analysis.calculus.lhopital
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Analysis.Calculus.MeanValue
+import Mathbin.Analysis.Calculus.Deriv.Inv
/-!
# L'Hôpital's rule for 0/0 indeterminate forms
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -60,8 +60,8 @@ theorem lhopital_zero_right_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x
have : Tendsto g (𝓝[<] x) (𝓝 0) := by
rw [← h, ← nhdsWithin_Ioo_eq_nhdsWithin_Iio hx.1]
exact ((hgg' x hx).continuousAt.continuousWithinAt.mono <| sub x hx).tendsto
- obtain ⟨y, hyx, hy⟩ : ∃ c ∈ Ioo a x, g' c = 0
- exact exists_hasDerivAt_eq_zero' hx.1 hga this fun y hy => hgg' y <| sub x hx hy
+ obtain ⟨y, hyx, hy⟩ : ∃ c ∈ Ioo a x, g' c = 0 :=
+ exists_hasDerivAt_eq_zero' hx.1 hga this fun y hy => hgg' y <| sub x hx hy
exact hg' y (sub x hx hyx) hy
have : ∀ x ∈ Ioo a b, ∃ c ∈ Ioo a x, f x * g' c = g x * f' c := by
intro x hx
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -168,7 +168,7 @@ theorem lhopital_zero_atTop_on_Ioi (hff' : ∀ x ∈ Ioi a, HasDerivAt f (f' x)
unfold Function.comp
simp only
erw [mul_div_mul_right]
- refine' neg_ne_zero.mpr (inv_ne_zero <| pow_ne_zero _ <| ne_of_gt hx))
+ exact neg_ne_zero.mpr (inv_ne_zero <| pow_ne_zero _ <| ne_of_gt hx))
have := this.comp tendsto_inv_atTop_zero'
unfold Function.comp at this
simpa only [inv_inv]
@@ -80,7 +80,6 @@ theorem lhopital_zero_right_on_Ioo (hff' : ∀ x ∈ Ioo a b, HasDerivAt f (f' x
have cmp : ∀ x ∈ Ioo a b, a < c x ∧ c x < x := fun x hx => (hc x hx).1
rw [← nhdsWithin_Ioo_eq_nhdsWithin_Ioi hab]
apply tendsto_nhdsWithin_congr this
- simp only
apply hdiv.comp
refine' tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within _
(tendsto_of_tendsto_of_tendsto_of_le_of_le' tendsto_const_nhds
@@ -2,15 +2,12 @@
Copyright (c) 2020 Anatole Dedecker. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module analysis.calculus.lhopital
-! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Calculus.MeanValue
import Mathlib.Analysis.Calculus.Deriv.Inv
+#align_import analysis.calculus.lhopital from "leanprover-community/mathlib"@"3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe"
+
/-!
# L'Hôpital's rule for 0/0 indeterminate forms
@@ -14,7 +14,7 @@ import Mathlib.Analysis.Calculus.Deriv.Inv
/-!
# L'Hôpital's rule for 0/0 indeterminate forms
-In this file, we prove several forms of "L'Hopital's rule" for computing 0/0
+In this file, we prove several forms of "L'Hôpital's rule" for computing 0/0
indeterminate forms. The proof of `HasDerivAt.lhopital_zero_right_on_Ioo`
is based on the one given in the corresponding
[Wikibooks](https://en.wikibooks.org/wiki/Calculus/L%27H%C3%B4pital%27s_Rule)
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file