ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LinearMap.BilinForm.comp_id_right
File: Mathlib/LinearAlgebra/BilinearForm/Hom.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
l : M →ₗ[R] M
⊢ B.comp l id = B.compLeft l
state_after: case H
R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
l : M →ₗ[R] M
x✝ y✝ : M
⊢ ((B.comp l id) x✝) y✝ = ((B.compLeft l) x✝) y✝
tactic: ext
state_before: case H
R : Type u_1
M : Type u_2
inst✝¹⁰ : CommSemiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
R₁ : Type u_3
M₁ : Type u_4
inst✝⁷ : CommRing R₁
inst✝⁶ : AddCommGroup M₁
inst✝⁵ : Module R₁ M₁
V : Type u_5
K : Type u_6
inst✝⁴ : Field K
inst✝³ : AddCommGroup V
inst✝² : Module K V
B✝ : BilinForm R M
B₁ : BilinForm R₁ M₁
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B : BilinForm R M
l : M →ₗ[R] M
x✝ y✝ : M
⊢ ((B.comp l id) x✝) y✝ = ((B.compLeft l) x✝) y✝
state_after: no goals
tactic: rfl
Theorem: RatFunc.valuation_eq_LaurentSeries_valuation
File: Mathlib/RingTheory/LaurentSeries.lean

Proof steps:
state_before: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
⊢ (Polynomial.idealX K).valuation P = (PowerSeries.idealX K).valuation ↑P
state_after: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
⊢ ∀ (p q : K[X]),
    q ≠ 0 → (Polynomial.idealX K).valuation (RatFunc.mk p q) = (PowerSeries.idealX K).valuation ↑(RatFunc.mk p q)
tactic: refine RatFunc.induction_on' P ?_
state_before: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
⊢ ∀ (p q : K[X]),
    q ≠ 0 → (Polynomial.idealX K).valuation (RatFunc.mk p q) = (PowerSeries.idealX K).valuation ↑(RatFunc.mk p q)
state_after: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).valuation (RatFunc.mk f g) = (PowerSeries.idealX K).valuation ↑(RatFunc.mk f g)
tactic: intro f g h
state_before: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).valuation (RatFunc.mk f g) = (PowerSeries.idealX K).valuation ↑(RatFunc.mk f g)
state_after: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (PowerSeries.idealX K).valuation ↑(IsLocalization.mk' (RatFunc K) f ⟨g, ⋯⟩) =
    (Polynomial.idealX K).intValuation f / (Polynomial.idealX K).intValuation g
tactic: rw [Polynomial.valuation_of_mk K f h, RatFunc.mk_eq_mk' f h, Eq.comm]
state_before: R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (PowerSeries.idealX K).valuation ↑(IsLocalization.mk' (RatFunc K) f ⟨g, ⋯⟩) =
    (Polynomial.idealX K).intValuation f / (Polynomial.idealX K).intValuation g
state_after: case h.e'_2.h.e'_6
R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ ↑(IsLocalization.mk' (RatFunc K) f ⟨g, ⋯⟩) = IsLocalization.mk' (LaurentSeries K) ↑f ⟨↑g, ⋯⟩

case h.e'_3.h.e'_5
R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).intValuation f = (PowerSeries.idealX K).intValuation ↑f

case h.e'_3.h.e'_6
R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).intValuation g = (PowerSeries.idealX K).intValuation ↑⟨↑g, ⋯⟩
tactic: convert @valuation_of_mk' (PowerSeries K) _ _ (LaurentSeries K) _ _ _ (PowerSeries.idealX K) f
        ⟨g, mem_nonZeroDivisors_iff_ne_zero.2 <| coe_ne_zero h⟩
state_before: case h.e'_3.h.e'_5
R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).intValuation f = (PowerSeries.idealX K).intValuation ↑f

case h.e'_3.h.e'_6
R : Type u_1
K : Type u_2
inst✝ : Field K
P : RatFunc K
f g : K[X]
h : g ≠ 0
⊢ (Polynomial.idealX K).intValuation g = (PowerSeries.idealX K).intValuation ↑⟨↑g, ⋯⟩
state_after: no goals
tactic: exacts [intValuation_eq_of_coe _, intValuation_eq_of_coe _]
Theorem: Equiv.Perm.SameCycle.trans
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
p : α → Prop
x y z : α
x✝¹ : f.SameCycle x y
x✝ : f.SameCycle y z
i : ℤ
hi : (f ^ i) x = y
j : ℤ
hj : (f ^ j) y = z
⊢ (f ^ (j + i)) x = z
state_after: no goals
tactic: rw [zpow_add, mul_apply, hi, hj]
Theorem: List.nthLe_mapIdx
File: Mathlib/Data/List/Indexes.lean

Proof steps:
state_before: α : Type u
β : Type v
l : List α
f : ℕ → α → β
i : ℕ
h : i < l.length
h' : optParam (i < (mapIdx f l).length) ⋯
⊢ (mapIdx f l).nthLe i h' = f i (l.nthLe i h)
state_after: no goals
tactic: simp [mapIdx_eq_enum_map, enum_eq_zip_range]
Theorem: SchwartzMap.integrable_pow_mul
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
inst✝⁸ : _root_.RCLike 𝕜
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace ℝ D
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedSpace ℝ V
inst✝³ : NormedSpace 𝕜 V
inst✝² : MeasurableSpace D
inst✝¹ : BorelSpace D
inst✝ : SecondCountableTopology D
μ : Measure D
hμ : μ.HasTemperateGrowth
f : 𝓢(D, V)
k : ℕ
⊢ Integrable (fun x => ‖x‖ ^ k * ‖f x‖) μ
state_after: case h.e'_5.h.h.e'_6
𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
inst✝⁸ : _root_.RCLike 𝕜
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace ℝ D
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedSpace ℝ V
inst✝³ : NormedSpace 𝕜 V
inst✝² : MeasurableSpace D
inst✝¹ : BorelSpace D
inst✝ : SecondCountableTopology D
μ : Measure D
hμ : μ.HasTemperateGrowth
f : 𝓢(D, V)
k : ℕ
x : D
⊢ ‖f x‖ = ‖iteratedFDeriv ℝ 0 (⇑f) x‖
tactic: convert integrable_pow_mul_iteratedFDeriv μ f k 0 with x
state_before: case h.e'_5.h.h.e'_6
𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace ℝ F
inst✝⁸ : _root_.RCLike 𝕜
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace ℝ D
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedSpace ℝ V
inst✝³ : NormedSpace 𝕜 V
inst✝² : MeasurableSpace D
inst✝¹ : BorelSpace D
inst✝ : SecondCountableTopology D
μ : Measure D
hμ : μ.HasTemperateGrowth
f : 𝓢(D, V)
k : ℕ
x : D
⊢ ‖f x‖ = ‖iteratedFDeriv ℝ 0 (⇑f) x‖
state_after: no goals
tactic: simp
Theorem: StrongConcaveOn.strictConcaveOn
File: Mathlib/Analysis/Convex/Strong.lean

Proof steps:
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s✝ : Set E
a b m✝ : ℝ
x y : E
f✝ g : E → ℝ
s : Set E
f : E → ℝ
m n : ℝ
hf : StrongConcaveOn s m f
hm : 0 < m
r : ℝ
hr : r ≠ 0
⊢ 0 < m / 2 * r ^ 2
state_after: no goals
tactic: positivity
Theorem: Complex.sin_ofReal_im
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x✝ y : ℂ
x : ℝ
⊢ (sin ↑x).im = 0
state_after: no goals
tactic: rw [← ofReal_sin_ofReal_re, ofReal_im]
Theorem: Filter.tendsto_comp_val_Iic_atBot
File: Mathlib/Order/Filter/AtTopBot.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeInf α
a : α
f : α → β
l : Filter β
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto f atBot l
state_after: no goals
tactic: rw [← map_val_Iic_atBot a, tendsto_map'_iff, Function.comp_def]
Theorem: MeasurableEquiv.map_map_symm
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
μ : Measure α
ν : Measure β
e : α ≃ᵐ β
⊢ Measure.map (⇑e) (Measure.map (⇑e.symm) ν) = ν
state_after: no goals
tactic: simp [map_map e.measurable e.symm.measurable]
Theorem: CategoryTheory.Pretriangulated.Triangle.isZero₁_iff
File: Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean

Proof steps:
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ IsZero T.obj₁ ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.invRotate.mor₁ = 0 ∧ T.invRotate.mor₂ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
tactic: refine (isZero₂_iff _ (inv_rot_of_distTriang _ hT)).trans ?_
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.invRotate.mor₁ = 0 ∧ T.invRotate.mor₂ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ -(CategoryTheory.shiftFunctor C (-1)).map T.mor₃ ≫ (shiftFunctorCompIsoId C 1 (-1) ⋯).hom.app T.obj₁ = 0 ∧
      T.mor₁ = 0 ↔
    T.mor₁ = 0 ∧ T.mor₃ = 0
tactic: dsimp
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ -(CategoryTheory.shiftFunctor C (-1)).map T.mor₃ ≫ (shiftFunctorCompIsoId C 1 (-1) ⋯).hom.app T.obj₁ = 0 ∧
      T.mor₁ = 0 ↔
    T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.mor₃ = 0 ∧ T.mor₁ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
tactic: simp only [neg_eq_zero, IsIso.comp_right_eq_zero, Functor.map_eq_zero_iff]
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.mor₃ = 0 ∧ T.mor₁ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: no goals
tactic: tauto
Theorem: SimpleGraph.Walk.toSubgraph_map
File: Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean

Proof steps:
state_before: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v w : V
f : G →g G'
p : G.Walk u v
⊢ (Walk.map f p).toSubgraph = Subgraph.map f p.toSubgraph
state_after: no goals
tactic: induction p <;> simp [*, Subgraph.map_sup]
Theorem: Real.log_lt_sub_one_of_pos
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

Proof steps:
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
⊢ log x < x - 1
state_after: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
h : log x ≠ 0
⊢ log x < x - 1
tactic: have h : log x ≠ 0 := by
    rwa [← log_one, log_injOn_pos.ne_iff hx1]
    exact mem_Ioi.mpr zero_lt_one
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
h : log x ≠ 0
⊢ log x < x - 1
state_after: no goals
tactic: linarith [add_one_lt_exp h, exp_log hx1]
Theorem: Set.exists_subset_image_iff
File: Mathlib/Data/Set/Image.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : α → β
s t : Set α
p : Set β → Prop
⊢ (∃ t ⊆ f '' s, p t) ↔ ∃ t ⊆ s, p (f '' t)
state_after: no goals
tactic: simp [subset_image_iff]
Theorem: ProbabilityTheory.measurable_memPartitionSet_subtype
File: Mathlib/Probability/Process/PartitionFiltration.lean

Proof steps:
state_before: α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
⊢ Measurable fun a => ⟨memPartitionSet t n a, ⋯⟩
state_after: α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : ↑(memPartition t n)
⊢ MeasurableSet ((fun a => ⟨memPartitionSet t n a, ⋯⟩) ⁻¹' {s})
tactic: refine @measurable_to_countable' (memPartition t n) α m _
    (partitionFiltration ht n) _ (fun s ↦ ?_)
state_before: α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : ↑(memPartition t n)
⊢ MeasurableSet ((fun a => ⟨memPartitionSet t n a, ⋯⟩) ⁻¹' {s})
state_after: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet ((fun a => ⟨memPartitionSet t n a, ⋯⟩) ⁻¹' {⟨s, hs⟩})
tactic: rcases s with ⟨s, hs⟩
state_before: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet ((fun a => ⟨memPartitionSet t n a, ⋯⟩) ⁻¹' {⟨s, hs⟩})
state_after: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet {x | memPartitionSet t n x = s}
tactic: suffices MeasurableSet[partitionFiltration ht n] {x | memPartitionSet t n x = s} by
    convert this
    ext x
    simp
state_before: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet {x | memPartitionSet t n x = s}
state_after: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet {x | x ∈ s}
tactic: simp_rw [memPartitionSet_eq_iff _ hs]
state_before: case mk
α : Type u_1
m✝ : MeasurableSpace α
t : ℕ → Set α
ht : ∀ (n : ℕ), MeasurableSet (t n)
n : ℕ
m : MeasurableSpace ↑(memPartition t n)
s : Set α
hs : s ∈ memPartition t n
⊢ MeasurableSet {x | x ∈ s}
state_after: no goals
tactic: exact measurableSet_partitionFiltration_of_mem _ _ hs
Theorem: Finset.zero_mem_sub_iff
File: Mathlib/Data/Finset/Pointwise.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : DecidableEq α
inst✝⁴ : DecidableEq β
inst✝³ : Group α
inst✝² : DivisionMonoid β
inst✝¹ : FunLike F α β
inst✝ : MonoidHomClass F α β
f : F
s t : Finset α
a b : α
⊢ 1 ∈ s / t ↔ ¬Disjoint s t
state_after: no goals
tactic: rw [← mem_coe, ← disjoint_coe, coe_div, Set.one_mem_div_iff]
Theorem: CategoryTheory.CostructuredArrow.IsUniversal.hom_ext
File: Mathlib/CategoryTheory/Comma/StructuredArrow.lean

Proof steps:
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
T T' T'' : D
Y Y' Y'' : C
S S' : C ⥤ D
A : Type u₃
inst✝¹ : Category.{v₃, u₃} A
B : Type u₄
inst✝ : Category.{v₄, u₄} B
f g : CostructuredArrow S T
h : f.IsUniversal
c : C
η η' : c ⟶ f.left
w : S.map η ≫ f.hom = S.map η' ≫ f.hom
⊢ η = η'
state_after: no goals
tactic: rw [h.hom_desc η, h.hom_desc η', w]
Theorem: Ordinal.IsFundamentalSequence.ord_cof
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

Proof steps:
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i : Ordinal.{u}
hi : i < a.cof.ord
⊢ a.cof.ord ≤ o
state_after: no goals
tactic: rw [hf.cof_eq]
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
⊢ a.IsFundamentalSequence a.cof.ord fun i hi => f i ⋯
state_after: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
H : a.cof.ord = o
⊢ a.IsFundamentalSequence a.cof.ord fun i hi => f i ⋯
tactic: have H := hf.cof_eq
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
H : a.cof.ord = o
⊢ a.IsFundamentalSequence a.cof.ord fun i hi => f i ⋯
state_after: α : Type u_1
r : α → α → Prop
a : Ordinal.{u}
f : (b : Ordinal.{u}) → b < a.cof.ord → Ordinal.{u}
hf : a.IsFundamentalSequence a.cof.ord f
⊢ a.IsFundamentalSequence a.cof.ord fun i hi => f i ⋯
tactic: subst H
state_before: α : Type u_1
r : α → α → Prop
a : Ordinal.{u}
f : (b : Ordinal.{u}) → b < a.cof.ord → Ordinal.{u}
hf : a.IsFundamentalSequence a.cof.ord f
⊢ a.IsFundamentalSequence a.cof.ord fun i hi => f i ⋯
state_after: no goals
tactic: exact hf
Theorem: CategoryTheory.StructuredArrow.toCostructuredArrow'_map
File: Mathlib/CategoryTheory/Comma/StructuredArrow.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
d : D
X✝ Y✝ : (StructuredArrow (op d) F.op)ᵒᵖ
f : X✝ ⟶ Y✝
⊢ F.map f.unop.right.unop ≫ ((fun X => CostructuredArrow.mk (unop X).hom.unop) Y✝).hom =
    ((fun X => CostructuredArrow.mk (unop X).hom.unop) X✝).hom
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
d : D
X✝ Y✝ : (StructuredArrow (op d) F.op)ᵒᵖ
f : X✝ ⟶ Y✝
⊢ F.map f.unop.right.unop ≫ (unop Y✝).hom.unop = (unop X✝).hom.unop
tactic: dsimp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
d : D
X✝ Y✝ : (StructuredArrow (op d) F.op)ᵒᵖ
f : X✝ ⟶ Y✝
⊢ F.map f.unop.right.unop ≫ (unop Y✝).hom.unop = (unop X✝).hom.unop
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
d : D
X✝ Y✝ : (StructuredArrow (op d) F.op)ᵒᵖ
f : X✝ ⟶ Y✝
⊢ (𝟙 (op d) ≫ (unop X✝).hom).unop = (unop X✝).hom.unop
tactic: rw [← Quiver.Hom.unop_op (F.map (Quiver.Hom.unop f.unop.right)), ← unop_comp, ← F.op_map, ←
          f.unop.w, Functor.const_obj_map]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
d : D
X✝ Y✝ : (StructuredArrow (op d) F.op)ᵒᵖ
f : X✝ ⟶ Y✝
⊢ (𝟙 (op d) ≫ (unop X✝).hom).unop = (unop X✝).hom.unop
state_after: no goals
tactic: erw [Category.id_comp]
Theorem: TopCat.homeoOfIso_symm_apply
File: Mathlib/Topology/Category/TopCat/Basic.lean

Proof steps:
state_before: X Y : TopCat
f : X ≅ Y
x : ↑X
⊢ f.inv (f.hom x) = x
state_after: no goals
tactic: simp
state_before: X Y : TopCat
f : X ≅ Y
x : ↑Y
⊢ f.hom (f.inv x) = x
state_after: no goals
tactic: simp
Theorem: FreeMonoid.comp_lift
File: Mathlib/Algebra/FreeMonoid/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝¹ : Monoid M
N : Type u_5
inst✝ : Monoid N
g : M →* N
f : α → M
⊢ g.comp (lift f) = lift (⇑g ∘ f)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝¹ : Monoid M
N : Type u_5
inst✝ : Monoid N
g : M →* N
f : α → M
x✝ : α
⊢ (g.comp (lift f)) (of x✝) = (lift (⇑g ∘ f)) (of x✝)
tactic: ext
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
M : Type u_4
inst✝¹ : Monoid M
N : Type u_5
inst✝ : Monoid N
g : M →* N
f : α → M
x✝ : α
⊢ (g.comp (lift f)) (of x✝) = (lift (⇑g ∘ f)) (of x✝)
state_after: no goals
tactic: simp
Theorem: Real.diam_Ioo
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
a b : ℝ
h : a ≤ b
⊢ Metric.diam (Ioo a b) = b - a
state_after: no goals
tactic: simp [Metric.diam, ENNReal.toReal_ofReal (sub_nonneg.2 h)]
Theorem: orthogonalProjectionFn_norm_sq
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
v : E
⊢ ‖v‖ * ‖v‖ =
    ‖v - orthogonalProjectionFn K v‖ * ‖v - orthogonalProjectionFn K v‖ +
      ‖orthogonalProjectionFn K v‖ * ‖orthogonalProjectionFn K v‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
v : E
p : E := orthogonalProjectionFn K v
⊢ ‖v‖ * ‖v‖ = ‖v - p‖ * ‖v - p‖ + ‖p‖ * ‖p‖
tactic: set p := orthogonalProjectionFn K v
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
v : E
p : E := orthogonalProjectionFn K v
⊢ ‖v‖ * ‖v‖ = ‖v - p‖ * ‖v - p‖ + ‖p‖ * ‖p‖
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
v : E
p : E := orthogonalProjectionFn K v
h' : ⟪v - p, p⟫_𝕜 = 0
⊢ ‖v‖ * ‖v‖ = ‖v - p‖ * ‖v - p‖ + ‖p‖ * ‖p‖
tactic: have h' : ⟪v - p, p⟫ = 0 :=
    orthogonalProjectionFn_inner_eq_zero _ _ (orthogonalProjectionFn_mem v)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁵ : _root_.RCLike 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : HasOrthogonalProjection K
v : E
p : E := orthogonalProjectionFn K v
h' : ⟪v - p, p⟫_𝕜 = 0
⊢ ‖v‖ * ‖v‖ = ‖v - p‖ * ‖v - p‖ + ‖p‖ * ‖p‖
state_after: no goals
tactic: convert norm_add_sq_eq_norm_sq_add_norm_sq_of_inner_eq_zero (v - p) p h' using 2 <;> simp
Theorem: ball_sub_ball
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε : ℝ
hε : 0 < ε
hδ : 0 < δ
a b : E
⊢ Metric.ball a ε - Metric.ball b δ = Metric.ball (a - b) (ε + δ)
state_after: no goals
tactic: simp_rw [sub_eq_add_neg, neg_ball, ball_add_ball hε hδ]