1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Functor.additive_of_iso
File: Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁶ : Category.{u_4, u_1} C
inst✝⁵ : Category.{u_5, u_2} D
inst✝⁴ : Category.{?u.22849, u_3} E
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ : Preadditive E
F : C ⥤ D
inst✝ : F.Additive
G : C ⥤ D
e : F ≅ G
⊢ G.Additive
state_after: case map_add
C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁶ : Category.{u_4, u_1} C
inst✝⁵ : Category.{u_5, u_2} D
inst✝⁴ : Category.{?u.22849, u_3} E
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ : Preadditive E
F : C ⥤ D
inst✝ : F.Additive
G : C ⥤ D
e : F ≅ G
⊢ autoParam (∀ {X Y : C} {f g : X ⟶ Y}, G.map (f + g) = G.map f + G.map g) _auto✝

tactic: intro X Y f g
state_before: case map_add
C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁶ : Category.{u_4, u_1} C
inst✝⁵ : Category.{u_5, u_2} D
inst✝⁴ : Category.{?u.22849, u_3} E
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ : Preadditive E
F : C ⥤ D
inst✝ : F.Additive
G : C ⥤ D
e : F ≅ G
⊢ autoParam (∀ {X Y : C} {f g : X ⟶ Y}, G.map (f + g) = G.map f + G.map g) _auto✝
state_after: case map_add
C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁶ : Category.{u_4, u_1} C
inst✝⁵ : Category.{u_5, u_2} D
inst✝⁴ : Category.{?u.22849, u_3} E
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ : Preadditive E
F : C ⥤ D
inst✝ : F.Additive
G : C ⥤ D
e : F ≅ G
X Y : C
f g : X ⟶ Y
⊢ G.map (f + g) = G.map f + G.map g

tactic: simp only [← NatIso.naturality_1 e (f + g), map_add, Preadditive.add_comp,
  NatTrans.naturality, Preadditive.comp_add, Iso.inv_hom_id_app_assoc]
state_before: case map_add
C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁶ : Category.{u_4, u_1} C
inst✝⁵ : Category.{u_5, u_2} D
inst✝⁴ : Category.{?u.22849, u_3} E
inst✝³ : Preadditive C
inst✝² : Preadditive D
inst✝¹ : Preadditive E
F : C ⥤ D
inst✝ : F.Additive
G : C ⥤ D
e : F ≅ G
X Y : C
f g : X ⟶ Y
⊢ G.map (f + g) = G.map f + G.map g
state_after: no goals
Theorem: ArithmeticFunction.toArithmeticFunction_eq_self
File: Mathlib/NumberTheory/LSeries/Convolution.lean

tactic: ext n
state_before: R : Type u_1
inst✝ : Zero R
f : ArithmeticFunction R
⊢ toArithmeticFunction ⇑f = f
state_after: case h
R : Type u_1
inst✝ : Zero R
f : ArithmeticFunction R
n : ℕ
⊢ (toArithmeticFunction ⇑f) n = f n

tactic: simp (config := {contextual := true}) [toArithmeticFunction, ArithmeticFunction.map_zero]
state_before: case h
R : Type u_1
inst✝ : Zero R
f : ArithmeticFunction R
n : ℕ
⊢ (toArithmeticFunction ⇑f) n = f n
state_after: no goals
Theorem: CategoryTheory.Limits.sequentialFunctor_initial_aux
File: Mathlib/CategoryTheory/Limits/Shapes/Countable.lean

tactic: obtain ⟨m, h⟩ := (exists_surjective_nat _).choose_spec j
state_before: C : Type u_1
inst✝³ : Category.{?u.8650, u_1} C
J : Type u_2
inst✝² : Countable J
inst✝¹ : Preorder J
inst✝ : IsCofiltered J
j : J
⊢ ∃ n, sequentialFunctor_obj J n ≤ j
state_after: case intro
C : Type u_1
inst✝³ : Category.{?u.8650, u_1} C
J : Type u_2
inst✝² : Countable J
inst✝¹ : Preorder J
inst✝ : IsCofiltered J
j : J
m : ℕ
h : ⋯.choose m = j
⊢ ∃ n, sequentialFunctor_obj J n ≤ j

tactic: refine ⟨m + 1, ?_⟩
state_before: case intro
C : Type u_1
inst✝³ : Category.{?u.8650, u_1} C
J : Type u_2
inst✝² : Countable J
inst✝¹ : Preorder J
inst✝ : IsCofiltered J
j : J
m : ℕ
h : ⋯.choose m = j
⊢ ∃ n, sequentialFunctor_obj J n ≤ j
state_after: case intro
C : Type u_1
inst✝³ : Category.{?u.8650, u_1} C
J : Type u_2
inst✝² : Countable J
inst✝¹ : Preorder J
inst✝ : IsCofiltered J
j : J
m : ℕ
h : ⋯.choose m = j
⊢ sequentialFunctor_obj J (m + 1) ≤ j

tactic: simpa [h] using leOfHom (IsCofilteredOrEmpty.cone_objs ((exists_surjective_nat _).choose m)
  (sequentialFunctor_obj J m)).choose_spec.choose
state_before: case intro
C : Type u_1
inst✝³ : Category.{?u.8650, u_1} C
J : Type u_2
inst✝² : Countable J
inst✝¹ : Preorder J
inst✝ : IsCofiltered J
j : J
m : ℕ
h : ⋯.choose m = j
⊢ sequentialFunctor_obj J (m + 1) ≤ j
state_after: no goals
Theorem: LinearMap.rTensor_neg
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: simp only [← coe_rTensorHom]
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ rTensor M (-f) = -rTensor M f
state_after: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ (rTensorHom M) (-f) = -(rTensorHom M) f

tactic: exact (rTensorHom (R := R) (N := N) (P := P) M).map_neg f
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f : N →ₗ[R] P
⊢ (rTensorHom M) (-f) = -(rTensorHom M) f
state_after: no goals
Theorem: eq_lim_at_right_extendFrom_Ioo
File: Mathlib/Topology/Order/ExtendFrom.lean

tactic: apply extendFrom_eq
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ extendFrom (Ioo a b) f b = lb
state_after: case hx
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ b ∈ closure (Ioo a b)

case hf
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ Tendsto f (𝓝[Ioo a b] b) (𝓝 lb)

tactic: rw [closure_Ioo hab.ne]
state_before: case hx
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ b ∈ closure (Ioo a b)
state_after: case hx
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ b ∈ Icc a b

tactic: simp only [le_of_lt hab, left_mem_Icc, right_mem_Icc]
state_before: case hx
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ b ∈ Icc a b
state_after: no goals

tactic: simpa [hab]
state_before: case hf
α : Type u_1
β : Type u_2
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : DenselyOrdered α
inst✝² : OrderTopology α
inst✝¹ : TopologicalSpace β
inst✝ : T2Space β
f : α → β
a b : α
lb : β
hab : a < b
hb : Tendsto f (𝓝[<] b) (𝓝 lb)
⊢ Tendsto f (𝓝[Ioo a b] b) (𝓝 lb)
state_after: no goals
Theorem: MeasureTheory.snorm_one_add_measure
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp_rw [snorm_one_eq_lintegral_nnnorm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
μ ν : Measure α
⊢ snorm f 1 (μ + ν) = snorm f 1 μ + snorm f 1 ν
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
μ ν : Measure α
⊢ ∫⁻ (x : α), ↑‖f x‖₊ ∂(μ + ν) = ∫⁻ (x : α), ↑‖f x‖₊ ∂μ + ∫⁻ (x : α), ↑‖f x‖₊ ∂ν

tactic: rw [lintegral_add_measure _ μ ν]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
μ ν : Measure α
⊢ ∫⁻ (x : α), ↑‖f x‖₊ ∂(μ + ν) = ∫⁻ (x : α), ↑‖f x‖₊ ∂μ + ∫⁻ (x : α), ↑‖f x‖₊ ∂ν
state_after: no goals
Theorem: gramSchmidt_def
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: rw [← sum_attach, attach_eq_univ, gramSchmidt]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n : ι
⊢ gramSchmidt 𝕜 f n = f n - ∑ i ∈ Iio n, ↑((orthogonalProjection (span 𝕜 {gramSchmidt 𝕜 f i})) (f n))
state_after: no goals
Theorem: Real.four_mul_arctan_inv_5_sub_arctan_inv_239
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean

tactic: rw [show 4 * arctan _ = 2 * (2 * _) by ring, two_mul_arctan, two_mul_arctan, ← arctan_one,
  sub_eq_iff_eq_add, arctan_add] <;> norm_num
state_before: ⊢ 4 * arctan 5⁻¹ - arctan 239⁻¹ = π / 4
state_after: no goals

tactic: ring
state_before: ⊢ 4 * arctan 5⁻¹ = 2 * (2 * ?m.132504)
state_after: no goals
Theorem: DFinsupp.support_inf
File: Mathlib/Data/DFinsupp/Order.lean

tactic: ext
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)
inst✝ : DecidableEq ι
f g : Π₀ (i : ι), α i
⊢ (f ⊓ g).support = f.support ∩ g.support
state_after: case a
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)
inst✝ : DecidableEq ι
f g : Π₀ (i : ι), α i
a✝ : ι
⊢ a✝ ∈ (f ⊓ g).support ↔ a✝ ∈ f.support ∩ g.support

tactic: simp only [inf_apply, mem_support_iff, Ne, Finset.mem_inter]
state_before: case a
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)
inst✝ : DecidableEq ι
f g : Π₀ (i : ι), α i
a✝ : ι
⊢ a✝ ∈ (f ⊓ g).support ↔ a✝ ∈ f.support ∩ g.support
state_after: case a
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)
inst✝ : DecidableEq ι
f g : Π₀ (i : ι), α i
a✝ : ι
⊢ ¬f a✝ ⊓ g a✝ = 0 ↔ ¬f a✝ = 0 ∧ ¬g a✝ = 0

tactic: simp only [inf_eq_min, ← nonpos_iff_eq_zero, min_le_iff, not_or]
state_before: case a
ι : Type u_1
α : ι → Type u_2
inst✝¹ : (i : ι) → CanonicallyLinearOrderedAddCommMonoid (α i)
inst✝ : DecidableEq ι
f g : Π₀ (i : ι), α i
a✝ : ι
⊢ ¬f a✝ ⊓ g a✝ = 0 ↔ ¬f a✝ = 0 ∧ ¬g a✝ = 0
state_after: no goals
Theorem: GradedTensorProduct.comm_coe_tmul_coe
File: Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean

tactic: simp_rw [auxEquiv_comm, auxEquiv_tmul, decompose_coe, ← lof_eq_of R, gradedComm_of_tmul_of,
  @Units.smul_def _ _ (_) (_), zsmul_eq_smul_cast R]
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Ring B
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝³ : GradedAlgebra 𝒜
inst✝² : GradedAlgebra ℬ
C : Type ?u.772876
inst✝¹ : Ring C
inst✝ : Algebra R C
i j : ι
a : ↥(𝒜 i)
b : ↥(ℬ j)
⊢ (auxEquiv R ℬ 𝒜) ((comm 𝒜 ℬ) (↑a ᵍ⊗ₜ[R] ↑b)) = (auxEquiv R ℬ 𝒜) ((-1) ^ (j * i) • ↑b ᵍ⊗ₜ[R] ↑a)
state_after: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Ring B
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝³ : GradedAlgebra 𝒜
inst✝² : GradedAlgebra ℬ
C : Type ?u.772876
inst✝¹ : Ring C
inst✝ : Algebra R C
i j : ι
a : ↥(𝒜 i)
b : ↥(ℬ j)
⊢ ↑↑((-1) ^ (j * i)) • (lof R ι (fun x => ↥(ℬ x)) j) b ⊗ₜ[R] (lof R ι (fun x => ↥(𝒜 x)) i) a =
    (auxEquiv R ℬ 𝒜) (↑↑((-1) ^ (j * i)) • ↑b ᵍ⊗ₜ[R] ↑a)

tactic: erw [LinearMap.map_smul, auxEquiv_tmul]
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Ring B
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝³ : GradedAlgebra 𝒜
inst✝² : GradedAlgebra ℬ
C : Type ?u.772876
inst✝¹ : Ring C
inst✝ : Algebra R C
i j : ι
a : ↥(𝒜 i)
b : ↥(ℬ j)
⊢ ↑↑((-1) ^ (j * i)) • (lof R ι (fun x => ↥(ℬ x)) j) b ⊗ₜ[R] (lof R ι (fun x => ↥(𝒜 x)) i) a =
    (auxEquiv R ℬ 𝒜) (↑↑((-1) ^ (j * i)) • ↑b ᵍ⊗ₜ[R] ↑a)
state_after: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Ring B
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝³ : GradedAlgebra 𝒜
inst✝² : GradedAlgebra ℬ
C : Type ?u.772876
inst✝¹ : Ring C
inst✝ : Algebra R C
i j : ι
a : ↥(𝒜 i)
b : ↥(ℬ j)
⊢ ↑↑((-1) ^ (j * i)) • (lof R ι (fun x => ↥(ℬ x)) j) b ⊗ₜ[R] (lof R ι (fun x => ↥(𝒜 x)) i) a =
    ↑↑((-1) ^ (j * i)) • (decompose ℬ) ↑b ⊗ₜ[R] (decompose 𝒜) ↑a

tactic: simp_rw [decompose_coe, lof_eq_of]
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
inst✝⁸ : CommRing R
inst✝⁷ : Ring A
inst✝⁶ : Ring B
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝³ : GradedAlgebra 𝒜
inst✝² : GradedAlgebra ℬ
C : Type ?u.772876
inst✝¹ : Ring C
inst✝ : Algebra R C
i j : ι
a : ↥(𝒜 i)
b : ↥(ℬ j)
⊢ ↑↑((-1) ^ (j * i)) • (lof R ι (fun x => ↥(ℬ x)) j) b ⊗ₜ[R] (lof R ι (fun x => ↥(𝒜 x)) i) a =
    ↑↑((-1) ^ (j * i)) • (decompose ℬ) ↑b ⊗ₜ[R] (decompose 𝒜) ↑a
state_after: no goals
Theorem: NNReal.geom_mean_le_arith_mean4_weighted
File: Mathlib/Analysis/MeanInequalities.lean

tactic: simpa only [Fin.prod_univ_succ, Fin.sum_univ_succ, Finset.prod_empty, Finset.sum_empty,
  Finset.univ_eq_empty, Fin.cons_succ, Fin.cons_zero, add_zero, mul_one, ← add_assoc,
  mul_assoc] using geom_mean_le_arith_mean_weighted univ ![w₁, w₂, w₃, w₄] ![p₁, p₂, p₃, p₄]
state_before: ι : Type u
s : Finset ι
w₁ w₂ w₃ w₄ p₁ p₂ p₃ p₄ : ℝ≥0
⊢ w₁ + w₂ + w₃ + w₄ = 1 → p₁ ^ ↑w₁ * p₂ ^ ↑w₂ * p₃ ^ ↑w₃ * p₄ ^ ↑w₄ ≤ w₁ * p₁ + w₂ * p₂ + w₃ * p₃ + w₄ * p₄
state_after: no goals
Theorem: Nat.coprimes_lt
File: Mathlib/Logic/Godel/GodelBetaFunction.lean

tactic: have h₁ : a i < supOfSeq a :=
  Nat.lt_add_one_iff.mpr (le_max_of_le_right $ Finset.le_sup (by simp))
state_before: m : ℕ
a : Fin m → ℕ
i : Fin m
⊢ a i < Nat.coprimes a i
state_after: m : ℕ
a : Fin m → ℕ
i : Fin m
h₁ : a i < Nat.supOfSeq a
⊢ a i < Nat.coprimes a i

tactic: have h₂ : supOfSeq a ≤ (i + 1) * (supOfSeq a)! + 1 :=
  le_trans (self_le_factorial _) (le_trans (Nat.le_mul_of_pos_left (supOfSeq a)! (succ_pos i))
    (le_add_right _ _))
state_before: m : ℕ
a : Fin m → ℕ
i : Fin m
h₁ : a i < Nat.supOfSeq a
⊢ a i < Nat.coprimes a i
state_after: m : ℕ
a : Fin m → ℕ
i : Fin m
h₁ : a i < Nat.supOfSeq a
h₂ : Nat.supOfSeq a ≤ (↑i + 1) * (Nat.supOfSeq a)! + 1
⊢ a i < Nat.coprimes a i

tactic: simpa only [coprimes] using lt_of_lt_of_le h₁ h₂
state_before: m : ℕ
a : Fin m → ℕ
i : Fin m
h₁ : a i < Nat.supOfSeq a
h₂ : Nat.supOfSeq a ≤ (↑i + 1) * (Nat.supOfSeq a)! + 1
⊢ a i < Nat.coprimes a i
state_after: no goals

tactic: simp
state_before: m : ℕ
a : Fin m → ℕ
i : Fin m
⊢ i ∈ Finset.univ
state_after: no goals
Theorem: lt_smul_of_one_lt_left
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: simpa only [one_smul] using smul_lt_smul_of_pos_right h hb
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁶ : Monoid α
inst✝⁵ : Zero α
inst✝⁴ : Zero β
inst✝³ : MulAction α β
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : SMulPosStrictMono α β
hb : 0 < b
h : 1 < a
⊢ b < a • b
state_after: no goals
Theorem: le_mul_of_le_one_left
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: simpa only [one_mul] using mul_le_mul_of_nonpos_right h hb
state_before: α : Type u
β : Type u_1
inst✝² : OrderedSemiring α
a b c d : α
inst✝¹ : ExistsAddOfLE α
inst✝ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
hb : b ≤ 0
h : a ≤ 1
⊢ b ≤ a * b
state_after: no goals
Theorem: Order.pred_iterate_le
File: Mathlib/Order/SuccPred/Basic.lean

tactic: conv_rhs => rw [(by simp only [Function.iterate_id, id] : x = id^[k] x)]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ pred^[k] x ≤ x
state_after: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ pred^[k] x ≤ id^[k] x

tactic: exact Monotone.iterate_le_of_le pred_mono pred_le k x
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ pred^[k] x ≤ id^[k] x
state_after: no goals

tactic: simp only [Function.iterate_id, id]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : PredOrder α
a b : α
k : ℕ
x : α
⊢ x = id^[k] x
state_after: no goals
Theorem: Polynomial.eq_rootMultiplicity_map
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: by_cases hp0 : p = 0
state_before: R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
⊢ rootMultiplicity a p = rootMultiplicity (f a) (map f p)
state_after: case pos
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : p = 0
⊢ rootMultiplicity a p = rootMultiplicity (f a) (map f p)

case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ rootMultiplicity a p = rootMultiplicity (f a) (map f p)

tactic: apply le_antisymm (le_rootMultiplicity_map ((Polynomial.map_ne_zero_iff hf).mpr hp0) a)
state_before: case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ rootMultiplicity a p = rootMultiplicity (f a) (map f p)
state_after: case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ rootMultiplicity (f a) (map f p) ≤ rootMultiplicity a p

tactic: rw [le_rootMultiplicity_iff hp0, ← map_dvd_map f hf ((monic_X_sub_C a).pow _),
  Polynomial.map_pow, Polynomial.map_sub, map_X, map_C]
state_before: case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ rootMultiplicity (f a) (map f p) ≤ rootMultiplicity a p
state_after: case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ (X - C (f a)) ^ rootMultiplicity (f a) (map f p) ∣ map f p

tactic: apply pow_rootMultiplicity_dvd
state_before: case neg
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : ¬p = 0
⊢ (X - C (f a)) ^ rootMultiplicity (f a) (map f p) ∣ map f p
state_after: no goals

tactic: simp only [hp0, rootMultiplicity_zero, Polynomial.map_zero]
state_before: case pos
R : Type u
S : Type v
T : Type w
a✝ b : R
n : ℕ
A : Type u_1
B : Type u_2
inst✝¹ : CommRing A
inst✝ : CommRing B
p : A[X]
f : A →+* B
hf : Function.Injective ⇑f
a : A
hp0 : p = 0
⊢ rootMultiplicity a p = rootMultiplicity (f a) (map f p)
state_after: no goals
Theorem: strongConcaveOn_iff_convex
File: Mathlib/Analysis/Convex/Strong.lean

tactic: refine and_congr_right fun _ ↦ forall₄_congr fun x _ y _ ↦ forall₅_congr fun a b ha hb hab ↦ ?_
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a b m : ℝ
x y : E
f : E → ℝ
⊢ StrongConcaveOn s m f ↔ ConcaveOn ℝ s fun x => f x + m / 2 * ‖x‖ ^ 2
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝³ y✝ : E
f : E → ℝ
x✝² : Convex ℝ s
x : E
x✝¹ : x ∈ s
y : E
x✝ : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y + a * b * (fun r => m / 2 * r ^ 2) ‖x - y‖ ≤ f (a • x + b • y) ↔
    a • (fun x => f x + m / 2 * ‖x‖ ^ 2) x + b • (fun x => f x + m / 2 * ‖x‖ ^ 2) y ≤
      (fun x => f x + m / 2 * ‖x‖ ^ 2) (a • x + b • y)

tactic: simp_rw [← sub_le_iff_le_add, smul_eq_mul, aux_add ha hb hab, mul_assoc, mul_left_comm]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a✝ b✝ m : ℝ
x✝³ y✝ : E
f : E → ℝ
x✝² : Convex ℝ s
x : E
x✝¹ : x ∈ s
y : E
x✝ : y ∈ s
a b : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • f x + b • f y + a * b * (fun r => m / 2 * r ^ 2) ‖x - y‖ ≤ f (a • x + b • y) ↔
    a • (fun x => f x + m / 2 * ‖x‖ ^ 2) x + b • (fun x => f x + m / 2 * ‖x‖ ^ 2) y ≤
      (fun x => f x + m / 2 * ‖x‖ ^ 2) (a • x + b • y)
state_after: no goals
Theorem: PowerSeries.hasUnitMulPowIrreducibleFactorization
File: Mathlib/RingTheory/PowerSeries/Inverse.lean

tactic: intro f hf
state_before: R : Type u_1
k : Type u_2
inst✝ : Field k
⊢ ∀ {x : k⟦X⟧}, x ≠ 0 → ∃ n, Associated (X ^ n) x
state_after: R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ ∃ n, Associated (X ^ n) f

tactic: use f.order.get (order_finite_iff_ne_zero.mpr hf)
state_before: R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ ∃ n, Associated (X ^ n) f
state_after: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ Associated (X ^ f.order.get ⋯) f

tactic: use Unit_of_divided_by_X_pow_order f
state_before: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ Associated (X ^ f.order.get ⋯) f
state_after: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ X ^ f.order.get ⋯ * ↑f.Unit_of_divided_by_X_pow_order = f

tactic: simp only [Unit_of_divided_by_X_pow_order_nonzero hf]
state_before: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ X ^ f.order.get ⋯ * ↑f.Unit_of_divided_by_X_pow_order = f
state_after: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ X ^ f.order.get ⋯ * divided_by_X_pow_order hf = f

tactic: exact self_eq_X_pow_order_mul_divided_by_X_pow_order hf
state_before: case h
R : Type u_1
k : Type u_2
inst✝ : Field k
f : k⟦X⟧
hf : f ≠ 0
⊢ X ^ f.order.get ⋯ * divided_by_X_pow_order hf = f
state_after: no goals
Theorem: AddCommGroup.modEq_iff_int_modEq
File: Mathlib/Algebra/ModEq.lean

tactic: simp [ModEq, dvd_iff_exists_eq_mul_left, Int.modEq_iff_dvd]
state_before: α : Type u_1
a b z : ℤ
⊢ a ≡ b [PMOD z] ↔ a ≡ b [ZMOD z]
state_after: no goals
Theorem: le_map_div_add_map_div
File: Mathlib/Algebra/Order/Hom/Basic.lean

tactic: simpa only [div_mul_div_cancel'] using map_mul_le_add f (a / b) (b / c)
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝⁴ : FunLike F α β
inst✝³ : Group α
inst✝² : AddCommSemigroup β
inst✝¹ : LE β
inst✝ : MulLEAddHomClass F α β
f : F
a b c : α
⊢ f (a / c) ≤ f (a / b) + f (b / c)
state_after: no goals