1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.sum_range_by_parts
File: Mathlib/Algebra/BigOperators/Module.lean

tactic: by_cases hn : n = 0
state_before: R : Type u_1
M : Type u_2
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f : ℕ → R
g : ℕ → M
m n : ℕ
⊢ ∑ i ∈ range n, f i • g i =
    f (n - 1) • ∑ i ∈ range n, g i - ∑ i ∈ range (n - 1), (f (i + 1) - f i) • ∑ i ∈ range (i + 1), g i
state_after: case pos
R : Type u_1
M : Type u_2
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f : ℕ → R
g : ℕ → M
m n : ℕ
hn : n = 0
⊢ ∑ i ∈ range n, f i • g i =
    f (n - 1) • ∑ i ∈ range n, g i - ∑ i ∈ range (n - 1), (f (i + 1) - f i) • ∑ i ∈ range (i + 1), g i

case neg
R : Type u_1
M : Type u_2
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f : ℕ → R
g : ℕ → M
m n : ℕ
hn : ¬n = 0
⊢ ∑ i ∈ range n, f i • g i =
    f (n - 1) • ∑ i ∈ range n, g i - ∑ i ∈ range (n - 1), (f (i + 1) - f i) • ∑ i ∈ range (i + 1), g i

tactic: simp [hn]
state_before: case pos
R : Type u_1
M : Type u_2
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f : ℕ → R
g : ℕ → M
m n : ℕ
hn : n = 0
⊢ ∑ i ∈ range n, f i • g i =
    f (n - 1) • ∑ i ∈ range n, g i - ∑ i ∈ range (n - 1), (f (i + 1) - f i) • ∑ i ∈ range (i + 1), g i
state_after: no goals

tactic: rw [range_eq_Ico, sum_Ico_by_parts f g (Nat.pos_of_ne_zero hn), sum_range_zero, smul_zero,
  sub_zero, range_eq_Ico]
state_before: case neg
R : Type u_1
M : Type u_2
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f : ℕ → R
g : ℕ → M
m n : ℕ
hn : ¬n = 0
⊢ ∑ i ∈ range n, f i • g i =
    f (n - 1) • ∑ i ∈ range n, g i - ∑ i ∈ range (n - 1), (f (i + 1) - f i) • ∑ i ∈ range (i + 1), g i
state_after: no goals
Theorem: PNat.Coprime.gcd_mul
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [← coprime_coe] at h
state_before: k m n : ℕ+
h : m.Coprime n
⊢ k.gcd (m * n) = k.gcd m * k.gcd n
state_after: k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ k.gcd (m * n) = k.gcd m * k.gcd n

tactic: apply eq
state_before: k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ k.gcd (m * n) = k.gcd m * k.gcd n
state_after: case a
k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ ↑(k.gcd (m * n)) = ↑(k.gcd m * k.gcd n)

tactic: simp only [gcd_coe, mul_coe]
state_before: case a
k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ ↑(k.gcd (m * n)) = ↑(k.gcd m * k.gcd n)
state_after: case a
k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ (↑k).gcd (↑m * ↑n) = (↑k).gcd ↑m * (↑k).gcd ↑n

tactic: apply Nat.Coprime.gcd_mul k h
state_before: case a
k m n : ℕ+
h : (↑m).Coprime ↑n
⊢ (↑k).gcd (↑m * ↑n) = (↑k).gcd ↑m * (↑k).gcd ↑n
state_after: no goals
Theorem: AddMonoidHom.toIntLinearMap_injective
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: intro f g h
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup M₂
⊢ Injective toIntLinearMap
state_after: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup M₂
f g : M →+ M₂
h : f.toIntLinearMap = g.toIntLinearMap
⊢ f = g

tactic: ext x
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup M₂
f g : M →+ M₂
h : f.toIntLinearMap = g.toIntLinearMap
⊢ f = g
state_after: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup M₂
f g : M →+ M₂
h : f.toIntLinearMap = g.toIntLinearMap
x : M
⊢ f x = g x

tactic: exact LinearMap.congr_fun h x
state_before: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹ : AddCommGroup M
inst✝ : AddCommGroup M₂
f g : M →+ M₂
h : f.toIntLinearMap = g.toIntLinearMap
x : M
⊢ f x = g x
state_after: no goals
Theorem: CircleDeg1Lift.map_one_add
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: rw [add_comm, map_add_one, add_comm 1]
state_before: f g : CircleDeg1Lift
x : ℝ
⊢ f (1 + x) = 1 + f x
state_after: no goals
Theorem: ContinuousAffineMap.contDiff
File: Mathlib/Analysis/Calculus/AffineMap.lean

tactic: rw [f.decomp]
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace 𝕜 W
n : ℕ∞
f : V →ᴬ[𝕜] W
⊢ ContDiff 𝕜 n ⇑f
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace 𝕜 W
n : ℕ∞
f : V →ᴬ[𝕜] W
⊢ ContDiff 𝕜 n (⇑f.contLinear + Function.const V (f 0))

tactic: apply f.contLinear.contDiff.add
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace 𝕜 W
n : ℕ∞
f : V →ᴬ[𝕜] W
⊢ ContDiff 𝕜 n (⇑f.contLinear + Function.const V (f 0))
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace 𝕜 W
n : ℕ∞
f : V →ᴬ[𝕜] W
⊢ ContDiff 𝕜 n (Function.const V (f 0))

tactic: exact contDiff_const
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace 𝕜 V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace 𝕜 W
n : ℕ∞
f : V →ᴬ[𝕜] W
⊢ ContDiff 𝕜 n (Function.const V (f 0))
state_after: no goals
Theorem: NNRat.cast_div_of_ne_zero
File: Mathlib/Data/Rat/Cast/Defs.lean

tactic: rw [div_def, cast_divNat_of_ne_zero, cast_def, cast_def, div_eq_mul_inv (_ / _),
  inv_div, (Nat.commute_cast _ _).div_mul_div_comm (Nat.commute_cast _ _)]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑(q / r) = ↑q / ↑r
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑(q.num * r.den) / ↑(q.den * r.num) = ↑q.num * ↑r.den / (↑q.den * ↑r.num)

case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑(q.den * r.num) ≠ 0

tactic: push_cast
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑(q.num * r.den) / ↑(q.den * r.num) = ↑q.num * ↑r.den / (↑q.den * ↑r.num)
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑q.num * ↑r.den / (↑q.den * ↑r.num) = ↑q.num * ↑r.den / (↑q.den * ↑r.num)

tactic: rfl
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑q.num * ↑r.den / (↑q.den * ↑r.num) = ↑q.num * ↑r.den / (↑q.den * ↑r.num)
state_after: no goals

tactic: push_cast
state_before: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑(q.den * r.num) ≠ 0
state_after: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑q.den * ↑r.num ≠ 0

tactic: exact mul_ne_zero hq hr
state_before: case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionSemiring α
q r : ℚ≥0
hq : ↑q.den ≠ 0
hr : ↑r.num ≠ 0
⊢ ↑q.den * ↑r.num ≠ 0
state_after: no goals
Theorem: dvd_smul_of_dvd
File: Mathlib/Algebra/Ring/Divisibility/Lemmas.lean

tactic: rw [mul_smul_comm, ← hk]
state_before: R : Type u_1
M : Type u_2
inst✝² : SMul M R
inst✝¹ : Semigroup R
inst✝ : SMulCommClass M R R
x y : R
m : M
h : x ∣ y
k : R
hk : y = x * k
⊢ m • y = x * m • k
state_after: no goals
Theorem: IntermediateField.minpoly_gen
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [← minpoly.algebraMap_eq (algebraMap F⟮α⟯ E).injective, AdjoinSimple.algebraMap_gen]
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α✝ : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
α : E
⊢ minpoly F (AdjoinSimple.gen F α) = minpoly F α
state_after: no goals
Theorem: Finset.Ico_mul_Ioc_subset'
File: Mathlib/Data/Finset/Pointwise/Interval.lean

tactic: simpa using Set.Ico_mul_Ioc_subset' _ _ _ _
state_before: α : Type u_1
inst✝⁵ : Mul α
inst✝⁴ : PartialOrder α
inst✝³ : DecidableEq α
inst✝² : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝¹ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
inst✝ : LocallyFiniteOrder α
a b c d : α
⊢ ↑(Ico a b * Ioc c d) ⊆ ↑(Ioo (a * c) (b * d))
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.Isδ₀.eq_δ₀
File: Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

tactic: obtain ⟨j, rfl⟩ := SimplexCategory.eq_δ_of_mono i
state_before: C : Type u_1
inst✝² : Category.{?u.2875, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
n : ℕ
i : [n] ⟶ [n + 1]
inst✝ : Mono i
hi : Isδ₀ i
⊢ i = SimplexCategory.δ 0
state_after: case intro
C : Type u_1
inst✝² : Category.{?u.2875, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
n : ℕ
j : Fin (n + 2)
inst✝ : Mono (SimplexCategory.δ j)
hi : Isδ₀ (SimplexCategory.δ j)
⊢ SimplexCategory.δ j = SimplexCategory.δ 0

tactic: rw [iff] at hi
state_before: case intro
C : Type u_1
inst✝² : Category.{?u.2875, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
n : ℕ
j : Fin (n + 2)
inst✝ : Mono (SimplexCategory.δ j)
hi : Isδ₀ (SimplexCategory.δ j)
⊢ SimplexCategory.δ j = SimplexCategory.δ 0
state_after: case intro
C : Type u_1
inst✝² : Category.{?u.2875, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
n : ℕ
j : Fin (n + 2)
inst✝ : Mono (SimplexCategory.δ j)
hi : j = 0
⊢ SimplexCategory.δ j = SimplexCategory.δ 0

tactic: rw [hi]
state_before: case intro
C : Type u_1
inst✝² : Category.{?u.2875, u_1} C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
n : ℕ
j : Fin (n + 2)
inst✝ : Mono (SimplexCategory.δ j)
hi : j = 0
⊢ SimplexCategory.δ j = SimplexCategory.δ 0
state_after: no goals
Theorem: LieHom.mem_idealRange_iff
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [f.isIdealMorphism_def] at h
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
h : f.IsIdealMorphism
y : L'
⊢ y ∈ f.idealRange ↔ ∃ x, f x = y
state_after: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
h : lieIdealSubalgebra R L' f.idealRange = f.range
y : L'
⊢ y ∈ f.idealRange ↔ ∃ x, f x = y

tactic: rw [← LieSubmodule.mem_coe, ← LieIdeal.coe_toSubalgebra, h, f.range_coe, Set.mem_range]
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
h : lieIdealSubalgebra R L' f.idealRange = f.range
y : L'
⊢ y ∈ f.idealRange ↔ ∃ x, f x = y
state_after: no goals
Theorem: SetTheory.PGame.grundyValue_eq_mex_left
File: Mathlib/SetTheory/Game/Nim.lean

tactic: rw [grundyValue]
state_before: G : PGame
⊢ G.grundyValue = mex fun i => (G.moveLeft i).grundyValue
state_after: no goals
Theorem: MeasureTheory.Integrable.toL1_coeFn
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [Integrable.toL1]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : ↥(Lp β 1 μ)
hf : Integrable (↑↑f) μ
⊢ toL1 (↑↑f) hf = f
state_after: no goals
Theorem: Set.Ioc_mul_Ico_subset'
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: haveI := covariantClass_le_of_lt
state_before: α : Type u_1
inst✝³ : Mul α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
a b c d : α
⊢ Ioc a b * Ico c d ⊆ Ioo (a * c) (b * d)
state_after: α : Type u_1
inst✝³ : Mul α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
a b c d : α
this :
  ∀ (M : Type ?u.6268) (N : Type ?u.6267) (μ : M → N → N) [inst : PartialOrder N]
    [inst_1 : CovariantClass M N μ fun x x_1 => x < x_1], CovariantClass M N μ fun x x_1 => x ≤ x_1
⊢ Ioc a b * Ico c d ⊆ Ioo (a * c) (b * d)

tactic: rintro x ⟨y, ⟨hya, hyb⟩, z, ⟨hzc, hzd⟩, rfl⟩
state_before: α : Type u_1
inst✝³ : Mul α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
a b c d : α
this :
  ∀ (M : Type ?u.6268) (N : Type ?u.6267) (μ : M → N → N) [inst : PartialOrder N]
    [inst_1 : CovariantClass M N μ fun x x_1 => x < x_1], CovariantClass M N μ fun x x_1 => x ≤ x_1
⊢ Ioc a b * Ico c d ⊆ Ioo (a * c) (b * d)
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : Mul α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
a b c d : α
this :
  ∀ (M : Type ?u.6268) (N : Type ?u.6267) (μ : M → N → N) [inst : PartialOrder N]
    [inst_1 : CovariantClass M N μ fun x x_1 => x < x_1], CovariantClass M N μ fun x x_1 => x ≤ x_1
y : α
hya : a < y
hyb : y ≤ b
z : α
hzc : c ≤ z
hzd : z < d
⊢ (fun x x_1 => x * x_1) y z ∈ Ioo (a * c) (b * d)

tactic: exact ⟨mul_lt_mul_of_lt_of_le hya hzc, mul_lt_mul_of_le_of_lt hyb hzd⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : Mul α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (Function.swap HMul.hMul) LT.lt
a b c d : α
this :
  ∀ (M : Type ?u.6268) (N : Type ?u.6267) (μ : M → N → N) [inst : PartialOrder N]
    [inst_1 : CovariantClass M N μ fun x x_1 => x < x_1], CovariantClass M N μ fun x x_1 => x ≤ x_1
y : α
hya : a < y
hyb : y ≤ b
z : α
hzc : c ≤ z
hzd : z < d
⊢ (fun x x_1 => x * x_1) y z ∈ Ioo (a * c) (b * d)
state_after: no goals
Theorem: MvPolynomial.eval₂_mul_C
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: simp
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
⊢ (eval₂ f g p * f a * Finsupp.prod 0 fun n e => g n ^ e) = eval₂ f g p * f a
state_after: no goals
Theorem: Polynomial.natTrailingDegree_X_pow
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

tactic: rw [X_pow_eq_monomial, natTrailingDegree_monomial one_ne_zero]
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
⊢ (X ^ n).natTrailingDegree = n
state_after: no goals
Theorem: Set.add_smul_subset
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Semiring α
inst✝¹ : AddCommMonoid β
inst✝ : Module α β
a b : α
s : Set β
⊢ (a + b) • s ⊆ a • s + b • s
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Semiring α
inst✝¹ : AddCommMonoid β
inst✝ : Module α β
a b : α
s : Set β
x : β
hx : x ∈ s
⊢ (fun x => (a + b) • x) x ∈ a • s + b • s

tactic: simpa only [add_smul] using add_mem_add (smul_mem_smul_set hx) (smul_mem_smul_set hx)
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Semiring α
inst✝¹ : AddCommMonoid β
inst✝ : Module α β
a b : α
s : Set β
x : β
hx : x ∈ s
⊢ (fun x => (a + b) • x) x ∈ a • s + b • s
state_after: no goals
Theorem: Unitization.inl_mul
File: Mathlib/Algebra/Algebra/Unitization.lean

tactic: simp only [smul_zero, add_zero, mul_zero]
state_before: R : Type u_1
A : Type u_2
inst✝² : Monoid R
inst✝¹ : NonUnitalNonAssocSemiring A
inst✝ : DistribMulAction R A
r₁ r₂ : R
⊢ 0 = r₁ • 0 + r₂ • 0 + 0 * 0
state_after: no goals
Theorem: LieSubmodule.ker_incl
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: simp [← LieSubmodule.coe_toSubmodule_eq_iff]
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N : LieSubmodule R L M
⊢ N.incl.ker = ⊥
state_after: no goals
Theorem: Set.Infinite.nonempty
File: Mathlib/Data/Set/Finite.lean

tactic: rintro rfl
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s : Set α
h : s.Infinite
⊢ s ≠ ∅
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
h : ∅.Infinite
⊢ False

tactic: exact h finite_empty
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
h : ∅.Infinite
⊢ False
state_after: no goals
Theorem: integrableOn_Ioi_cpow_iff
File: Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean

tactic: refine ⟨fun h ↦ ?_, fun h ↦ integrableOn_Ioi_cpow_of_lt h ht⟩
state_before: s : ℂ
t : ℝ
ht : 0 < t
⊢ IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume ↔ s.re < -1
state_after: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
⊢ s.re < -1

tactic: have B : IntegrableOn (fun a ↦ a ^ s.re) (Ioi t) := by
  apply (integrableOn_congr_fun _ measurableSet_Ioi).1 h.norm
  intro a ha
  have : 0 < a := ht.trans ha
  simp [Complex.abs_cpow_eq_rpow_re_of_pos this]
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
⊢ s.re < -1
state_after: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
B : IntegrableOn (fun a => a ^ s.re) (Ioi t) volume
⊢ s.re < -1

tactic: rwa [integrableOn_Ioi_rpow_iff ht] at B
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
B : IntegrableOn (fun a => a ^ s.re) (Ioi t) volume
⊢ s.re < -1
state_after: no goals

tactic: apply (integrableOn_congr_fun _ measurableSet_Ioi).1 h.norm
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
⊢ IntegrableOn (fun a => a ^ s.re) (Ioi t) volume
state_after: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
⊢ EqOn (fun a => ‖↑a ^ s‖) (fun a => a ^ s.re) (Ioi t)

tactic: intro a ha
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
⊢ EqOn (fun a => ‖↑a ^ s‖) (fun a => a ^ s.re) (Ioi t)
state_after: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
a : ℝ
ha : a ∈ Ioi t
⊢ (fun a => ‖↑a ^ s‖) a = (fun a => a ^ s.re) a

tactic: have : 0 < a := ht.trans ha
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
a : ℝ
ha : a ∈ Ioi t
⊢ (fun a => ‖↑a ^ s‖) a = (fun a => a ^ s.re) a
state_after: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
a : ℝ
ha : a ∈ Ioi t
this : 0 < a
⊢ (fun a => ‖↑a ^ s‖) a = (fun a => a ^ s.re) a

tactic: simp [Complex.abs_cpow_eq_rpow_re_of_pos this]
state_before: s : ℂ
t : ℝ
ht : 0 < t
h : IntegrableOn (fun x => ↑x ^ s) (Ioi t) volume
a : ℝ
ha : a ∈ Ioi t
this : 0 < a
⊢ (fun a => ‖↑a ^ s‖) a = (fun a => a ^ s.re) a
state_after: no goals
Theorem: Multiset.coe_inter
File: Mathlib/Data/Multiset/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
s t : List α
⊢ ↑s ∩ ↑t = ↑(s.bagInter t)
state_after: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
s t : List α
a✝ : α
⊢ count a✝ (↑s ∩ ↑t) = count a✝ ↑(s.bagInter t)

tactic: simp
state_before: case a
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
s t : List α
a✝ : α
⊢ count a✝ (↑s ∩ ↑t) = count a✝ ↑(s.bagInter t)
state_after: no goals