tasksource/leandojo huggingface dataset:
Theorem: UniqueFactorizationMonoid.normalizedFactors_prod_of_prime
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: simpa only [← Multiset.rel_eq, ← associated_eq_eq] using
  prime_factors_unique prime_of_normalized_factor h
    (normalizedFactors_prod (m.prod_ne_zero_of_prime h))
state_before: α : Type u_1
inst✝⁵ : CancelCommMonoidWithZero α
inst✝⁴ : DecidableEq α
inst✝³ : NormalizationMonoid α
inst✝² : UniqueFactorizationMonoid α
inst✝¹ : Nontrivial α
inst✝ : Unique αˣ
m : Multiset α
h : ∀ (p : α), p ∈ m → Prime p
⊢ normalizedFactors (Multiset.prod m) = m
Theorem: Function.Antiperiodic.smul
File: Mathlib/Algebra/Periodic.lean

tactic: simp_all
state_before: α : Type u_1
β : Type u_3
γ : Type u_2
f g : α → β
c c₁ c₂ x : α
inst✝³ : Add α
inst✝² : Monoid γ
inst✝¹ : AddGroup β
inst✝ : DistribMulAction γ β
h : Antiperiodic f c
a : γ
⊢ Antiperiodic (a • f) c
Theorem: Matrix.IsDiag.fromBlocks_of_isSymm
File: Mathlib/LinearAlgebra/Matrix/IsDiag.lean

tactic: rw [← (isSymm_fromBlocks_iff.1 h).2.1]
state_before: α : Type u_1
β : Type ?u.26056
R : Type ?u.26059
n : Type u_3
m : Type u_2
inst✝ : Zero α
A : Matrix m m α
C : Matrix n m α
D : Matrix n n α
h : IsSymm (Matrix.fromBlocks A 0 C D)
ha : IsDiag A
hd : IsDiag D
⊢ IsDiag (Matrix.fromBlocks A 0 C D)

tactic: exact ha.fromBlocks hd
state_before: α : Type u_1
β : Type ?u.26056
R : Type ?u.26059
n : Type u_3
m : Type u_2
inst✝ : Zero α
A : Matrix m m α
C : Matrix n m α
D : Matrix n n α
h : IsSymm (Matrix.fromBlocks A 0 C D)
ha : IsDiag A
hd : IsDiag D
⊢ IsDiag (Matrix.fromBlocks A 0 0ᵀ D)
Theorem: Zsqrtd.le_antisymm
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: rwa [neg_sub]
state_before: d : ℕ
dnsq : Nonsquare d
a b : ℤ√↑d
ab : a ≤ b
ba : b ≤ a
⊢ Nonneg (-(a - b))
Theorem: CategoryTheory.Limits.diagonalObjPullbackFstIso_inv_snd_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean

tactic: delta diagonalObjPullbackFstIso
state_before: C : Type u_2
inst✝⁵ : Category C
X✝ Y✝ Z✝ : C
inst✝⁴ : HasPullbacks C
S T : C
f✝ : X✝ ⟶ T
g✝ : Y✝ ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f✝ g✝
inst✝¹ : HasPullback (f✝ ≫ i) (g✝ ≫ i)
inst✝ :
  HasPullback (diagonal i)
    (map (f✝ ≫ i) (g✝ ≫ i) i i f✝ g✝ (𝟙 S) (_ : (f✝ ≫ i) ≫ 𝟙 S = f✝ ≫ i) (_ : (g✝ ≫ i) ≫ 𝟙 S = g✝ ≫ i))
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
⊢ (diagonalObjPullbackFstIso f g).inv ≫ snd ≫ fst = snd

tactic: simp
state_before: C : Type u_2
inst✝⁵ : Category C
X✝ Y✝ Z✝ : C
inst✝⁴ : HasPullbacks C
S T : C
f✝ : X✝ ⟶ T
g✝ : Y✝ ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f✝ g✝
inst✝¹ : HasPullback (f✝ ≫ i) (g✝ ≫ i)
inst✝ :
  HasPullback (diagonal i)
    (map (f✝ ≫ i) (g✝ ≫ i) i i f✝ g✝ (𝟙 S) (_ : (f✝ ≫ i) ≫ 𝟙 S = f✝ ≫ i) (_ : (g✝ ≫ i) ≫ 𝟙 S = g✝ ≫ i))
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
⊢ (pullbackRightPullbackFstIso f g fst ≪≫
          congrHom (_ : fst ≫ f = snd ≫ g) (_ : g = g) ≪≫
            pullbackAssoc f g g g ≪≫ pullbackSymmetry f (fst ≫ g) ≪≫ congrHom (_ : fst ≫ g = snd ≫ g) (_ : f = f)).inv ≫
      snd ≫ fst =
    snd
Theorem: Ideal.span_pair_mul_span_pair
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp_rw [span_insert, sup_mul, mul_sup, span_singleton_mul_span_singleton, sup_assoc]
state_before: R : Type u
ι : Type ?u.306186
inst✝ : CommSemiring R
I J K L : Ideal R
w x y z : R
⊢ span {w, x} * span {y, z} = span {w * y, w * z, x * y, x * z}
Theorem: pow_eq_zero_iff'
File: Mathlib/Algebra/GroupPower/Ring.lean

tactic: cases (zero_le n).eq_or_gt <;> simp [*, ne_of_gt]
state_before: R : Type ?u.25956
S : Type ?u.25959
M : Type u_1
inst✝² : MonoidWithZero M
inst✝¹ : NoZeroDivisors M
inst✝ : Nontrivial M
a : M
n : ℕ
⊢ a ^ n = 0 ↔ a = 0 ∧ n ≠ 0
Theorem: LinearMap.mulRight_mul
File: Mathlib/Algebra/Algebra/Bilinear.lean

tactic: ext
state_before: R : Type u_2
A : Type u_1
inst✝⁴ : CommSemiring R
inst✝³ : NonUnitalSemiring A
inst✝² : Module R A
inst✝¹ : SMulCommClass R A A
inst✝ : IsScalarTower R A A
a b : A
⊢ mulRight R (a * b) = comp (mulRight R b) (mulRight R a)

tactic: simp only [mulRight_apply, comp_apply, mul_assoc]
state_before: case h
R : Type u_2
A : Type u_1
inst✝⁴ : CommSemiring R
inst✝³ : NonUnitalSemiring A
inst✝² : Module R A
inst✝¹ : SMulCommClass R A A
inst✝ : IsScalarTower R A A
a b x✝ : A
⊢ ↑(mulRight R (a * b)) x✝ = ↑(comp (mulRight R b) (mulRight R a)) x✝
Theorem: Finset.inf_le_centerMass
File: Mathlib/Analysis/Convex/Combination.lean

tactic: rintro rfl
state_before: R : Type ?u.76609
E : Type ?u.76612
F : Type ?u.76615
ι : Type ?u.76618
ι' : Type ?u.76621
α : Type ?u.76624
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
s : Finset ι
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ s → 0 ≤ w i
hw₁ : 0 < ∑ i in s, w i
⊢ s ≠ ∅

tactic: simp at hw₁
state_before: R : Type ?u.76609
E : Type ?u.76612
F : Type ?u.76615
ι : Type ?u.76618
ι' : Type ?u.76621
α : Type ?u.76624
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s : Set E
i j : ι
c : R
t : Finset ι
w✝ : ι → R
z : ι → E
f : ι → α
w : ι → R
hw₀ : ∀ (i : ι), i ∈ ∅ → 0 ≤ w i
hw₁ : 0 < ∑ i in ∅, w i
⊢ False
Theorem: Set.eq_preimage_iff_image_eq
File: Mathlib/Data/Set/Image.lean

tactic: rw [← image_eq_image hf.1, hf.2.image_preimage]
state_before: α : Type u
β : Type v
f✝ f : α → β
hf : Bijective f
s : Set α
t : Set β
⊢ s = f ⁻¹' t ↔ f '' s = t
Theorem: ContinuousLinearMap.map_add₂
File: Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean

tactic: rw [f.map_add, add_apply]
state_before: 𝕜 : Type u_6
inst✝¹⁶ : NontriviallyNormedField 𝕜
E : Type ?u.134067
inst✝¹⁵ : NormedAddCommGroup E
inst✝¹⁴ : NormedSpace 𝕜 E
F : Type u_5
inst✝¹³ : NormedAddCommGroup F
inst✝¹² : NormedSpace 𝕜 F
G : Type ?u.134252
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedSpace 𝕜 G
R : Type u_1
𝕜₂ : Type u_7
𝕜' : Type u_2
inst✝⁹ : NontriviallyNormedField 𝕜'
inst✝⁸ : NontriviallyNormedField 𝕜₂
M : Type u_3
inst✝⁷ : TopologicalSpace M
σ₁₂ : 𝕜 →+* 𝕜₂
G' : Type u_4
inst✝⁶ : NormedAddCommGroup G'
inst✝⁵ : NormedSpace 𝕜₂ G'
inst✝⁴ : NormedSpace 𝕜' G'
inst✝³ : SMulCommClass 𝕜₂ 𝕜' G'
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
ρ₁₂ : R →+* 𝕜'
f : M →SL[ρ₁₂] F →SL[σ₁₂] G'
x x' : M
y : F
⊢ ↑(↑f (x + x')) y = ↑(↑f x) y + ↑(↑f x') y
Theorem: Rat.comap_cast_atTop
File: Mathlib/Order/Filter/Archimedean.lean

tactic: simpa
state_before: α : Type ?u.7888
R : Type u_1
inst✝¹ : LinearOrderedField R
inst✝ : Archimedean R
r : R
n : ℕ
hn : r ≤ ↑n
⊢ r ≤ ↑↑n
Theorem: is_const_of_deriv_eq_zero
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: ext
state_before: E : Type ?u.290841
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
F : Type ?u.290937
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
𝕜 : Type u_1
G : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f f' : 𝕜 → G
s : Set 𝕜
x✝ y✝ : 𝕜
hf : Differentiable 𝕜 f
hf' : ∀ (x : 𝕜), deriv f x = 0
x y z : 𝕜
⊢ fderiv 𝕜 f z = 0

tactic: simp [← deriv_fderiv, hf']
state_before: case h
E : Type ?u.290841
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
F : Type ?u.290937
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
𝕜 : Type u_1
G : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f f' : 𝕜 → G
s : Set 𝕜
x✝ y✝ : 𝕜
hf : Differentiable 𝕜 f
hf' : ∀ (x : 𝕜), deriv f x = 0
x y z : 𝕜
⊢ ↑(fderiv 𝕜 f z) 1 = ↑0 1
Theorem: EuclideanDomain.gcd_val
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: rw [gcd]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a b : R
⊢ gcd a b = gcd (b % a) a

tactic: split_ifs with h <;> [simp only [h, mod_zero, gcd_zero_right]; rfl]
state_before: R : Type u
inst✝¹ : EuclideanDomain R
inst✝ : DecidableEq R
a b : R
⊢ (fun b =>
        if a0 : a = 0 then b
        else
          let_fun x := (_ : EuclideanDomain.r (b % a) a);
          gcd (b % a) a)
      b =
    gcd (b % a) a
Theorem: MeasureTheory.set_average_const
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simp only [set_average_eq, integral_const, Measure.restrict_apply, MeasurableSet.univ, univ_inter,
  smul_smul, ← ENNReal.toReal_inv, ← ENNReal.toReal_mul, ENNReal.inv_mul_cancel hs₀ hs,
  ENNReal.one_toReal, one_smul]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.235504
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : Measure α
s✝ : Set E
s : Set α
hs₀ : ↑↑μ s ≠ 0
hs : ↑↑μ s ≠ ⊤
c : E
⊢ (⨍ (x : α) in s, c ∂μ) = c
Theorem: TrivSqZeroExt.inl_pow
File: Mathlib/Algebra/TrivSqZeroExt.lean

tactic: simp [snd_pow_eq_sum]
state_before: R : Type u
M : Type v
inst✝³ : Monoid R
inst✝² : AddMonoid M
inst✝¹ : DistribMulAction R M
inst✝ : DistribMulAction Rᵐᵒᵖ M
r : R
n : ℕ
⊢ snd (inl r ^ n) = snd (inl (r ^ n))
Theorem: MeasureTheory.IsFundamentalDomain.set_integral_eq_tsum
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: simp only [h.restrict_restrict, measure_smul, inter_comm]
state_before: G : Type u_1
H : Type ?u.379290
α : Type u_2
β : Type ?u.379296
E : Type u_3
inst✝¹² : Group G
inst✝¹¹ : Group H
inst✝¹⁰ : MulAction G α
inst✝⁹ : MeasurableSpace α
inst✝⁸ : MulAction H β
inst✝⁷ : MeasurableSpace β
inst✝⁶ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝⁵ : MeasurableSpace G
inst✝⁴ : MeasurableSMul G α
inst✝³ : SMulInvariantMeasure G α μ
inst✝² : Countable G
ν : Measure α
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
h : IsFundamentalDomain G s
f : α → E
t : Set α
hf : IntegrableOn f t
⊢ (∑' (g : G), ∫ (x : α) in g • s, f x ∂Measure.restrict μ t) = ∑' (g : G), ∫ (x : α) in t ∩ g • s, f x ∂μ
Theorem: Array.fin_cast_val
File: Std/Data/Array/Lemmas.lean

tactic: cases e
state_before: n n' : Nat
e : n = n'
i : Fin n
⊢ e ▸ i = { val := i.val, isLt := (_ : i.val < n') }

tactic: rfl
state_before: case refl
n : Nat
i : Fin n
⊢ (_ : n = n) ▸ i = { val := i.val, isLt := (_ : i.val < n) }
Theorem: CategoryTheory.Limits.kernelIsoOfEq_inv_comp_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: cases h
state_before: C : Type u
inst✝⁴ : Category C
inst✝³ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝² : HasKernel f✝
f g : X ⟶ Y
inst✝¹ : HasKernel f
inst✝ : HasKernel g
h : f = g
⊢ (kernelIsoOfEq h).inv ≫ kernel.ι f = kernel.ι g

tactic: simp
state_before: case refl
C : Type u
inst✝⁴ : Category C
inst✝³ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝² : HasKernel f✝
f : X ⟶ Y
inst✝¹ inst✝ : HasKernel f
⊢ (kernelIsoOfEq (_ : f = f)).inv ≫ kernel.ι f = kernel.ι f
Theorem: GroupSeminorm.mul_bddBelow_range_add
File: Mathlib/Analysis/Normed/Group/Seminorm.lean

tactic: rintro _ ⟨x, rfl⟩
state_before: ι : Type ?u.89294
R : Type ?u.89297
R' : Type ?u.89300
E : Type u_1
F : Type ?u.89306
G : Type ?u.89309
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝ y : E
p q : GroupSeminorm E
x : E
⊢ 0 ∈ lowerBounds (range fun y => ↑p y + ↑q (x / y))

tactic: dsimp
state_before: case intro
ι : Type ?u.89294
R : Type ?u.89297
R' : Type ?u.89300
E : Type u_1
F : Type ?u.89306
G : Type ?u.89309
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ (fun y => ↑p y + ↑q (x✝ / y)) x

tactic: positivity
state_before: case intro
ι : Type ?u.89294
R : Type ?u.89297
R' : Type ?u.89300
E : Type u_1
F : Type ?u.89306
G : Type ?u.89309
inst✝¹ : CommGroup E
inst✝ : CommGroup F
p✝ q✝ : GroupSeminorm E
x✝¹ y : E
p q : GroupSeminorm E
x✝ x : E
⊢ 0 ≤ ↑p x + ↑q (x✝ / x)
Theorem: CategoryTheory.Limits.biproduct.map_eq
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: ext
state_before: C : Type u
inst✝⁴ : Category C
inst✝³ : Preadditive C
J : Type
inst✝² : Fintype J
f✝ : J → C
inst✝¹ : HasBiproduct f✝
inst✝ : HasFiniteBiproducts C
f g : J → C
h : (j : J) → f j ⟶ g j
⊢ map h = ∑ j : J, π f j ≫ h j ≫ ι g j

tactic: simp [biproduct.ι_π, biproduct.ι_π_assoc, comp_sum, sum_comp, comp_dite, dite_comp]
state_before: case w.w
C : Type u
inst✝⁴ : Category C
inst✝³ : Preadditive C
J : Type
inst✝² : Fintype J
f✝ : J → C
inst✝¹ : HasBiproduct f✝
inst✝ : HasFiniteBiproducts C
f g : J → C
h : (j : J) → f j ⟶ g j
j✝¹ j✝ : J
⊢ (ι (fun b => f b) j✝¹ ≫ map h) ≫ π (fun b => g b) j✝ =
    (ι (fun b => f b) j✝¹ ≫ ∑ j : J, π f j ≫ h j ≫ ι g j) ≫ π (fun b => g b) j✝
Theorem: Finset.max'_image
File: Mathlib/Data/Finset/Lattice.lean

tactic: refine'
  le_antisymm (max'_le _ _ _ fun y hy => _) (le_max' _ _ (mem_image.mpr ⟨_, max'_mem _ _, rfl⟩))
state_before: F : Type ?u.364381
α : Type u_2
β : Type u_1
γ : Type ?u.364390
ι : Type ?u.364393
κ : Type ?u.364396
inst✝¹ : LinearOrder α
s✝ : Finset α
H : Finset.Nonempty s✝
x : α
inst✝ : LinearOrder β
f : α → β
hf : Monotone f
s : Finset α
h : Finset.Nonempty (image f s)
⊢ max' (image f s) h = f (max' s (_ : Finset.Nonempty s))

tactic: obtain ⟨x, hx, rfl⟩ := mem_image.mp hy
state_before: F : Type ?u.364381
α : Type u_2
β : Type u_1
γ : Type ?u.364390
ι : Type ?u.364393
κ : Type ?u.364396
inst✝¹ : LinearOrder α
s✝ : Finset α
H : Finset.Nonempty s✝
x : α
inst✝ : LinearOrder β
f : α → β
hf : Monotone f
s : Finset α
h : Finset.Nonempty (image f s)
y : β
hy : y ∈ image f s
⊢ y ≤ f (max' s (_ : Finset.Nonempty s))

tactic: exact hf (le_max' _ _ hx)
state_before: case intro.intro
F : Type ?u.364381
α : Type u_2
β : Type u_1
γ : Type ?u.364390
ι : Type ?u.364393
κ : Type ?u.364396
inst✝¹ : LinearOrder α
s✝ : Finset α
H : Finset.Nonempty s✝
x✝ : α
inst✝ : LinearOrder β
f : α → β
hf : Monotone f
s : Finset α
h : Finset.Nonempty (image f s)
x : α
hx : x ∈ s
hy : f x ∈ image f s
⊢ f x ≤ f (max' s (_ : Finset.Nonempty s))
Theorem: Nat.Prime.dvd_iff_eq
File: Mathlib/Data/Nat/Prime.lean

tactic: refine'
  ⟨_, by
    rintro rfl
    rfl⟩
state_before: p a : ℕ
hp : Prime p
a1 : a ≠ 1
⊢ a ∣ p ↔ p = a

tactic: rintro ⟨j, rfl⟩
state_before: p a : ℕ
hp : Prime p
a1 : a ≠ 1
⊢ a ∣ p → p = a

tactic: rcases prime_mul_iff.mp hp with (⟨_, rfl⟩ | ⟨_, rfl⟩)
state_before: case intro
a : ℕ
a1 : a ≠ 1
j : ℕ
hp : Prime (a * j)
⊢ a * j = a

tactic: rintro rfl
state_before: p a : ℕ
hp : Prime p
a1 : a ≠ 1
⊢ p = a → a ∣ p

tactic: rfl
state_before: p : ℕ
hp : Prime p
a1 : p ≠ 1
⊢ p ∣ p

tactic: exact mul_one _
state_before: case intro.inl.intro
a : ℕ
a1 : a ≠ 1
left✝ : Prime a
hp : Prime (a * 1)
⊢ a * 1 = a

tactic: exact (a1 rfl).elim
state_before: case intro.inr.intro
j : ℕ
left✝ : Prime j
a1 : 1 ≠ 1
hp : Prime (1 * j)
⊢ 1 * j = 1
Theorem: edist_le_tsum_of_edist_le_of_tendsto
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: refine' le_of_tendsto (tendsto_const_nhds.edist ha) (mem_atTop_sets.2 ⟨n, fun m hnm => _⟩)
state_before: α : Type u_1
β : Type ?u.567007
γ : Type ?u.567010
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0∞
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ d n
a : α
ha : Tendsto f atTop (𝓝 a)
n : ℕ
⊢ edist (f n) a ≤ ∑' (m : ℕ), d (n + m)

tactic: refine' le_trans (edist_le_Ico_sum_of_edist_le hnm fun _ _ => hf _) _
state_before: α : Type u_1
β : Type ?u.567007
γ : Type ?u.567010
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0∞
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ d n
a : α
ha : Tendsto f atTop (𝓝 a)
n m : ℕ
hnm : m ≥ n
⊢ m ∈ {x | (fun c => edist (f n) (f c) ≤ ∑' (m : ℕ), d (n + m)) x}

tactic: rw [Finset.sum_Ico_eq_sum_range]
state_before: α : Type u_1
β : Type ?u.567007
γ : Type ?u.567010
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0∞
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ d n
a : α
ha : Tendsto f atTop (𝓝 a)
n m : ℕ
hnm : m ≥ n
⊢ ∑ i in Finset.Ico n m, d i ≤ ∑' (m : ℕ), d (n + m)

tactic: exact sum_le_tsum _ (fun _ _ => zero_le _) ENNReal.summable
state_before: α : Type u_1
β : Type ?u.567007
γ : Type ?u.567010
inst✝ : PseudoEMetricSpace α
f : ℕ → α
d : ℕ → ℝ≥0∞
hf : ∀ (n : ℕ), edist (f n) (f (Nat.succ n)) ≤ d n
a : α
ha : Tendsto f atTop (𝓝 a)
n m : ℕ
hnm : m ≥ n
⊢ ∑ k in Finset.range (m - n), d (n + k) ≤ ∑' (m : ℕ), d (n + m)
Theorem: Filter.tendsto_atTop_add_left_of_le'
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simpa
state_before: ι : Type ?u.145656
ι' : Type ?u.145659
α : Type u_1
β : Type u_2
γ : Type ?u.145668
inst✝ : OrderedAddCommGroup β
l : Filter α
f g : α → β
C : β
hf : ∀ᶠ (x : α) in l, C ≤ f x
hg : Tendsto g l atTop
⊢ ∀ᶠ (x : α) in l, (fun x => -f x) x ≤ -C

tactic: simpa
state_before: ι : Type ?u.145656
ι' : Type ?u.145659
α : Type u_1
β : Type u_2
γ : Type ?u.145668
inst✝ : OrderedAddCommGroup β
l : Filter α
f g : α → β
C : β
hf : ∀ᶠ (x : α) in l, C ≤ f x
hg : Tendsto g l atTop
⊢ Tendsto (fun x => (fun x => -f x) x + (fun x => f x + g x) x) l atTop
Theorem: MvPowerSeries.coeff_inv_aux
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [inv.aux]
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Ring R
inst✝ : DecidableEq σ
n : σ →₀ ℕ
a : R
φ : MvPowerSeries σ R
⊢ inv.aux a φ n =
    if n = 0 then a
    else -a * ∑ x in antidiagonal n, if x.snd < n then ↑(coeff R x.fst) φ * ↑(coeff R x.snd) (inv.aux a φ) else 0

tactic: convert rfl
state_before: σ : Type u_1
R : Type u_2
inst✝¹ : Ring R
inst✝ : DecidableEq σ
n : σ →₀ ℕ
a : R
φ : MvPowerSeries σ R
⊢ (if n = 0 then a
    else -a * ∑ x in antidiagonal n, if x_1 : x.snd < n then ↑(coeff R x.fst) φ * inv.aux a φ x.snd else 0) =
    if n = 0 then a
    else -a * ∑ x in antidiagonal n, if x.snd < n then ↑(coeff R x.fst) φ * ↑(coeff R x.snd) (inv.aux a φ) else 0
Theorem: BoxIntegral.Prepartition.mem_biUnionIndex
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: convert (π.mem_biUnion.1 hJ).choose_spec.2 <;> exact dif_pos hJ
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
hJ : J ∈ biUnion π πi
⊢ J ∈ πi (biUnionIndex π πi J)
Theorem: expNegInvGlue.pos_of_pos
File: Mathlib/Analysis/Calculus/BumpFunctionInner.lean

tactic: simp [expNegInvGlue, not_le.2 hx, exp_pos]
state_before: x : ℝ
hx : 0 < x
⊢ 0 < expNegInvGlue x
Theorem: Fin.castSucc_fin_succ
File: Mathlib/Data/Fin/Basic.lean

tactic: simp [Fin.ext_iff]
state_before: n✝ m n : ℕ
j : Fin n
⊢ ↑castSucc (succ j) = succ (↑castSucc j)
Theorem: Order.Ioo_succ_right_of_not_isMax
File: Mathlib/Order/SuccPred/Basic.lean

tactic: rw [← Ioi_inter_Iio, Iio_succ_of_not_isMax hb, Ioi_inter_Iic]
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
hb : ¬IsMax b
⊢ Ioo a (succ b) = Ioc a b
Theorem: Set.image2_empty_left
File: Mathlib/Data/Set/NAry.lean

tactic: simp
state_before: α : Type u_2
α' : Type ?u.16359
β : Type u_3
β' : Type ?u.16365
γ : Type u_1
γ' : Type ?u.16371
δ : Type ?u.16374
δ' : Type ?u.16377
ε : Type ?u.16380
ε' : Type ?u.16383
ζ : Type ?u.16386
ζ' : Type ?u.16389
ν : Type ?u.16392
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
⊢ ∀ (x : γ), x ∈ image2 f ∅ t ↔ x ∈ ∅
Theorem: pathComponentIn_univ
File: Mathlib/Topology/PathConnected.lean

tactic: simp [pathComponentIn, pathComponent, JoinedIn, Joined, exists_true_iff_nonempty]
state_before: X : Type u_1
Y : Type ?u.633769
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type ?u.633784
F : Set X
x : X
⊢ pathComponentIn x univ = pathComponent x
Theorem: Multiset.image_toEnumFinset_fst
File: Mathlib/Data/Multiset/Fintype.lean

tactic: rw [Finset.image, Multiset.map_toEnumFinset_fst]
state_before: α : Type u_1
inst✝ : DecidableEq α
m✝ m : Multiset α
⊢ Finset.image Prod.fst (toEnumFinset m) = toFinset m
Theorem: inv_lt_one
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rwa [inv_lt (zero_lt_one.trans ha) zero_lt_one, inv_one]
state_before: ι : Type ?u.50280
α : Type u_1
β : Type ?u.50286
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 1 < a
⊢ a⁻¹ < 1
Theorem: MeasureTheory.lintegral_mul_const
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp_rw [mul_comm, lintegral_const_mul r hf]
state_before: α : Type u_1
β : Type ?u.944622
γ : Type ?u.944625
δ : Type ?u.944628
m : MeasurableSpace α
μ ν : Measure α
r : ℝ≥0∞
f : α → ℝ≥0∞
hf : Measurable f
⊢ (∫⁻ (a : α), f a * r ∂μ) = (∫⁻ (a : α), f a ∂μ) * r
Theorem: StieltjesFunction.borel_le_measurable
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: rw [borel_eq_generateFrom_Ioi]
state_before: f : StieltjesFunction
⊢ borel ℝ ≤ OuterMeasure.caratheodory (StieltjesFunction.outer f)

tactic: refine' MeasurableSpace.generateFrom_le _
state_before: f : StieltjesFunction
⊢ MeasurableSpace.generateFrom (range Ioi) ≤ OuterMeasure.caratheodory (StieltjesFunction.outer f)

tactic: simp (config := { contextual := true }) [f.measurableSet_Ioi]
state_before: f : StieltjesFunction
⊢ ∀ (t : Set ℝ), t ∈ range Ioi → MeasurableSet t
Theorem: FreeGroup.of_injective
File: Mathlib/GroupTheory/FreeGroup.lean

tactic: let ⟨L₁, hx, hy⟩ := Red.exact.1 H
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
x✝¹ x✝ : α
H : of x✝¹ = of x✝
⊢ x✝¹ = x✝

tactic: simp [Red.singleton_iff] at hx hy
state_before: α : Type u
L L₁✝ L₂ L₃ L₄ : List (α × Bool)
x✝¹ x✝ : α
H : of x✝¹ = of x✝
L₁ : List (α × Bool)
hx : Red [(x✝¹, true)] L₁
hy : Red [(x✝, true)] L₁
⊢ x✝¹ = x✝

tactic: aesop
state_before: α : Type u
L L₁✝ L₂ L₃ L₄ : List (α × Bool)
x✝¹ x✝ : α
H : of x✝¹ = of x✝
L₁ : List (α × Bool)
hx : L₁ = [(x✝¹, true)]
hy : L₁ = [(x✝, true)]
⊢ x✝¹ = x✝
Theorem: LinearMap.pi_eq_zero
File: Mathlib/LinearAlgebra/Pi.lean

tactic: simp only [LinearMap.ext_iff, pi_apply, funext_iff]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
φ : ι → Type i
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
f : (i : ι) → M₂ →ₗ[R] φ i
⊢ pi f = 0 ↔ ∀ (i : ι), f i = 0

tactic: exact ⟨fun h a b => h b a, fun h a b => h b a⟩
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
φ : ι → Type i
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
f : (i : ι) → M₂ →ₗ[R] φ i
⊢ (∀ (x : M₂) (a : ι), ↑(f a) x = ↑0 x a) ↔ ∀ (i : ι) (x : M₂), ↑(f i) x = ↑0 x
Theorem: dist_prod_same_left
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp [Prod.dist_eq, dist_nonneg]
state_before: α : Type u
β : Type v
X : Type ?u.245069
ι : Type ?u.245072
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
x : α
y₁ y₂ : β
⊢ dist (x, y₁) (x, y₂) = dist y₁ y₂
Theorem: Finset.val_eq_singleton_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [← val_inj]
state_before: α : Type u_1
β : Type ?u.28858
γ : Type ?u.28861
s✝ : Finset α
a✝ b a : α
s : Finset α
⊢ s.val = {a} ↔ s = {a}

tactic: rfl
state_before: α : Type u_1
β : Type ?u.28858
γ : Type ?u.28861
s✝ : Finset α
a✝ b a : α
s : Finset α
⊢ s.val = {a} ↔ s.val = {a}.val