ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Ordinal.le_mex_of_forall
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
a : Ordinal.{max u v}
H : ∀ b < a, ∃ i, f i = b
⊢ a ≤ mex f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
a : Ordinal.{max u v}
H : ∀ b < a, ∃ i, f i = b
h : mex f < a
⊢ False
tactic: by_contra! h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
a : Ordinal.{max u v}
H : ∀ b < a, ∃ i, f i = b
h : mex f < a
⊢ False
state_after: no goals
tactic: exact mex_not_mem_range f (H _ h)
Theorem: MeasureTheory.average_mem_openSegment_compl_self
File: Mathlib/MeasureTheory/Integral/Average.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ ν : Measure α
s✝ t : Set α
f✝ g : α → E
inst✝ : IsFiniteMeasure μ
f : α → E
s : Set α
hs : NullMeasurableSet s μ
hs₀ : μ s ≠ 0
hsc₀ : μ sᶜ ≠ 0
hfi : Integrable f μ
⊢ ⨍ (x : α), f x ∂μ ∈ openSegment ℝ (⨍ (x : α) in s, f x ∂μ) (⨍ (x : α) in sᶜ, f x ∂μ)
state_after: no goals
tactic: simpa only [union_compl_self, restrict_univ] using
    average_union_mem_openSegment aedisjoint_compl_right hs.compl hs₀ hsc₀ (measure_ne_top _ _)
      (measure_ne_top _ _) hfi.integrableOn hfi.integrableOn
Theorem: ContinuousMultilinearMap.domDomCongrEquiv_apply
File: Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean

Proof steps:
state_before: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝¹⁸ : Semiring R
inst✝¹⁷ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁶ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁵ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : AddCommMonoid M₃
inst✝¹² : AddCommMonoid M₄
inst✝¹¹ : (i : Fin n.succ) → Module R (M i)
inst✝¹⁰ : (i : ι) → Module R (M₁ i)
inst✝⁹ : (i : ι) → Module R (M₁' i)
inst✝⁸ : Module R M₂
inst✝⁷ : Module R M₃
inst✝⁶ : Module R M₄
inst✝⁵ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁴ : (i : ι) → TopologicalSpace (M₁ i)
inst✝³ : (i : ι) → TopologicalSpace (M₁' i)
inst✝² : TopologicalSpace M₂
inst✝¹ : TopologicalSpace M₃
inst✝ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
ι' : Type u_1
e : ι ≃ ι'
x✝¹ : ContinuousMultilinearMap R (fun x => M₂) M₃
x✝ : ι → M₂
⊢ (domDomCongr e.symm (domDomCongr e x✝¹)) x✝ = x✝¹ x✝
state_after: no goals
tactic: simp
state_before: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝¹⁸ : Semiring R
inst✝¹⁷ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁶ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁵ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : AddCommMonoid M₃
inst✝¹² : AddCommMonoid M₄
inst✝¹¹ : (i : Fin n.succ) → Module R (M i)
inst✝¹⁰ : (i : ι) → Module R (M₁ i)
inst✝⁹ : (i : ι) → Module R (M₁' i)
inst✝⁸ : Module R M₂
inst✝⁷ : Module R M₃
inst✝⁶ : Module R M₄
inst✝⁵ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁴ : (i : ι) → TopologicalSpace (M₁ i)
inst✝³ : (i : ι) → TopologicalSpace (M₁' i)
inst✝² : TopologicalSpace M₂
inst✝¹ : TopologicalSpace M₃
inst✝ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
ι' : Type u_1
e : ι ≃ ι'
x✝¹ : ContinuousMultilinearMap R (fun x => M₂) M₃
x✝ : ι' → M₂
⊢ (domDomCongr e (domDomCongr e.symm x✝¹)) x✝ = x✝¹ x✝
state_after: no goals
tactic: simp
Theorem: Matrix.charpoly_coeff_eq_prod_coeff_of_le
File: Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean

Proof steps:
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ M.charpoly.coeff k = (∏ i : n, (X - C (M i i))).coeff k
state_after: case h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ M.charpoly.coeff k - (∏ i : n, (X - C (M i i))).coeff k = 0
tactic: apply eq_of_sub_eq_zero
state_before: case h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ M.charpoly.coeff k - (∏ i : n, (X - C (M i i))).coeff k = 0
state_after: case h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ (M.charpoly - ∏ i : n, (X - C (M i i))).coeff k = 0
tactic: rw [← coeff_sub]
state_before: case h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ (M.charpoly - ∏ i : n, (X - C (M i i))).coeff k = 0
state_after: case h.h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ (M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑k
tactic: apply Polynomial.coeff_eq_zero_of_degree_lt
state_before: case h.h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ (M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑k
state_after: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ ↑(Fintype.card n - 1) ≤ ↑k
tactic: apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) ?_
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ ↑(Fintype.card n - 1) ≤ ↑k
state_after: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ Fintype.card n - 1 ≤ k
tactic: rw [Nat.cast_le]
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M : Matrix n n R
k : ℕ
h : Fintype.card n - 1 ≤ k
⊢ Fintype.card n - 1 ≤ k
state_after: no goals
tactic: apply h
Theorem: cpow_eq_nhds'
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

Proof steps:
state_before: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => cexp (Complex.log x.1 * x.2)
state_after: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ ∀ᶠ (x : ℂ × ℂ) in 𝓝 p, x.1 ≠ 0
tactic: suffices ∀ᶠ x : ℂ × ℂ in 𝓝 p, x.1 ≠ 0 from
    this.mono fun x hx ↦ by
      dsimp only
      rw [cpow_def_of_ne_zero hx]
state_before: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ ∀ᶠ (x : ℂ × ℂ) in 𝓝 p, x.1 ≠ 0
state_after: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsOpen fun x => x.1 = 0 → False
tactic: refine IsOpen.eventually_mem ?_ hp_fst
state_before: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsOpen fun x => x.1 = 0 → False
state_after: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsOpen {x | x.1 = 0}ᶜ
tactic: change IsOpen { x : ℂ × ℂ | x.1 = 0 }ᶜ
state_before: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsOpen {x | x.1 = 0}ᶜ
state_after: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsClosed {x | x.1 = 0}
tactic: rw [isOpen_compl_iff]
state_before: α : Type u_1
p : ℂ × ℂ
hp_fst : p.1 ≠ 0
⊢ IsClosed {x | x.1 = 0}
state_after: no goals
tactic: exact isClosed_eq continuous_fst continuous_const
Theorem: Relation.map_apply_apply
File: Mathlib/Logic/Relation.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r✝ : α → β → Prop
f : α → γ
g : β → δ
c : γ
d : δ
hf : Injective f
hg : Injective g
r : α → β → Prop
a : α
b : β
⊢ Relation.Map r f g (f a) (g b) ↔ r a b
state_after: no goals
tactic: simp [Relation.Map, hf.eq_iff, hg.eq_iff]
Theorem: Matroid.Base.eq_exchange_of_diff_eq_singleton
File: Mathlib/Data/Matroid/Basic.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
state_after: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f (B \ {e}))
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
tactic: obtain ⟨f, hf, hb⟩ := hB.exchange hB' (h.symm.subset (mem_singleton e))
state_before: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f (B \ {e}))
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
state_after: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f (B \ {e}))
hne : f ≠ e
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
tactic: have hne : f ≠ e := by rintro rfl; exact hf.2 (h.symm.subset (mem_singleton f)).1
state_before: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f (B \ {e}))
hne : f ≠ e
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
state_after: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
tactic: rw [insert_diff_singleton_comm hne] at hb
state_before: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ ∃ f ∈ B' \ B, B' = insert f B \ {e}
state_after: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ insert f B \ {e} ⊆ B'
tactic: refine ⟨f, hf, (hb.eq_of_subset_base hB' ?_).symm⟩
state_before: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ insert f B \ {e} ⊆ B'
state_after: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ f ∈ B' ∪ {e}
tactic: rw [diff_subset_iff, insert_subset_iff, union_comm, ← diff_subset_iff, h, and_iff_left rfl.subset]
state_before: case intro.intro
α : Type u_1
M : Matroid α
B B' I J D X : Set α
e f✝ : α
hB : M.Base B
hB' : M.Base B'
h : B \ B' = {e}
f : α
hf : f ∈ B' \ B
hb : M.Base (insert f B \ {e})
hne : f ≠ e
⊢ f ∈ B' ∪ {e}
state_after: no goals
tactic: exact Or.inl hf.1
Theorem: RingHom.finitePresentation_ofLocalizationSpanTarget
File: Mathlib/RingTheory/RingHom/FinitePresentation.lean

Proof steps:
state_before: ⊢ OfLocalizationSpanTarget @FinitePresentation
state_after: ⊢ OfLocalizationFiniteSpanTarget @FinitePresentation
tactic: rw [ofLocalizationSpanTarget_iff_finite]
state_before: ⊢ OfLocalizationFiniteSpanTarget @FinitePresentation
state_after: R S : Type u_1
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
s : Finset S
hs : Ideal.span ↑s = ⊤
H : ∀ (r : { x // x ∈ s }), ((algebraMap S (Localization.Away ↑r)).comp f).FinitePresentation
⊢ f.FinitePresentation
tactic: introv R hs H
Theorem: Odd.neg_one_pow
File: Mathlib/Algebra/Ring/Parity.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Monoid α
inst✝ : HasDistribNeg α
a : α
n : ℕ
h : Odd n
⊢ (-1) ^ n = -1
state_after: no goals
tactic: rw [h.neg_pow, one_pow]
Theorem: MeasureTheory.IsStoppingTime.measurableSpace_const
File: Mathlib/Probability/Process/Stopping.lean

Proof steps:
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
⊢ ⋯.measurableSpace = ↑f i
state_after: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
⊢ MeasurableSet s ↔ MeasurableSet s
tactic: ext1 s
state_before: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
⊢ MeasurableSet s ↔ MeasurableSet s
state_after: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
⊢ (∀ (i_1 : ι), MeasurableSet (s ∩ {ω | i ≤ i_1})) ↔ MeasurableSet s
tactic: rw [IsStoppingTime.measurableSet]
state_before: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
⊢ (∀ (i_1 : ι), MeasurableSet (s ∩ {ω | i ≤ i_1})) ↔ MeasurableSet s
state_after: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
h : ∀ (i_1 : ι), MeasurableSet (s ∩ {ω | i ≤ i_1})
⊢ MeasurableSet s

case h.mpr
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : Preorder ι
f✝ : Filtration ι m
τ π : Ω → ι
f : Filtration ι m
i : ι
s : Set Ω
h : MeasurableSet s
⊢ ∀ (i_1 : ι), MeasurableSet (s ∩ {ω | i ≤ i_1})
tactic: constructor <;> intro h
Theorem: MonotoneOn.integrableOn_isCompact
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝¹² : MeasurableSpace X
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace Y
inst✝⁹ : TopologicalSpace Y
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
f g : X → E
μ : Measure X
s : Set X
inst✝⁶ : BorelSpace X
inst✝⁵ : ConditionallyCompleteLinearOrder X
inst✝⁴ : ConditionallyCompleteLinearOrder E
inst✝³ : OrderTopology X
inst✝² : OrderTopology E
inst✝¹ : SecondCountableTopology E
inst✝ : IsFiniteMeasureOnCompacts μ
hs : IsCompact s
hmono : MonotoneOn f s
⊢ IntegrableOn f s μ
state_after: case inl
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝¹² : MeasurableSpace X
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace Y
inst✝⁹ : TopologicalSpace Y
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
f g : X → E
μ : Measure X
inst✝⁶ : BorelSpace X
inst✝⁵ : ConditionallyCompleteLinearOrder X
inst✝⁴ : ConditionallyCompleteLinearOrder E
inst✝³ : OrderTopology X
inst✝² : OrderTopology E
inst✝¹ : SecondCountableTopology E
inst✝ : IsFiniteMeasureOnCompacts μ
hs : IsCompact ∅
hmono : MonotoneOn f ∅
⊢ IntegrableOn f ∅ μ

case inr
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝¹² : MeasurableSpace X
inst✝¹¹ : TopologicalSpace X
inst✝¹⁰ : MeasurableSpace Y
inst✝⁹ : TopologicalSpace Y
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
f g : X → E
μ : Measure X
s : Set X
inst✝⁶ : BorelSpace X
inst✝⁵ : ConditionallyCompleteLinearOrder X
inst✝⁴ : ConditionallyCompleteLinearOrder E
inst✝³ : OrderTopology X
inst✝² : OrderTopology E
inst✝¹ : SecondCountableTopology E
inst✝ : IsFiniteMeasureOnCompacts μ
hs : IsCompact s
hmono : MonotoneOn f s
h : s.Nonempty
⊢ IntegrableOn f s μ
tactic: obtain rfl | h := s.eq_empty_or_nonempty
Theorem: inner_re_zero_right
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x : E
⊢ re ⟪x, 0⟫_𝕜 = 0
state_after: no goals
tactic: simp only [inner_zero_right, AddMonoidHom.map_zero]
Theorem: mul_inv_eq_one
File: Mathlib/Algebra/Group/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ a * b⁻¹ = 1 ↔ a = b
state_after: no goals
tactic: rw [mul_eq_one_iff_eq_inv, inv_inv]
Theorem: Finset.support_sum_eq
File: Mathlib/Data/Finsupp/BigOperators.lean

Proof steps:
state_before: ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : (↑s).PairwiseDisjoint Finsupp.support
⊢ (s.sum id).support = s.sup Finsupp.support
state_after: no goals
tactic: classical
  suffices s.1.Pairwise (_root_.Disjoint on Finsupp.support) by
    convert Multiset.support_sum_eq s.1 this
    exact (Finset.sum_val _).symm
  obtain ⟨l, hl, hn⟩ : ∃ l : List (ι →₀ M), l.toFinset = s ∧ l.Nodup := by
    refine ⟨s.toList, ?_, Finset.nodup_toList _⟩
    simp
  subst hl
  rwa [List.toFinset_val, List.dedup_eq_self.mpr hn, Multiset.pairwise_coe_iff_pairwise, ←
    List.pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint hn]
  intro x y hxy
  exact symmetric_disjoint hxy
Theorem: UniformSpace.mem_closure_iff_ball
File: Mathlib/Topology/UniformSpace/Basic.lean

Proof steps:
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set α
x : α
⊢ x ∈ closure s ↔ ∀ {V : Set (α × α)}, V ∈ 𝓤 α → (ball x V ∩ s).Nonempty
state_after: no goals
tactic: simp [mem_closure_iff_nhds_basis' (nhds_basis_uniformity' (𝓤 α).basis_sets)]
Theorem: WeierstrassCurve.Jacobian.dblXYZ_of_Z_eq_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ W'.dblXYZ P = P x ^ 2 • ![1, 1, 0]
state_after: no goals
tactic: erw [dblXYZ, dblX_of_Z_eq_zero hP hPz, dblY_of_Z_eq_zero hP hPz, dblZ_of_Z_eq_zero hPz, smul_fin3,
    mul_one, mul_one, mul_zero]
Theorem: hasProd_le_inj
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd f a₁
hg : HasProd g a₂
⊢ a₁ ≤ a₂
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
⊢ a₁ ≤ a₂
tactic: rw [← hasProd_extend_one he] at hf
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
⊢ a₁ ≤ a₂
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
c : κ
⊢ extend e f 1 c ≤ g c
tactic: refine hasProd_le (fun c ↦ ?_) hf hg
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
c : κ
⊢ extend e f 1 c ≤ g c
state_after: case inl.intro
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
i : ι
⊢ extend e f 1 (e i) ≤ g (e i)

case inr
ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : OrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g✝ : ι → α
a a₁ a₂ : α
g : κ → α
e : ι → κ
he : Injective e
hs : ∀ c ∉ Set.range e, 1 ≤ g c
h✝ : ∀ (i : ι), f i ≤ g (e i)
hf : HasProd (extend e f 1) a₁
hg : HasProd g a₂
c : κ
h : c ∉ Set.range e
⊢ extend e f 1 c ≤ g c
tactic: obtain ⟨i, rfl⟩ | h := em (c ∈ Set.range e)
Theorem: Real.monotone_rpow_of_base_ge_one
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

Proof steps:
state_before: x y z : ℝ
n : ℕ
b : ℝ
hb : 1 ≤ b
⊢ Monotone fun x => b ^ x
state_after: case inl
x y z : ℝ
n : ℕ
b : ℝ
hb✝ : 1 ≤ b
hb : 1 < b
⊢ Monotone fun x => b ^ x

case inr
x y z : ℝ
n : ℕ
hb : 1 ≤ 1
⊢ Monotone fun x => 1 ^ x
tactic: rcases lt_or_eq_of_le hb with hb | rfl
state_before: case inl
x y z : ℝ
n : ℕ
b : ℝ
hb✝ : 1 ≤ b
hb : 1 < b
⊢ Monotone fun x => b ^ x

case inr
x y z : ℝ
n : ℕ
hb : 1 ≤ 1
⊢ Monotone fun x => 1 ^ x
state_after: case inr
x y z : ℝ
n : ℕ
hb : 1 ≤ 1
⊢ Monotone fun x => 1 ^ x
tactic: case inl => exact (strictMono_rpow_of_base_gt_one hb).monotone
state_before: case inr
x y z : ℝ
n : ℕ
hb : 1 ≤ 1
⊢ Monotone fun x => 1 ^ x
state_after: no goals
tactic: case inr => intro _ _ _; simp
Theorem: abs_sub_map_le_div
File: Mathlib/Algebra/Order/Hom/Basic.lean

Proof steps:
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✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ |f x - f y| ≤ f (x / y)
state_after: ι : 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✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f x ≤ f y + f (x / y) ∧ f y ≤ f x + f (x / y)
tactic: rw [abs_sub_le_iff, sub_le_iff_le_add', sub_le_iff_le_add']
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✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f x ≤ f y + f (x / y) ∧ f y ≤ f x + f (x / y)
state_after: no goals
tactic: exact ⟨le_map_add_map_div _ _ _, le_map_add_map_div' _ _ _⟩
Theorem: Nat.choose_eq_factorial_div_factorial
File: Mathlib/Data/Nat/Choose/Basic.lean

Proof steps:
state_before: n k : ℕ
hk : k ≤ n
⊢ n.choose k = n ! / (k ! * (n - k)!)
state_after: n k : ℕ
hk : k ≤ n
⊢ n.choose k = n.choose k * (k ! * (n - k)!) / (k ! * (n - k)!)
tactic: rw [← choose_mul_factorial_mul_factorial hk, Nat.mul_assoc]
state_before: n k : ℕ
hk : k ≤ n
⊢ n.choose k = n.choose k * (k ! * (n - k)!) / (k ! * (n - k)!)
state_after: no goals
tactic: exact (mul_div_left _ (Nat.mul_pos (factorial_pos _) (factorial_pos _))).symm
Theorem: IsBaseChange.equiv_symm_apply
File: Mathlib/RingTheory/IsTensorProduct.lean

Proof steps:
state_before: R : Type u_1
M : Type v₁
N : Type v₂
S : Type v₃
inst✝¹² : AddCommMonoid M
inst✝¹¹ : AddCommMonoid N
inst✝¹⁰ : CommSemiring R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra R S
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module S N
inst✝⁴ : IsScalarTower R S N
f : M →ₗ[R] N
h : IsBaseChange S f
P : Type u_2
Q : Type u_3
inst✝³ : AddCommMonoid P
inst✝² : Module R P
inst✝¹ : AddCommMonoid Q
inst✝ : Module S Q
m : M
⊢ h.equiv.symm (f m) = 1 ⊗ₜ[R] m
state_after: no goals
tactic: rw [h.equiv.symm_apply_eq, h.equiv_tmul, one_smul]