ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: ENNReal.tendsto_atTop
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
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: 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, ∀ x ∈ Ici ia, f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ ε > 0, ∃ N, ∀ n ≥ N, f n ∈ Icc (a - ε) (a + ε)
state_after: no goals
tactic: rfl
Theorem: tendsto_nat_floor_atTop
File: Mathlib/Analysis/SpecificLimits/Basic.lean

Proof steps:
state_before: α✝ : Type u_1
β : Type u_2
ι : Type u_3
α : Type u_4
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
x : ℕ
⊢ x ≤ ⌊max 0 (↑x + 1)⌋₊
state_after: no goals
tactic: simp [Nat.le_floor_iff]
Theorem: Rat.cast_mul_of_ne_zero
File: Mathlib/Data/Rat/Cast/Defs.lean

Proof steps:
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q : ℚ
hp : ↑p.den ≠ 0
hq : ↑q.den ≠ 0
⊢ ↑(p * q) = ↑p * ↑q
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q : ℚ
hp : ↑p.den ≠ 0
hq : ↑q.den ≠ 0
⊢ ↑(p.num * q.num) / ↑(p.den * q.den) = ↑p.num * ↑q.num / (↑p.den * ↑q.den)

case hb
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : DivisionRing α
p q : ℚ
hp : ↑p.den ≠ 0
hq : ↑q.den ≠ 0
⊢ ↑(p.den * q.den) ≠ 0
tactic: rw [mul_eq_mkRat, cast_mkRat_of_ne_zero, cast_def, cast_def,
    (Nat.commute_cast _ _).div_mul_div_comm (Int.commute_cast _ _)]
Theorem: _private.Mathlib.GroupTheory.SpecificGroups.Cyclic.0.card_pow_eq_one_eq_orderOf_aux
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

Proof steps:
state_before: α : Type u
a✝ : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
a : α
b : ↥(zpowers a)
⊢ ↑b ^ orderOf a = 1
state_after: α : Type u
a✝ : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
a : α
b : ↥(zpowers a)
i : ℤ
hi : (fun x => a ^ x) i = ↑b
⊢ ↑b ^ orderOf a = 1
tactic: let ⟨i, hi⟩ := b.2
state_before: α : Type u
a✝ : α
inst✝² : Group α
inst✝¹ : DecidableEq α
inst✝ : Fintype α
hn : ∀ (n : ℕ), 0 < n → (filter (fun a => a ^ n = 1) univ).card ≤ n
a : α
b : ↥(zpowers a)
i : ℤ
hi : (fun x => a ^ x) i = ↑b
⊢ ↑b ^ orderOf a = 1
state_after: no goals
tactic: rw [← hi, ← zpow_natCast, ← zpow_mul, mul_comm, zpow_mul, zpow_natCast,
                    pow_orderOf_eq_one, one_zpow]
Theorem: Polynomial.smul_eval_smul
File: Mathlib/Algebra/Polynomial/GroupRingAction.lean

Proof steps:
state_before: M : Type u_1
inst✝⁴ : Monoid M
R : Type u_2
inst✝³ : Semiring R
inst✝² : MulSemiringAction M R
S : Type u_3
inst✝¹ : CommSemiring S
inst✝ : MulSemiringAction M S
m : M
f : S[X]
x r : S
⊢ eval (m • x) (m • C r) = m • eval x (C r)
state_after: no goals
tactic: rw [smul_C, eval_C, eval_C]
state_before: M : Type u_1
inst✝⁴ : Monoid M
R : Type u_2
inst✝³ : Semiring R
inst✝² : MulSemiringAction M R
S : Type u_3
inst✝¹ : CommSemiring S
inst✝ : MulSemiringAction M S
m : M
f✝ : S[X]
x : S
f g : S[X]
ihf : eval (m • x) (m • f) = m • eval x f
ihg : eval (m • x) (m • g) = m • eval x g
⊢ eval (m • x) (m • (f + g)) = m • eval x (f + g)
state_after: no goals
tactic: rw [smul_add, eval_add, ihf, ihg, eval_add, smul_add]
state_before: M : Type u_1
inst✝⁴ : Monoid M
R : Type u_2
inst✝³ : Semiring R
inst✝² : MulSemiringAction M R
S : Type u_3
inst✝¹ : CommSemiring S
inst✝ : MulSemiringAction M S
m : M
f : S[X]
x : S
n : ℕ
r : S
x✝ : eval (m • x) (m • (C r * X ^ n)) = m • eval x (C r * X ^ n)
⊢ eval (m • x) (m • (C r * X ^ (n + 1))) = m • eval x (C r * X ^ (n + 1))
state_after: no goals
tactic: rw [smul_mul', smul_pow', smul_C, smul_X, eval_mul, eval_C, eval_pow, eval_X, eval_mul, eval_C,
      eval_pow, eval_X, smul_mul', smul_pow']
Theorem: MulAction.stabilizer_mul_self
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set G
⊢ ↑(stabilizer G s) * s = s
state_after: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set G
x✝ : G
⊢ x✝ ∈ ↑(stabilizer G s) * s ↔ x✝ ∈ s
tactic: ext
state_before: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set G
x✝ : G
⊢ x✝ ∈ ↑(stabilizer G s) * s ↔ x✝ ∈ s
state_after: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set G
x✝ : G
⊢ x✝ ∈ ↑(stabilizer G s) * s → x✝ ∈ s
tactic: refine ⟨?_, fun h ↦ ⟨_, (stabilizer G s).one_mem, _, h, one_mul _⟩⟩
state_before: case h
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set G
x✝ : G
⊢ x✝ ∈ ↑(stabilizer G s) * s → x✝ ∈ s
state_after: case h.intro.intro.intro.intro
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Set G
a : G
ha : a ∈ ↑(stabilizer G s)
b : G
hb : b ∈ s
⊢ (fun x x_1 => x * x_1) a b ∈ s
tactic: rintro ⟨a, ha, b, hb, rfl⟩
state_before: case h.intro.intro.intro.intro
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Set G
a : G
ha : a ∈ ↑(stabilizer G s)
b : G
hb : b ∈ s
⊢ (fun x x_1 => x * x_1) a b ∈ s
state_after: case h.intro.intro.intro.intro
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Set G
a : G
ha : a ∈ ↑(stabilizer G s)
b : G
hb : b ∈ s
⊢ (fun x x_1 => x * x_1) a b ∈ a • s
tactic: rw [← mem_stabilizer_iff.1 ha]
state_before: case h.intro.intro.intro.intro
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a✝ : G
s : Set G
a : G
ha : a ∈ ↑(stabilizer G s)
b : G
hb : b ∈ s
⊢ (fun x x_1 => x * x_1) a b ∈ a • s
state_after: no goals
tactic: exact smul_mem_smul_set hb
Theorem: ProbabilityTheory.IndepFun.ae_eq
File: Mathlib/Probability/Independence/Basic.lean

Proof steps:
state_before: Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
f' : Ω → β
g' : Ω → β'
hfg : IndepFun f g μ
hf : f =ᶠ[ae μ] f'
hg : g =ᶠ[ae μ] g'
⊢ IndepFun f' g' μ
state_after: case refine_1
Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
f' : Ω → β
g' : Ω → β'
hfg : IndepFun f g μ
hf : f =ᶠ[ae μ] f'
hg : g =ᶠ[ae μ] g'
⊢ f =ᶠ[ae μ] f'

case refine_2
Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
f' : Ω → β
g' : Ω → β'
hfg : IndepFun f g μ
hf : f =ᶠ[ae μ] f'
hg : g =ᶠ[ae μ] g'
⊢ g =ᶠ[ae μ] g'
tactic: refine Kernel.IndepFun.ae_eq hfg ?_ ?_ <;>
    simp only [ae_dirac_eq, Filter.eventually_pure, Kernel.const_apply]
state_before: case refine_1
Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
f' : Ω → β
g' : Ω → β'
hfg : IndepFun f g μ
hf : f =ᶠ[ae μ] f'
hg : g =ᶠ[ae μ] g'
⊢ f =ᶠ[ae μ] f'

case refine_2
Ω : Type u_1
ι : Type u_2
β✝ : Type u_3
γ✝ : Type u_4
κ : ι → Type u_5
β : Type u_6
β' : Type u_7
γ : Type u_8
γ' : Type u_9
_mΩ : MeasurableSpace Ω
μ : Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
f' : Ω → β
g' : Ω → β'
hfg : IndepFun f g μ
hf : f =ᶠ[ae μ] f'
hg : g =ᶠ[ae μ] g'
⊢ g =ᶠ[ae μ] g'
state_after: no goals
tactic: exacts [hf, hg]
Theorem: Matroid.Indep.exists_insert_of_not_mem_maximals
File: Mathlib/Data/Matroid/Basic.lean

Proof steps:
state_before: α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hInotmax : I ∉ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
hB : B ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I}
⊢ ∃ x ∈ B \ I, M.Indep (insert x I)
state_after: α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hB : M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y
hInotmax : ∃ x, M.Indep x ∧ I ⊆ x ∧ ¬I = x
⊢ ∃ x ∈ B \ I, M.Indep (insert x I)
tactic: simp only [mem_maximals_iff, mem_setOf_eq, not_and, not_forall, exists_prop,
    exists_and_left, iff_true_intro hI, true_imp_iff] at hB hInotmax
state_before: α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hB : M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y
hInotmax : ∃ x, M.Indep x ∧ I ⊆ x ∧ ¬I = x
⊢ ∃ x ∈ B \ I, M.Indep (insert x I)
state_after: case refine_1
α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hB : M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y
hInotmax : ∃ x, M.Indep x ∧ I ⊆ x ∧ ¬I = x
hIb : M.Base I
⊢ False

case refine_2
α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hB : M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y
hInotmax : ∃ x, M.Indep x ∧ I ⊆ x ∧ ¬I = x
⊢ M.Base B
tactic: refine hI.exists_insert_of_not_base (fun hIb ↦ ?_) ?_
state_before: case refine_2
α : Type u_1
M✝ : Matroid α
B✝ B' I✝ J D X : Set α
e f : α
M : Matroid α
I B : Set α
hI : M.Indep I
hB : M.Indep B ∧ ∀ ⦃y : Set α⦄, M.Indep y → B ⊆ y → B = y
hInotmax : ∃ x, M.Indep x ∧ I ⊆ x ∧ ¬I = x
⊢ M.Base B
state_after: no goals
tactic: exact hB.1.base_of_maximal fun J hJ hBJ ↦ hB.2 hJ hBJ
Theorem: Finset.shatterer_idem
File: Mathlib/Combinatorics/SetFamily/Shatter.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
⊢ 𝒜.shatterer.shatterer = 𝒜.shatterer
state_after: no goals
tactic: simp
Theorem: Finset.card_insert_of_not_mem
File: Mathlib/Data/Finset/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t : Finset α
a b : α
inst✝ : DecidableEq α
h : a ∉ s
⊢ (insert a s).card = s.card + 1
state_after: no goals
tactic: rw [← cons_eq_insert _ _ h, card_cons]
Theorem: StieltjesFunction.length_empty
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

Proof steps:
state_before: f : StieltjesFunction
⊢ ⨅ (_ : ∅ ⊆ Ioc 0 0), ofReal (↑f 0 - ↑f 0) ≤ 0
state_after: no goals
tactic: simp
Theorem: Finset.sum_const_zero
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : CommMonoid β
⊢ ∏ _x ∈ s, 1 = 1
state_after: no goals
tactic: simp only [Finset.prod, Multiset.map_const', Multiset.prod_replicate, one_pow]
Theorem: GenContFract.terminatedAt_iff_s_terminatedAt
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

Proof steps:
state_before: α : Type u_1
g : GenContFract α
n : ℕ
⊢ g.TerminatedAt n ↔ g.s.TerminatedAt n
state_after: no goals
tactic: rfl
Theorem: Finset.sum_mul_sq_le_sq_mul_sq
File: Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean

Proof steps:
state_before: ι : Type u_1
R : Type u_2
inst✝¹ : LinearOrderedCommSemiring R
inst✝ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2
state_after: ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2
tactic: nontriviality R
state_before: ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2
state_after: case inl
ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
h' : 0 = ∑ i ∈ ?m.33436, g (?m.34208 i) ^ 2
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2

case inr
ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
h' : 0 < ∑ i ∈ ?m.33436, g (?m.34208 i) ^ 2
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2
tactic: obtain h' | h' := (sum_nonneg fun _ _ ↦ sq_nonneg <| g _).eq_or_lt
state_before: case inr
ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
h' : 0 < ∑ i ∈ s, g i ^ 2
⊢ (∑ i ∈ s, f i * g i) ^ 2 ≤ (∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2
state_after: case inr
ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
h' : 0 < ∑ i ∈ s, g i ^ 2
⊢ (∑ i ∈ s, g i ^ 2) * (∑ j ∈ s, f j * g j) ^ 2 + (∑ i ∈ s, g i ^ 2) * (∑ i ∈ s, f i * g i) ^ 2 ≤
    (∑ i ∈ s, g i ^ 2) * (∑ j ∈ s, f j * g j) ^ 2 + (∑ i ∈ s, g i ^ 2) * ((∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2)
tactic: refine le_of_mul_le_mul_of_pos_left
    (le_of_add_le_add_left (a := (∑ i ∈ s, g i ^ 2) * (∑ j ∈ s, f j * g j) ^ 2) ?_) h'
state_before: case inr
ι : Type u_1
R : Type u_2
inst✝² : LinearOrderedCommSemiring R
inst✝¹ : ExistsAddOfLE R
s : Finset ι
f g : ι → R
inst✝ : Nontrivial R
h' : 0 < ∑ i ∈ s, g i ^ 2
⊢ (∑ i ∈ s, g i ^ 2) * (∑ j ∈ s, f j * g j) ^ 2 + (∑ i ∈ s, g i ^ 2) * (∑ i ∈ s, f i * g i) ^ 2 ≤
    (∑ i ∈ s, g i ^ 2) * (∑ j ∈ s, f j * g j) ^ 2 + (∑ i ∈ s, g i ^ 2) * ((∑ i ∈ s, f i ^ 2) * ∑ i ∈ s, g i ^ 2)
state_after: no goals
tactic: calc
    _ = ∑ i ∈ s, 2 * (f i * ∑ j ∈ s, g j ^ 2) * (g i * ∑ j ∈ s, f j * g j) := by
        simp_rw [mul_assoc (2 : R), mul_mul_mul_comm, ← mul_sum, ← sum_mul]; ring
    _ ≤ ∑ i ∈ s, ((f i * ∑ j ∈ s, g j ^ 2) ^ 2 + (g i * ∑ j ∈ s, f j * g j) ^ 2) :=
        sum_le_sum fun i _ ↦ two_mul_le_add_sq (f i * ∑ j ∈ s, g j ^ 2) (g i * ∑ j ∈ s, f j * g j)
    _ = _ := by simp_rw [sum_add_distrib, mul_pow, ← sum_mul]; ring
Theorem: MeasureTheory.Measure.LebesgueDecomposition.zero_mem_measurableLE
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
A : Set α
x✝ : MeasurableSet A
⊢ ∫⁻ (x : α) in A, 0 x ∂μ ≤ ν A
state_after: no goals
tactic: simp
Theorem: AlgebraicTopology.karoubi_alternatingFaceMapComplex_d
File: Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
P : Karoubi (SimplicialObject C)
n : ℕ
⊢ ((AlternatingFaceMapComplex.obj (KaroubiFunctorCategoryEmbedding.obj P)).d (n + 1) n).f =
    P.p.app (op [n + 1]) ≫ (AlternatingFaceMapComplex.obj P.X).d (n + 1) n
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
P : Karoubi (SimplicialObject C)
n : ℕ
⊢ ∑ x : Fin (n + 2), (-1) ^ ↑x • (SimplicialObject.δ (KaroubiFunctorCategoryEmbedding.obj P) x).f =
    ∑ x : Fin (n + 2), (-1) ^ ↑x • P.p.app (op [n + 1]) ≫ P.X.δ x
tactic: simp only [AlternatingFaceMapComplex.obj_d_eq, Karoubi.sum_hom, Preadditive.comp_sum,
    Karoubi.zsmul_hom, Preadditive.comp_zsmul]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
P : Karoubi (SimplicialObject C)
n : ℕ
⊢ ∑ x : Fin (n + 2), (-1) ^ ↑x • (SimplicialObject.δ (KaroubiFunctorCategoryEmbedding.obj P) x).f =
    ∑ x : Fin (n + 2), (-1) ^ ↑x • P.p.app (op [n + 1]) ≫ P.X.δ x
state_after: no goals
tactic: rfl
Theorem: continuous_le_dom
File: Mathlib/Topology/Order.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t₁ t₂ : TopologicalSpace α
t₃ : TopologicalSpace β
h₁ : t₂ ≤ t₁
h₂ : Continuous f
⊢ Continuous f
state_after: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t₁ t₂ : TopologicalSpace α
t₃ : TopologicalSpace β
h₁ : t₂ ≤ t₁
h₂ : t₁ ≤ induced f t₃
⊢ t₂ ≤ induced f t₃
tactic: rw [continuous_iff_le_induced] at h₂ ⊢
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t₁ t₂ : TopologicalSpace α
t₃ : TopologicalSpace β
h₁ : t₂ ≤ t₁
h₂ : t₁ ≤ induced f t₃
⊢ t₂ ≤ induced f t₃
state_after: no goals
tactic: exact le_trans h₁ h₂
Theorem: Matroid.Base.basis_of_subset
File: Mathlib/Data/Matroid/Basic.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
B I J X Y : Set α
e : α
hX : autoParam (X ⊆ M.E) _auto✝
hB : M.Base B
hBX : B ⊆ X
⊢ M.Basis B X
state_after: α : Type u_1
M : Matroid α
B I J X Y : Set α
e : α
hX : autoParam (X ⊆ M.E) _auto✝
hB : M.Base B
hBX : B ⊆ X
⊢ ∀ (J : Set α), M.Indep J → B ⊆ J → J ⊆ X → B = J
tactic: rw [basis_iff, and_iff_right hB.indep, and_iff_right hBX]
state_before: α : Type u_1
M : Matroid α
B I J X Y : Set α
e : α
hX : autoParam (X ⊆ M.E) _auto✝
hB : M.Base B
hBX : B ⊆ X
⊢ ∀ (J : Set α), M.Indep J → B ⊆ J → J ⊆ X → B = J
state_after: no goals
tactic: exact fun J hJ hBJ _ ↦ hB.eq_of_subset_indep hJ hBJ
Theorem: denseRange_subtype_val
File: Mathlib/Topology/Basic.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f✝¹ : X → Y
s✝ : Set X
x : X
y : Y
α : Type u_4
ι : Type u_5
f✝ : α → X
g : X → Y
f : α → X
s : Set X
p : X → Prop
⊢ DenseRange Subtype.val ↔ Dense {x | p x}
state_after: no goals
tactic: simp [DenseRange]
Theorem: CategoryTheory.Abelian.tfae_epi
File: Mathlib/CategoryTheory/Abelian/Exact.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
state_after: case tfae_2_to_1
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
⊢ cokernel.π f = 0 → Epi f

C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
tactic: tfae_have 2 → 1
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
state_after: case tfae_1_to_2
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
⊢ Epi f → cokernel.π f = 0

C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
tfae_1_to_2 : Epi f → cokernel.π f = 0
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
tactic: tfae_have 1 → 2
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
tfae_1_to_2 : Epi f → cokernel.π f = 0
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
state_after: case tfae_3_iff_1
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
tfae_1_to_2 : Epi f → cokernel.π f = 0
⊢ (ShortComplex.mk f 0 ⋯).Exact ↔ Epi f

C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
tfae_1_to_2 : Epi f → cokernel.π f = 0
tfae_3_iff_1 : (ShortComplex.mk f 0 ⋯).Exact ↔ Epi f
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
tactic: tfae_have 3 ↔ 1
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
Z : C
tfae_2_to_1 : cokernel.π f = 0 → Epi f
tfae_1_to_2 : Epi f → cokernel.π f = 0
tfae_3_iff_1 : (ShortComplex.mk f 0 ⋯).Exact ↔ Epi f
⊢ [Epi f, cokernel.π f = 0, (ShortComplex.mk f 0 ⋯).Exact].TFAE
state_after: no goals
tactic: tfae_finish
Theorem: Polynomial.X_pow_sub_one_dvd_prod_cyclotomic
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
n m : ℕ
hpos : 0 < n
hm : m ∣ n
hdiff : m ≠ n
⊢ X ^ m - 1 ∣ ∏ i ∈ n.properDivisors, cyclotomic i R
state_after: R : Type u_1
inst✝ : CommRing R
n m : ℕ
hpos : 0 < n
hdiff : m ≠ n
hm : m ∈ n.properDivisors
⊢ X ^ m - 1 ∣ ∏ i ∈ n.properDivisors, cyclotomic i R
tactic: replace hm := Nat.mem_properDivisors.2
    ⟨hm, lt_of_le_of_ne (Nat.divisor_le (Nat.mem_divisors.2 ⟨hm, hpos.ne'⟩)) hdiff⟩
state_before: R : Type u_1
inst✝ : CommRing R
n m : ℕ
hpos : 0 < n
hdiff : m ≠ n
hm : m ∈ n.properDivisors
⊢ X ^ m - 1 ∣ ∏ i ∈ n.properDivisors, cyclotomic i R
state_after: R : Type u_1
inst✝ : CommRing R
n m : ℕ
hpos : 0 < n
hdiff : m ≠ n
hm : m ∈ n.properDivisors
⊢ X ^ m - 1 ∣ (∏ x ∈ n.properDivisors \ m.divisors, cyclotomic x R) * (X ^ m - 1)
tactic: rw [← Finset.sdiff_union_of_subset (Nat.divisors_subset_properDivisors (ne_of_lt hpos).symm
    (Nat.mem_properDivisors.1 hm).1 (ne_of_lt (Nat.mem_properDivisors.1 hm).2)),
    Finset.prod_union Finset.sdiff_disjoint,
    prod_cyclotomic_eq_X_pow_sub_one (Nat.pos_of_mem_properDivisors hm)]
state_before: R : Type u_1
inst✝ : CommRing R
n m : ℕ
hpos : 0 < n
hdiff : m ≠ n
hm : m ∈ n.properDivisors
⊢ X ^ m - 1 ∣ (∏ x ∈ n.properDivisors \ m.divisors, cyclotomic x R) * (X ^ m - 1)
state_after: no goals
tactic: exact ⟨∏ x ∈ n.properDivisors \ m.divisors, cyclotomic x R, by rw [mul_comm]⟩
Theorem: Finsupp.indicator_injective
File: Mathlib/Data/Finsupp/Indicator.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i : ι
⊢ Injective fun f => indicator s f
state_after: ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
⊢ a = b
tactic: intro a b h
state_before: ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
⊢ a = b
state_after: case h.h
ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i✝ : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
i : ι
hi : i ∈ s
⊢ a i hi = b i hi
tactic: ext i hi
state_before: case h.h
ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i✝ : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
i : ι
hi : i ∈ s
⊢ a i hi = b i hi
state_after: case h.h
ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i✝ : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
i : ι
hi : i ∈ s
⊢ (indicator s a) i = (indicator s b) i
tactic: rw [← indicator_of_mem hi a, ← indicator_of_mem hi b]
state_before: case h.h
ι : Type u_1
α : Type u_2
inst✝ : Zero α
s : Finset ι
f : (i : ι) → i ∈ s → α
i✝ : ι
a b : (i : ι) → i ∈ s → α
h : (fun f => indicator s f) a = (fun f => indicator s f) b
i : ι
hi : i ∈ s
⊢ (indicator s a) i = (indicator s b) i
state_after: no goals
tactic: exact DFunLike.congr_fun h i