ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Submodule.mem_orthogonal_singleton_iff_inner_right
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
⊢ v ∈ (span 𝕜 {u})ᗮ ↔ ⟪u, v⟫_𝕜 = 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
⊢ ⟪u, v⟫_𝕜 = 0 → v ∈ (span 𝕜 {u})ᗮ
tactic: refine ⟨inner_right_of_mem_orthogonal (mem_span_singleton_self u), ?_⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
⊢ ⟪u, v⟫_𝕜 = 0 → v ∈ (span 𝕜 {u})ᗮ
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
w : E
hw : w ∈ span 𝕜 {u}
⊢ ⟪w, v⟫_𝕜 = 0
tactic: intro hv w hw
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
w : E
hw : w ∈ span 𝕜 {u}
⊢ ⟪w, v⟫_𝕜 = 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
w : E
hw : ∃ a, a • u = w
⊢ ⟪w, v⟫_𝕜 = 0
tactic: rw [mem_span_singleton] at hw
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
w : E
hw : ∃ a, a • u = w
⊢ ⟪w, v⟫_𝕜 = 0
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
c : 𝕜
⊢ ⟪c • u, v⟫_𝕜 = 0
tactic: obtain ⟨c, rfl⟩ := hw
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
u v : E
hv : ⟪u, v⟫_𝕜 = 0
c : 𝕜
⊢ ⟪c • u, v⟫_𝕜 = 0
state_after: no goals
tactic: simp [inner_smul_left, hv]
Theorem: Mathlib.Tactic.NoncommRing.mul_nat_lit_eq_nsmul
File: Mathlib/Tactic/NoncommRing.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
r : R
n : ℕ
inst✝ : n.AtLeastTwo
⊢ r * OfNat.ofNat n = n • r
state_after: no goals
tactic: simp only [nsmul_eq_mul', Nat.cast_eq_ofNat]
Theorem: DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
File: Mathlib/Algebra/Module/GradedModule.lean

Proof steps:
state_before: ιA : Type u_1
ιB : Type u_2
A : ιA → Type u_3
M : ιB → Type u_4
inst✝⁷ : AddMonoid ιA
inst✝⁶ : VAdd ιA ιB
inst✝⁵ : (i : ιA) → AddCommMonoid (A i)
inst✝⁴ : (i : ιB) → AddCommMonoid (M i)
inst✝³ : DecidableEq ιA
inst✝² : DecidableEq ιB
inst✝¹ : GMonoid A
inst✝ : Gmodule A M
i : ιA
j : ιB
x : A i
y : M j
⊢ ((smulAddMonoidHom A M) ((of A i) x)) ((of M j) y) = (of M (i +ᵥ j)) (GSMul.smul x y)
state_after: no goals
tactic: simp [smulAddMonoidHom]
Theorem: Filter.tendsto_iff_ptendsto
File: Mathlib/Order/Filter/Partial.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
l₁ : Filter α
l₂ : Filter β
s : Set α
f : α → β
⊢ Tendsto f (l₁ ⊓ 𝓟 s) l₂ ↔ PTendsto (PFun.res f s) l₁ l₂
state_after: no goals
tactic: simp only [Tendsto, PTendsto, pmap_res]
Theorem: ContinuousLinearMap.range_eq_map_coprodSubtypeLEquivOfIsCompl
File: Mathlib/Analysis/Normed/Operator/Banach.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁵ : NontriviallyNormedField 𝕜
inst✝¹⁴ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝¹³ : RingHomInvPair σ σ'
inst✝¹² : RingHomInvPair σ' σ
inst✝¹¹ : RingHomIsometric σ
inst✝¹⁰ : RingHomIsometric σ'
E : Type u_3
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
F✝ : Type u_4
inst✝⁷ : NormedAddCommGroup F✝
inst✝⁶ : NormedSpace 𝕜' F✝
f✝ : E →SL[σ] F✝
inst✝⁵ : CompleteSpace F✝
inst✝⁴ : CompleteSpace E
F : Type u_5
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : CompleteSpace F
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
inst✝ : CompleteSpace ↥G
hker : LinearMap.ker f = ⊥
⊢ LinearMap.range f = Submodule.map (↑↑(f.coprodSubtypeLEquivOfIsCompl h hker)) (⊤.prod ⊥)
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁵ : NontriviallyNormedField 𝕜
inst✝¹⁴ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝¹³ : RingHomInvPair σ σ'
inst✝¹² : RingHomInvPair σ' σ
inst✝¹¹ : RingHomIsometric σ
inst✝¹⁰ : RingHomIsometric σ'
E : Type u_3
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
F✝ : Type u_4
inst✝⁷ : NormedAddCommGroup F✝
inst✝⁶ : NormedSpace 𝕜' F✝
f✝ : E →SL[σ] F✝
inst✝⁵ : CompleteSpace F✝
inst✝⁴ : CompleteSpace E
F : Type u_5
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : CompleteSpace F
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
inst✝ : CompleteSpace ↥G
hker : LinearMap.ker f = ⊥
⊢ LinearMap.range f = LinearMap.range ↑f
tactic: rw [coprodSubtypeLEquivOfIsCompl, ContinuousLinearEquiv.coe_ofBijective,
    coe_coprod, LinearMap.coprod_map_prod, Submodule.map_bot, sup_bot_eq, Submodule.map_top]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹⁵ : NontriviallyNormedField 𝕜
inst✝¹⁴ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝¹³ : RingHomInvPair σ σ'
inst✝¹² : RingHomInvPair σ' σ
inst✝¹¹ : RingHomIsometric σ
inst✝¹⁰ : RingHomIsometric σ'
E : Type u_3
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
F✝ : Type u_4
inst✝⁷ : NormedAddCommGroup F✝
inst✝⁶ : NormedSpace 𝕜' F✝
f✝ : E →SL[σ] F✝
inst✝⁵ : CompleteSpace F✝
inst✝⁴ : CompleteSpace E
F : Type u_5
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : CompleteSpace F
f : E →L[𝕜] F
G : Submodule 𝕜 F
h : IsCompl (LinearMap.range f) G
inst✝ : CompleteSpace ↥G
hker : LinearMap.ker f = ⊥
⊢ LinearMap.range f = LinearMap.range ↑f
state_after: no goals
tactic: rfl
Theorem: MeasureTheory.SimpleFunc.norm_setToSimpleFunc_le_sum_opNorm
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
m : MeasurableSpace α
T : Set α → F' →L[ℝ] F
f : α →ₛ F'
⊢ ∑ x ∈ f.range, ‖(T (↑f ⁻¹' {x})) x‖ ≤ ∑ x ∈ f.range, ‖T (↑f ⁻¹' {x})‖ * ‖x‖
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
m : MeasurableSpace α
T : Set α → F' →L[ℝ] F
f : α →ₛ F'
b : F'
x✝ : b ∈ f.range
⊢ ‖(T (↑f ⁻¹' {b})) b‖ ≤ ‖T (↑f ⁻¹' {b})‖ * ‖b‖
tactic: refine Finset.sum_le_sum fun b _ => ?_
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m✝ : MeasurableSpace α
μ : Measure α
m : MeasurableSpace α
T : Set α → F' →L[ℝ] F
f : α →ₛ F'
b : F'
x✝ : b ∈ f.range
⊢ ‖(T (↑f ⁻¹' {b})) b‖ ≤ ‖T (↑f ⁻¹' {b})‖ * ‖b‖
state_after: no goals
tactic: simp_rw [ContinuousLinearMap.le_opNorm]
Theorem: mul_inv_lt_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : 0 < b
⊢ a * b⁻¹ < c ↔ a < b * c
state_after: no goals
tactic: rw [mul_comm, inv_mul_lt_iff h]
Theorem: CategoryTheory.Limits.MulticospanIndex.toPiForkFunctor_obj
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
K₁ K₂ : Multifork I
f : K₁ ⟶ K₂
⊢ ∀ (j : WalkingParallelPair), f.hom ≫ K₂.toPiFork.π.app j = K₁.toPiFork.π.app j
state_after: case zero
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
K₁ K₂ : Multifork I
f : K₁ ⟶ K₂
⊢ f.hom ≫ K₂.toPiFork.π.app WalkingParallelPair.zero = K₁.toPiFork.π.app WalkingParallelPair.zero

case one
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
K₁ K₂ : Multifork I
f : K₁ ⟶ K₂
⊢ f.hom ≫ K₂.toPiFork.π.app WalkingParallelPair.one = K₁.toPiFork.π.app WalkingParallelPair.one
tactic: rintro (_ | _)
Theorem: MvPolynomial.degrees_monomial
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

Proof steps:
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : σ →₀ ℕ
a : R
⊢ ((monomial s) a).degrees ≤ toMultiset s
state_after: no goals
tactic: classical
    refine (supDegree_single s a).trans_le ?_
    split_ifs
    exacts [bot_le, le_rfl]
Theorem: CategoryTheory.Adjunction.rightAdjointUniq_trans_app
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    (adj1.rightAdjointUniq adj3).hom.app x
state_after: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    ((adj1.rightAdjointUniq adj2).hom ≫ (adj2.rightAdjointUniq adj3).hom).app x
tactic: rw [← rightAdjointUniq_trans adj1 adj2 adj3]
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' G'' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
adj3 : F ⊣ G''
x : D
⊢ (adj1.rightAdjointUniq adj2).hom.app x ≫ (adj2.rightAdjointUniq adj3).hom.app x =
    ((adj1.rightAdjointUniq adj2).hom ≫ (adj2.rightAdjointUniq adj3).hom).app x
state_after: no goals
tactic: rfl
Theorem: dite_prop_iff_or
File: Mathlib/Logic/Basic.lean

Proof steps:
state_before: α : Sort u_1
σ : α → Sort u_2
P Q✝ R✝ : Prop
inst✝² : Decidable P
inst✝¹ : Decidable Q✝
a b c : α
A : P → α
B : ¬P → α
Q : P → Prop
R : ¬P → Prop
inst✝ : Decidable P
⊢ dite P Q R ↔ (∃ p, Q p) ∨ ∃ p, R p
state_after: no goals
tactic: by_cases h : P <;> simp [h, exists_prop_of_false, exists_prop_of_true]
Theorem: Stream'.WSeq.bind_assoc
File: Mathlib/Data/Seq/WSeq.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (s.bind f).bind g ~ʷ s.bind fun x => (f x).bind g
state_after: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g) (map f s)).join.join ~ʷ (map (fun x => (map g (f x)).join) s).join
tactic: simp only [bind, map_join]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g) (map f s)).join.join ~ʷ (map (fun x => (map g (f x)).join) s).join
state_after: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g ∘ f) s).join.join ~ʷ (map join (map (map g ∘ f) s)).join
tactic: erw [← map_comp f (map g), map_comp (map g ∘ f) join]
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
f : α → WSeq β
g : β → WSeq γ
⊢ (map (map g ∘ f) s).join.join ~ʷ (map join (map (map g ∘ f) s)).join
state_after: no goals
tactic: apply join_join
Theorem: Matroid.setOf_indep_eq
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 | M.Indep I} = ↑(lowerClosure {B | M.Base B})
state_after: α : Type u_1
M✝ : Matroid α
B B' I J D X : Set α
e f : α
M : Matroid α
⊢ {I | ∃ B, M.Base B ∧ I ⊆ B} = ↑(lowerClosure {B | M.Base B})
tactic: simp_rw [indep_iff]
state_before: α : Type u_1
M✝ : Matroid α
B B' I J D X : Set α
e f : α
M : Matroid α
⊢ {I | ∃ B, M.Base B ∧ I ⊆ B} = ↑(lowerClosure {B | M.Base B})
state_after: no goals
tactic: rfl
Theorem: lie_lie
File: Mathlib/Algebra/Lie/Basic.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
N : 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
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
t : R
x y z : L
m n : M
⊢ ⁅⁅x, y⁆, m⁆ = ⁅x, ⁅y, m⁆⁆ - ⁅y, ⁅x, m⁆⁆
state_after: no goals
tactic: rw [leibniz_lie, add_sub_cancel_right]
Theorem: nndist_div_right
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

Proof steps:
state_before: M : Type u
G : Type v
X : Type w
inst✝² : DivInvMonoid M
inst✝¹ : PseudoMetricSpace M
inst✝ : IsometricSMul Mᵐᵒᵖ M
a b c : M
⊢ nndist (a / c) (b / c) = nndist a b
state_after: no goals
tactic: simp only [div_eq_mul_inv, nndist_mul_right]
Theorem: ZeroAtInftyContinuousMap.isClosed_range_toBCF
File: Mathlib/Topology/ContinuousFunction/ZeroAtInfty.lean

Proof steps:
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f g : α →C₀ β
⊢ IsClosed (range toBCF)
state_after: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ClusterPt f (𝓟 (range toBCF))
⊢ f ∈ range toBCF
tactic: refine isClosed_iff_clusterPt.mpr fun f hf => ?_
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ClusterPt f (𝓟 (range toBCF))
⊢ f ∈ range toBCF
state_after: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ∀ U ∈ 𝓝 f, (U ∩ range toBCF).Nonempty
⊢ f ∈ range toBCF
tactic: rw [clusterPt_principal_iff] at hf
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ∀ U ∈ 𝓝 f, (U ∩ range toBCF).Nonempty
⊢ f ∈ range toBCF
state_after: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ∀ U ∈ 𝓝 f, (U ∩ range toBCF).Nonempty
this : Tendsto (⇑f) (cocompact α) (𝓝 0)
⊢ f ∈ range toBCF
tactic: have : Tendsto f (cocompact α) (𝓝 0) := by
    refine Metric.tendsto_nhds.mpr fun ε hε => ?_
    obtain ⟨_, hg, g, rfl⟩ := hf (ball f (ε / 2)) (ball_mem_nhds f <| half_pos hε)
    refine (Metric.tendsto_nhds.mp (zero_at_infty g) (ε / 2) (half_pos hε)).mp
      (eventually_of_forall fun x hx => ?_)
    calc
      dist (f x) 0 ≤ dist (g.toBCF x) (f x) + dist (g x) 0 := dist_triangle_left _ _ _
      _ < dist g.toBCF f + ε / 2 := add_lt_add_of_le_of_lt (dist_coe_le_dist x) hx
      _ < ε := by simpa [add_halves ε] using add_lt_add_right (mem_ball.1 hg) (ε / 2)
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : PseudoMetricSpace β
inst✝² : Zero β
inst✝¹ : FunLike F α β
inst✝ : ZeroAtInftyContinuousMapClass F α β
C : ℝ
f✝ g : α →C₀ β
f : α →ᵇ β
hf : ∀ U ∈ 𝓝 f, (U ∩ range toBCF).Nonempty
this : Tendsto (⇑f) (cocompact α) (𝓝 0)
⊢ f ∈ range toBCF
state_after: no goals
tactic: exact ⟨⟨f.toContinuousMap, this⟩, rfl⟩
Theorem: DFinsupp.mapRange_add
File: Mathlib/Data/DFinsupp/Basic.lean

Proof steps:
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
hf' : ∀ (i : ι) (x y : β₁ i), f i (x + y) = f i x + f i y
g₁ g₂ : Π₀ (i : ι), β₁ i
⊢ mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂
state_after: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
hf' : ∀ (i : ι) (x y : β₁ i), f i (x + y) = f i x + f i y
g₁ g₂ : Π₀ (i : ι), β₁ i
i✝ : ι
⊢ (mapRange f hf (g₁ + g₂)) i✝ = (mapRange f hf g₁ + mapRange f hf g₂) i✝
tactic: ext
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝³ : DecidableEq ι
inst✝² : (i : ι) → AddZeroClass (β i)
inst✝¹ : (i : ι) → AddZeroClass (β₁ i)
inst✝ : (i : ι) → AddZeroClass (β₂ i)
f : (i : ι) → β₁ i → β₂ i
hf : ∀ (i : ι), f i 0 = 0
hf' : ∀ (i : ι) (x y : β₁ i), f i (x + y) = f i x + f i y
g₁ g₂ : Π₀ (i : ι), β₁ i
i✝ : ι
⊢ (mapRange f hf (g₁ + g₂)) i✝ = (mapRange f hf g₁ + mapRange f hf g₂) i✝
state_after: no goals
tactic: simp only [mapRange_apply f, coe_add, Pi.add_apply, hf']
Theorem: Cardinal.cantorFunctionAux_true
File: Mathlib/Data/Real/Cardinality.lean

Proof steps:
state_before: c : ℝ
f g : ℕ → Bool
n : ℕ
h : f n = true
⊢ cantorFunctionAux c f n = c ^ n
state_after: no goals
tactic: simp [cantorFunctionAux, h]
Theorem: mem_of_mem_measurableAtom
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace β
x y : β
h : y ∈ measurableAtom x
s : Set β
hs : MeasurableSet s
hxs : x ∈ s
⊢ y ∈ s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace β
x y : β
s : Set β
hs : MeasurableSet s
hxs : x ∈ s
h : ∀ (i : Set β), x ∈ i → MeasurableSet i → y ∈ i
⊢ y ∈ s
tactic: simp only [measurableAtom, mem_iInter] at h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace β
x y : β
s : Set β
hs : MeasurableSet s
hxs : x ∈ s
h : ∀ (i : Set β), x ∈ i → MeasurableSet i → y ∈ i
⊢ y ∈ s
state_after: no goals
tactic: exact h s hxs hs
Theorem: riemannZeta_zero
File: Mathlib/NumberTheory/LSeries/RiemannZeta.lean

Proof steps:
state_before: ⊢ riemannZeta 0 = -1 / 2
state_after: no goals
tactic: simp_rw [riemannZeta, hurwitzZetaEven, Function.update_same, if_true]
Theorem: CategoryTheory.Limits.MonoCoprod.mono_inl_iff
File: Mathlib/CategoryTheory/Limits/MonoCoprod.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
⊢ Mono c₁.inl ↔ Mono c₂.inl
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
⊢ ∀ (c₁ c₂ : BinaryCofan A B), IsColimit c₁ → IsColimit c₂ → Mono c₁.inl → Mono c₂.inl
tactic: suffices
    ∀ (c₁ c₂ : BinaryCofan A B) (_ : IsColimit c₁) (_ : IsColimit c₂) (_ : Mono c₁.inl),
      Mono c₂.inl
    by exact ⟨fun h₁ => this _ _ hc₁ hc₂ h₁, fun h₂ => this _ _ hc₂ hc₁ h₂⟩
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
⊢ ∀ (c₁ c₂ : BinaryCofan A B), IsColimit c₁ → IsColimit c₂ → Mono c₁.inl → Mono c₂.inl
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁✝ c₂✝ : BinaryCofan A B
hc₁✝ : IsColimit c₁✝
hc₂✝ : IsColimit c₂✝
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
⊢ Mono c₁.inl → Mono c₂.inl
tactic: intro c₁ c₂ hc₁ hc₂
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁✝ c₂✝ : BinaryCofan A B
hc₁✝ : IsColimit c₁✝
hc₂✝ : IsColimit c₂✝
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
⊢ Mono c₁.inl → Mono c₂.inl
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁✝ c₂✝ : BinaryCofan A B
hc₁✝ : IsColimit c₁✝
hc₂✝ : IsColimit c₂✝
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
x✝ : Mono c₁.inl
⊢ Mono c₂.inl
tactic: intro
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
A B : C
c₁✝ c₂✝ : BinaryCofan A B
hc₁✝ : IsColimit c₁✝
hc₂✝ : IsColimit c₂✝
c₁ c₂ : BinaryCofan A B
hc₁ : IsColimit c₁
hc₂ : IsColimit c₂
x✝ : Mono c₁.inl
⊢ Mono c₂.inl
state_after: no goals
tactic: simpa only [IsColimit.comp_coconePointUniqueUpToIso_hom] using
    mono_comp c₁.inl (hc₁.coconePointUniqueUpToIso hc₂).hom
Theorem: CompleteOrthogonalIdempotents.equiv
File: Mathlib/RingTheory/Idempotents.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
inst✝³ : Ring R
inst✝² : Ring S
f : R →+* S
I : Type u_3
e : I → R
he✝ : OrthogonalIdempotents e
inst✝¹ : Fintype I
he : CompleteOrthogonalIdempotents e
J : Type u_4
inst✝ : Fintype J
i : J ≃ I
⊢ CompleteOrthogonalIdempotents (e ∘ ⇑i) ↔ CompleteOrthogonalIdempotents e
state_after: no goals
tactic: simp only [completeOrthogonalIdempotents_iff, OrthogonalIdempotents.equiv, Function.comp_apply,
    and_congr_right_iff, Fintype.sum_equiv i _ e (fun _ ↦ rfl)]
Theorem: HurwitzZeta.hasSum_int_hurwitzZetaEven
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

Proof steps:
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => 1 / ↑|↑n + a| ^ s / 2) (hurwitzZetaEven (↑a) s)
state_after: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => 1 / ↑|↑n + a| ^ s / 2) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
tactic: rw [hurwitzZetaEven, Function.update_noteq (ne_zero_of_one_lt_re hs)]
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => 1 / ↑|↑n + a| ^ s / 2) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
state_after: a : ℝ
s : ℂ
hs : 1 < s.re
this : HasSum (fun i => s.Gammaℝ / ↑|↑i + a| ^ s / 2 / s.Gammaℝ) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
⊢ HasSum (fun n => 1 / ↑|↑n + a| ^ s / 2) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
tactic: have := (hasSum_int_completedHurwitzZetaEven a hs).div_const (Gammaℝ s)
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
this : HasSum (fun i => s.Gammaℝ / ↑|↑i + a| ^ s / 2 / s.Gammaℝ) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
⊢ HasSum (fun n => 1 / ↑|↑n + a| ^ s / 2) (completedHurwitzZetaEven (↑a) s / s.Gammaℝ)
state_after: no goals
tactic: exact this.congr_fun fun n ↦ by simp only [div_right_comm _ _ (Gammaℝ _),
    div_self (Gammaℝ_ne_zero_of_re_pos (zero_lt_one.trans hs))]
Theorem: groupCohomology.resolution.d_of
File: Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean

Proof steps:
state_before: k G✝ : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G✝
G : Type u
n : ℕ
c : Fin (n + 1) → G
⊢ (d k G n) (Finsupp.single c 1) = ∑ p : Fin (n + 1), Finsupp.single (c ∘ p.succAbove) ((-1) ^ ↑p)
state_after: no goals
tactic: simp [d]