1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: measurable_deriv_with_param
File: Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

tactic: simpa only [fderiv_deriv] using measurable_fderiv_apply_const_with_param 𝕜 hf 1
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁵ : NormedAddCommGroup E
inst✝¹⁴ : NormedSpace 𝕜 E
inst✝¹³ : LocallyCompactSpace E
F : Type u_3
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedSpace 𝕜 F
α : Type u_4
inst✝¹⁰ : TopologicalSpace α
inst✝⁹ : MeasurableSpace α
inst✝⁸ : MeasurableSpace E
inst✝⁷ : OpensMeasurableSpace α
inst✝⁶ : OpensMeasurableSpace E
f✝ : α → E → F
K : Set (E →L[𝕜] F)
inst✝⁵ : CompleteSpace F
inst✝⁴ : LocallyCompactSpace 𝕜
inst✝³ : MeasurableSpace 𝕜
inst✝² : OpensMeasurableSpace 𝕜
inst✝¹ : MeasurableSpace F
inst✝ : BorelSpace F
f : α → 𝕜 → F
hf : Continuous (Function.uncurry f)
⊢ Measurable fun p => deriv (f p.1) p.2
state_after: no goals
Theorem: Nat.lt_iff_add_one_le
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [succ_le_iff]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
⊢ m < n ↔ m + 1 ≤ n
state_after: no goals
Theorem: taylor_within_apply
File: Mathlib/Analysis/Calculus/Taylor.lean

tactic: induction' n with k hk
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
n : ℕ
s : Set ℝ
x₀ x : ℝ
⊢ taylorWithinEval f n s x₀ x = ∑ k ∈ Finset.range (n + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
state_after: case zero
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
⊢ taylorWithinEval f 0 s x₀ x = ∑ k ∈ Finset.range (0 + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀

case succ
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
k : ℕ
hk : taylorWithinEval f k s x₀ x = ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
⊢ taylorWithinEval f (k + 1) s x₀ x =
    ∑ k ∈ Finset.range (k + 1 + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀

tactic: rw [taylorWithinEval_succ, Finset.sum_range_succ, hk]
state_before: case succ
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
k : ℕ
hk : taylorWithinEval f k s x₀ x = ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
⊢ taylorWithinEval f (k + 1) s x₀ x =
    ∑ k ∈ Finset.range (k + 1 + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
state_after: case succ
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
k : ℕ
hk : taylorWithinEval f k s x₀ x = ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
⊢ ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀ +
      (((↑k + 1) * ↑k !)⁻¹ * (x - x₀) ^ (k + 1)) • iteratedDerivWithin (k + 1) f s x₀ =
    ∑ x_1 ∈ Finset.range (k + 1), ((↑x_1 !)⁻¹ * (x - x₀) ^ x_1) • iteratedDerivWithin x_1 f s x₀ +
      ((↑(k + 1)!)⁻¹ * (x - x₀) ^ (k + 1)) • iteratedDerivWithin (k + 1) f s x₀

tactic: simp [Nat.factorial]
state_before: case succ
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
k : ℕ
hk : taylorWithinEval f k s x₀ x = ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
⊢ ∑ k ∈ Finset.range (k + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀ +
      (((↑k + 1) * ↑k !)⁻¹ * (x - x₀) ^ (k + 1)) • iteratedDerivWithin (k + 1) f s x₀ =
    ∑ x_1 ∈ Finset.range (k + 1), ((↑x_1 !)⁻¹ * (x - x₀) ^ x_1) • iteratedDerivWithin x_1 f s x₀ +
      ((↑(k + 1)!)⁻¹ * (x - x₀) ^ (k + 1)) • iteratedDerivWithin (k + 1) f s x₀
state_after: no goals

tactic: simp
state_before: case zero
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
f : ℝ → E
s : Set ℝ
x₀ x : ℝ
⊢ taylorWithinEval f 0 s x₀ x = ∑ k ∈ Finset.range (0 + 1), ((↑k !)⁻¹ * (x - x₀) ^ k) • iteratedDerivWithin k f s x₀
state_after: no goals
Theorem: ArithmeticFunction.moebius_apply_one
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp
state_before: R : Type u_1
⊢ μ 1 = 1
state_after: no goals
Theorem: Filter.HasBasis.uniformity_of_nhds_one_swapped
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: rw [uniformity_eq_comap_nhds_one_swapped]
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
ι : Sort u_3
p : ι → Prop
U : ι → Set α
h : (𝓝 1).HasBasis p U
⊢ (𝓤 α).HasBasis p fun i => {x | x.1 / x.2 ∈ U i}
state_after: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
ι : Sort u_3
p : ι → Prop
U : ι → Set α
h : (𝓝 1).HasBasis p U
⊢ (Filter.comap (fun x => x.1 / x.2) (𝓝 1)).HasBasis p fun i => {x | x.1 / x.2 ∈ U i}

tactic: exact h.comap _
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
ι : Sort u_3
p : ι → Prop
U : ι → Set α
h : (𝓝 1).HasBasis p U
⊢ (Filter.comap (fun x => x.1 / x.2) (𝓝 1)).HasBasis p fun i => {x | x.1 / x.2 ∈ U i}
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.dblX_of_Z_ne_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rw [dblX, toAffine_slope_of_eq hP hQ hPz hQz hx hy, dblZ, ← (X_eq_iff hPz hQz).mp hx,
  toAffine_addX_of_eq hPz <| sub_ne_zero_of_ne <| Y_ne_negY_of_Y_ne' hP hQ hx hy]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → F
hP : W.Equation P
hQ : W.Equation Q
hPz : P z ≠ 0
hQz : Q z ≠ 0
hx : P x * Q z ^ 2 = Q x * P z ^ 2
hy : P y * Q z ^ 3 ≠ W.negY Q * P z ^ 3
⊢ W.dblX P / W.dblZ P ^ 2 =
    W.toAffine.addX (P x / P z ^ 2) (Q x / Q z ^ 2)
      (W.toAffine.slope (P x / P z ^ 2) (Q x / Q z ^ 2) (P y / P z ^ 3) (Q y / Q z ^ 3))
state_after: no goals
Theorem: AffineBasis.coord_apply
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: rcases eq_or_ne i j with h | h <;> simp [h]
state_before: ι : Type u_1
ι' : Type u_2
k : Type u_3
V : Type u_4
P : Type u_5
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j✝ : ι
e : ι ≃ ι'
inst✝ : DecidableEq ι
i j : ι
⊢ (b.coord i) (b j) = if i = j then 1 else 0
state_after: no goals
Theorem: Basis.reindexFinsetRange_repr_self
File: Mathlib/LinearAlgebra/Basis.lean

tactic: ext ⟨bi, hbi⟩
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
⊢ b.reindexFinsetRange.repr (b i) = Finsupp.single ⟨b i, ⋯⟩ 1
state_after: case h.mk
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (⇑b) Finset.univ
⊢ (b.reindexFinsetRange.repr (b i)) ⟨bi, hbi⟩ = (Finsupp.single ⟨b i, ⋯⟩ 1) ⟨bi, hbi⟩

tactic: rw [reindexFinsetRange, repr_reindex, Finsupp.mapDomain_equiv_apply, reindexRange_repr_self]
state_before: case h.mk
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (⇑b) Finset.univ
⊢ (b.reindexFinsetRange.repr (b i)) ⟨bi, hbi⟩ = (Finsupp.single ⟨b i, ⋯⟩ 1) ⟨bi, hbi⟩
state_after: case h.mk
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (⇑b) Finset.univ
⊢ (Finsupp.single ⟨b i, ⋯⟩ 1) (((Equiv.refl M).subtypeEquiv ⋯).symm ⟨bi, hbi⟩) = (Finsupp.single ⟨b i, ⋯⟩ 1) ⟨bi, hbi⟩

tactic: simp [Finsupp.single_apply]
state_before: case h.mk
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
bi : M
hbi : bi ∈ Finset.image (⇑b) Finset.univ
⊢ (Finsupp.single ⟨b i, ⋯⟩ 1) (((Equiv.refl M).subtypeEquiv ⋯).symm ⟨bi, hbi⟩) = (Finsupp.single ⟨b i, ⋯⟩ 1) ⟨bi, hbi⟩
state_after: no goals
Theorem: dist_pos
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simpa only [not_le] using not_congr dist_le_zero
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
γ : Type w
inst✝ : MetricSpace γ
x y : γ
⊢ 0 < dist x y ↔ x ≠ y
state_after: no goals
Theorem: CategoryTheory.GradedObject.comapEq_trans
File: Mathlib/CategoryTheory/GradedObject.lean

tactic: aesop_cat
state_before: C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
f g h : β → γ
k : f = g
l : g = h
⊢ comapEq C ⋯ = comapEq C k ≪≫ comapEq C l
state_after: no goals
Theorem: RatFunc.algebraMap_apply_div
File: Mathlib/RingTheory/LaurentSeries.lean

tactic: convert coe_div (algebraMap F[X] (RatFunc F) p) (algebraMap F[X] (RatFunc F) q) <;>
  rw [← mk_one, coe_def, coeAlgHom, mk_eq_div, liftAlgHom_apply_div, map_one, div_one,
    Algebra.ofId_apply]
state_before: R : Type u_1
F : Type u
inst✝ : Field F
p q : F[X]
f g : RatFunc F
⊢ (algebraMap (RatFunc F) (LaurentSeries F)) ((algebraMap F[X] (RatFunc F)) p / (algebraMap F[X] (RatFunc F)) q) =
    (algebraMap F[X] (LaurentSeries F)) p / (algebraMap F[X] (LaurentSeries F)) q
state_after: no goals
Theorem: inv_smul_lt_iff_of_pos
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: rw [← smul_lt_smul_iff_of_pos_left ha, smul_inv_smul₀ ha.ne']
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁵ : GroupWithZero α
inst✝⁴ : Preorder α
inst✝³ : Preorder β
inst✝² : MulAction α β
inst✝¹ : PosSMulStrictMono α β
inst✝ : PosSMulReflectLT α β
ha : 0 < a
⊢ a⁻¹ • b₁ < b₂ ↔ b₁ < a • b₂
state_after: no goals
Theorem: intervalIntegral.integral_comp_add_div
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [div_eq_inv_mul, inv_inv] using integral_comp_add_mul f (inv_ne_zero hc) d
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d✝ : ℝ
f : ℝ → E
hc : c ≠ 0
d : ℝ
⊢ ∫ (x : ℝ) in a..b, f (d + x / c) = c • ∫ (x : ℝ) in d + a / c..d + b / c, f x
state_after: no goals
Theorem: Polynomial.Separable.squarefree
File: Mathlib/FieldTheory/Separable.lean

tactic: rw [multiplicity.squarefree_iff_multiplicity_le_one p]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q : ℕ
p : R[X]
hsep : p.Separable
⊢ Squarefree p
state_after: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q : ℕ
p : R[X]
hsep : p.Separable
⊢ ∀ (x : R[X]), multiplicity x p ≤ 1 ∨ IsUnit x

tactic: exact fun f => or_iff_not_imp_right.mpr fun hunit => multiplicity_le_one_of_separable hunit hsep
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p✝ q : ℕ
p : R[X]
hsep : p.Separable
⊢ ∀ (x : R[X]), multiplicity x p ≤ 1 ∨ IsUnit x
state_after: no goals
Theorem: MeasureTheory.SignedMeasure.singularPart_sub
File: Mathlib/MeasureTheory/Decomposition/SignedLebesgue.lean

tactic: rw [sub_eq_add_neg, sub_eq_add_neg, singularPart_add, singularPart_neg]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t✝ s t : SignedMeasure α
μ : Measure α
inst✝¹ : s.HaveLebesgueDecomposition μ
inst✝ : t.HaveLebesgueDecomposition μ
⊢ (s - t).singularPart μ = s.singularPart μ - t.singularPart μ
state_after: no goals
Theorem: Rel.inv_id
File: Mathlib/Data/Rel.lean

tactic: ext x y
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ inv Eq = Eq
state_after: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x y : α
⊢ inv Eq x y ↔ x = y

tactic: constructor <;> apply Eq.symm
state_before: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
x y : α
⊢ inv Eq x y ↔ x = y
state_after: no goals
Theorem: dvd_antisymm
File: Mathlib/Algebra/GroupWithZero/Divisibility.lean

tactic: rintro ⟨c, rfl⟩ ⟨d, hcd⟩
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : Subsingleton αˣ
a b : α
m n : ℕ
⊢ a ∣ b → b ∣ a → a = b
state_after: case intro.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : Subsingleton αˣ
a : α
m n : ℕ
c d : α
hcd : a = a * c * d
⊢ a = a * c

tactic: rw [mul_assoc, eq_comm, mul_right_eq_self₀, mul_eq_one] at hcd
state_before: case intro.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : Subsingleton αˣ
a : α
m n : ℕ
c d : α
hcd : a = a * c * d
⊢ a = a * c
state_after: case intro.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : Subsingleton αˣ
a : α
m n : ℕ
c d : α
hcd : c = 1 ∧ d = 1 ∨ a = 0
⊢ a = a * c

tactic: obtain ⟨rfl, -⟩ | rfl := hcd <;> simp
state_before: case intro.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : Subsingleton αˣ
a : α
m n : ℕ
c d : α
hcd : c = 1 ∧ d = 1 ∨ a = 0
⊢ a = a * c
state_after: no goals
Theorem: ENNReal.tendsto_atTop
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [true_and]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ (∀ (ib : ℝ≥0∞), 0 < ib → ∃ ia, True ∧ ∀ x ∈ Ici ia, f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ ε > 0, ∃ N, ∀ n ≥ N, f n ∈ Icc (a - ε) (a + ε)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ (∀ (ib : ℝ≥0∞), 0 < ib → ∃ ia, ∀ x ∈ Ici ia, f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ ε > 0, ∃ N, ∀ n ≥ N, f n ∈ Icc (a - ε) (a + ε)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ (∀ (ib : ℝ≥0∞), 0 < ib → ∃ ia, ∀ x ∈ Ici ia, f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ ε > 0, ∃ N, ∀ n ≥ N, f n ∈ Icc (a - ε) (a + ε)
state_after: no goals
Theorem: Complex.map_exp_comap_re_atTop
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: rw [← comap_exp_cobounded, map_comap, range_exp, inf_eq_left, le_principal_iff]
state_before: ⊢ map cexp (comap re atTop) = cobounded ℂ
state_after: ⊢ {0}ᶜ ∈ cobounded ℂ

tactic: exact eventually_ne_cobounded _
state_before: ⊢ {0}ᶜ ∈ cobounded ℂ
state_after: no goals
Theorem: List.get_finRange
File: Mathlib/Data/List/Range.lean

tactic: simp
state_before: α : Type u
n i : ℕ
h : i < (finRange n).length
⊢ (finRange n).get ⟨i, h⟩ = ⟨i, ⋯⟩
state_after: no goals
Theorem: Polynomial.ofFinsupp_eq_zero
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [← ofFinsupp_zero, ofFinsupp_inj]
state_before: R : Type u
a✝ b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
a : R[ℕ]
⊢ { toFinsupp := a } = 0 ↔ a = 0
state_after: no goals
Theorem: Nat.isCompl_even_odd
File: Mathlib/Algebra/Order/Ring/Nat.lean

tactic: simp only [← Set.compl_setOf, isCompl_compl, odd_iff_not_even]
state_before: ⊢ IsCompl {n | Even n} {n | Odd n}
state_after: no goals
Theorem: Real.mk_le_of_forall_le
File: Mathlib/Data/Real/Basic.lean

tactic: cases' h with i H
state_before: x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
h : ∃ i, ∀ j ≥ i, ↑(↑f j) ≤ x
⊢ mk f ≤ x
state_after: case intro
x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
i : ℕ
H : ∀ j ≥ i, ↑(↑f j) ≤ x
⊢ mk f ≤ x

tactic: rw [← neg_le_neg_iff, ← mk_neg]
state_before: case intro
x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
i : ℕ
H : ∀ j ≥ i, ↑(↑f j) ≤ x
⊢ mk f ≤ x
state_after: case intro
x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
i : ℕ
H : ∀ j ≥ i, ↑(↑f j) ≤ x
⊢ -x ≤ mk (-f)

tactic: exact le_mk_of_forall_le ⟨i, fun j ij => by simp [H _ ij]⟩
state_before: case intro
x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
i : ℕ
H : ∀ j ≥ i, ↑(↑f j) ≤ x
⊢ -x ≤ mk (-f)
state_after: no goals

tactic: simp [H _ ij]
state_before: x✝ y : ℝ
f : CauSeq ℚ abs
x : ℝ
i : ℕ
H : ∀ j ≥ i, ↑(↑f j) ≤ x
j : ℕ
ij : j ≥ i
⊢ -x ≤ ↑(↑(-f) j)
state_after: no goals
Theorem: Matrix.kroneckerMap_reindex
File: Mathlib/Data/Matrix/Kronecker.lean

tactic: ext ⟨i, i'⟩ ⟨j, j'⟩
state_before: R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
f : α → β → γ
el : l ≃ l'
em : m ≃ m'
en : n ≃ n'
ep : p ≃ p'
M : Matrix l m α
N : Matrix n p β
⊢ kroneckerMap f ((reindex el em) M) ((reindex en ep) N) =
    (reindex (el.prodCongr en) (em.prodCongr ep)) (kroneckerMap f M N)
state_after: case a.mk.mk
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
f : α → β → γ
el : l ≃ l'
em : m ≃ m'
en : n ≃ n'
ep : p ≃ p'
M : Matrix l m α
N : Matrix n p β
i : l'
i' : n'
j : m'
j' : p'
⊢ kroneckerMap f ((reindex el em) M) ((reindex en ep) N) (i, i') (j, j') =
    (reindex (el.prodCongr en) (em.prodCongr ep)) (kroneckerMap f M N) (i, i') (j, j')

tactic: rfl
state_before: case a.mk.mk
R : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
β' : Type u_5
γ : Type u_6
γ' : Type u_7
l : Type u_8
m : Type u_9
n : Type u_10
p : Type u_11
q : Type u_12
r : Type u_13
l' : Type u_14
m' : Type u_15
n' : Type u_16
p' : Type u_17
f : α → β → γ
el : l ≃ l'
em : m ≃ m'
en : n ≃ n'
ep : p ≃ p'
M : Matrix l m α
N : Matrix n p β
i : l'
i' : n'
j : m'
j' : p'
⊢ kroneckerMap f ((reindex el em) M) ((reindex en ep) N) (i, i') (j, j') =
    (reindex (el.prodCongr en) (em.prodCongr ep)) (kroneckerMap f M N) (i, i') (j, j')
state_after: no goals
Theorem: PartENat.eq_top_iff_forall_lt
File: Mathlib/Data/Nat/PartENat.lean

tactic: constructor
state_before: x : PartENat
⊢ x = ⊤ ↔ ∀ (n : ℕ), ↑n < x
state_after: case mp
x : PartENat
⊢ x = ⊤ → ∀ (n : ℕ), ↑n < x

case mpr
x : PartENat
⊢ (∀ (n : ℕ), ↑n < x) → x = ⊤

tactic: rintro rfl n
state_before: case mp
x : PartENat
⊢ x = ⊤ → ∀ (n : ℕ), ↑n < x
state_after: case mp
n : ℕ
⊢ ↑n < ⊤

tactic: exact natCast_lt_top _
state_before: case mp
n : ℕ
⊢ ↑n < ⊤
state_after: no goals

tactic: contrapose!
state_before: case mpr
x : PartENat
⊢ (∀ (n : ℕ), ↑n < x) → x = ⊤
state_after: case mpr
x : PartENat
⊢ x ≠ ⊤ → ∃ n, ¬↑n < x

tactic: rw [ne_top_iff]
state_before: case mpr
x : PartENat
⊢ x ≠ ⊤ → ∃ n, ¬↑n < x
state_after: case mpr
x : PartENat
⊢ (∃ n, x = ↑n) → ∃ n, ¬↑n < x

tactic: rintro ⟨n, rfl⟩
state_before: case mpr
x : PartENat
⊢ (∃ n, x = ↑n) → ∃ n, ¬↑n < x
state_after: case mpr.intro
n : ℕ
⊢ ∃ n_1, ¬↑n_1 < ↑n

tactic: exact ⟨n, irrefl _⟩
state_before: case mpr.intro
n : ℕ
⊢ ∃ n_1, ¬↑n_1 < ↑n
state_after: no goals
Theorem: CategoryTheory.Bifunctor.map_comp_id
File: Mathlib/CategoryTheory/Products/Bifunctor.lean

tactic: rw [← Functor.map_comp, prod_comp, Category.comp_id]
state_before: C : Type u₁
D : Type u₂
E : Type u₃
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Category.{v₂, u₂} D
inst✝ : Category.{v₃, u₃} E
F : C × D ⥤ E
X Y Z : C
W : D
f : X ⟶ Y
g : Y ⟶ Z
⊢ F.map (f ≫ g, 𝟙 W) = F.map (f, 𝟙 W) ≫ F.map (g, 𝟙 W)
state_after: no goals
Theorem: Polynomial.hermite_eq_deriv_gaussian
File: Mathlib/RingTheory/Polynomial/Hermite/Gaussian.lean

tactic: rw [deriv_gaussian_eq_hermite_mul_gaussian]
state_before: n : ℕ
x : ℝ
⊢ (aeval x) (hermite n) = (-1) ^ n * deriv^[n] (fun y => Real.exp (-(y ^ 2 / 2))) x / Real.exp (-(x ^ 2 / 2))
state_after: n : ℕ
x : ℝ
⊢ (aeval x) (hermite n) =
    (-1) ^ n * ((-1) ^ n * (aeval x) (hermite n) * Real.exp (-(x ^ 2 / 2))) / Real.exp (-(x ^ 2 / 2))

tactic: field_simp [Real.exp_ne_zero]
state_before: n : ℕ
x : ℝ
⊢ (aeval x) (hermite n) =
    (-1) ^ n * ((-1) ^ n * (aeval x) (hermite n) * Real.exp (-(x ^ 2 / 2))) / Real.exp (-(x ^ 2 / 2))
state_after: n : ℕ
x : ℝ
⊢ (aeval x) (hermite n) * Real.exp (-x ^ 2 / 2) = (-1) ^ n * ((-1) ^ n * (aeval x) (hermite n) * Real.exp (-x ^ 2 / 2))

tactic: rw [← @smul_eq_mul ℝ _ ((-1) ^ n), ← inv_smul_eq_iff₀, mul_assoc, smul_eq_mul, ← inv_pow, ←
  neg_inv, inv_one]
state_before: n : ℕ
x : ℝ
⊢ (aeval x) (hermite n) * Real.exp (-x ^ 2 / 2) = (-1) ^ n * ((-1) ^ n * (aeval x) (hermite n) * Real.exp (-x ^ 2 / 2))
state_after: case ha
n : ℕ
x : ℝ
⊢ (-1) ^ n ≠ 0

tactic: exact pow_ne_zero _ (by norm_num)
state_before: case ha
n : ℕ
x : ℝ
⊢ (-1) ^ n ≠ 0
state_after: no goals

tactic: norm_num
state_before: n : ℕ
x : ℝ
⊢ -1 ≠ 0
state_after: no goals
Theorem: CategoryTheory.Functor.lanAdjunction_unit
File: Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean

tactic: ext F : 2
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_4, u_1} C
inst✝² : Category.{u_6, u_2} D
L : C ⥤ D
H : Type u_3
inst✝¹ : Category.{u_5, u_3} H
inst✝ : ∀ (F : C ⥤ H), L.HasLeftKanExtension F
⊢ (L.lanAdjunction H).unit = L.lanUnit
state_after: case w.h
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_4, u_1} C
inst✝² : Category.{u_6, u_2} D
L : C ⥤ D
H : Type u_3
inst✝¹ : Category.{u_5, u_3} H
inst✝ : ∀ (F : C ⥤ H), L.HasLeftKanExtension F
F : C ⥤ H
⊢ (L.lanAdjunction H).unit.app F = L.lanUnit.app F

tactic: dsimp [lanAdjunction, homEquivOfIsLeftKanExtension]
state_before: case w.h
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_4, u_1} C
inst✝² : Category.{u_6, u_2} D
L : C ⥤ D
H : Type u_3
inst✝¹ : Category.{u_5, u_3} H
inst✝ : ∀ (F : C ⥤ H), L.HasLeftKanExtension F
F : C ⥤ H
⊢ (L.lanAdjunction H).unit.app F = L.lanUnit.app F
state_after: case w.h
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_4, u_1} C
inst✝² : Category.{u_6, u_2} D
L : C ⥤ D
H : Type u_3
inst✝¹ : Category.{u_5, u_3} H
inst✝ : ∀ (F : C ⥤ H), L.HasLeftKanExtension F
F : C ⥤ H
⊢ L.lanUnit.app F ≫ 𝟙 (L ⋙ L.lan.obj F) = L.lanUnit.app F

tactic: simp
state_before: case w.h
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_4, u_1} C
inst✝² : Category.{u_6, u_2} D
L : C ⥤ D
H : Type u_3
inst✝¹ : Category.{u_5, u_3} H
inst✝ : ∀ (F : C ⥤ H), L.HasLeftKanExtension F
F : C ⥤ H
⊢ L.lanUnit.app F ≫ 𝟙 (L ⋙ L.lan.obj F) = L.lanUnit.app F
state_after: no goals