1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Functor.IsHomological.mk'
File: Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean

tactic: obtain ⟨T', e, h'⟩ := hF T hT
state_before: C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁴ : Category.{u_4, u_1} C
inst✝¹³ : HasZeroObject C
inst✝¹² : HasShift C ℤ
inst✝¹¹ : Preadditive C
inst✝¹⁰ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝⁹ : Pretriangulated C
inst✝⁸ : Category.{?u.5834, u_2} D
inst✝⁷ : HasZeroObject D
inst✝⁶ : HasShift D ℤ
inst✝⁵ : Preadditive D
inst✝⁴ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝³ : Pretriangulated D
inst✝² : Category.{u_5, u_3} A
inst✝¹ : Abelian A
F : C ⥤ A
inst✝ : F.PreservesZeroMorphisms
hF : ∀ (T : Triangle C) (hT : T ∈ distinguishedTriangles), ∃ T' e, ((shortComplexOfDistTriangle T' ⋯).map F).Exact
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ ((shortComplexOfDistTriangle T hT).map F).Exact
state_after: case intro.intro
C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁴ : Category.{u_4, u_1} C
inst✝¹³ : HasZeroObject C
inst✝¹² : HasShift C ℤ
inst✝¹¹ : Preadditive C
inst✝¹⁰ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝⁹ : Pretriangulated C
inst✝⁸ : Category.{?u.5834, u_2} D
inst✝⁷ : HasZeroObject D
inst✝⁶ : HasShift D ℤ
inst✝⁵ : Preadditive D
inst✝⁴ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝³ : Pretriangulated D
inst✝² : Category.{u_5, u_3} A
inst✝¹ : Abelian A
F : C ⥤ A
inst✝ : F.PreservesZeroMorphisms
hF : ∀ (T : Triangle C) (hT : T ∈ distinguishedTriangles), ∃ T' e, ((shortComplexOfDistTriangle T' ⋯).map F).Exact
T : Triangle C
hT : T ∈ distinguishedTriangles
T' : Triangle C
e : T ≅ T'
h' : ((shortComplexOfDistTriangle T' ⋯).map F).Exact
⊢ ((shortComplexOfDistTriangle T hT).map F).Exact

tactic: exact (ShortComplex.exact_iff_of_iso
  (F.mapShortComplex.mapIso ((shortComplexOfDistTriangleIsoOfIso e hT)))).2 h'
state_before: case intro.intro
C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁴ : Category.{u_4, u_1} C
inst✝¹³ : HasZeroObject C
inst✝¹² : HasShift C ℤ
inst✝¹¹ : Preadditive C
inst✝¹⁰ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝⁹ : Pretriangulated C
inst✝⁸ : Category.{?u.5834, u_2} D
inst✝⁷ : HasZeroObject D
inst✝⁶ : HasShift D ℤ
inst✝⁵ : Preadditive D
inst✝⁴ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝³ : Pretriangulated D
inst✝² : Category.{u_5, u_3} A
inst✝¹ : Abelian A
F : C ⥤ A
inst✝ : F.PreservesZeroMorphisms
hF : ∀ (T : Triangle C) (hT : T ∈ distinguishedTriangles), ∃ T' e, ((shortComplexOfDistTriangle T' ⋯).map F).Exact
T : Triangle C
hT : T ∈ distinguishedTriangles
T' : Triangle C
e : T ≅ T'
h' : ((shortComplexOfDistTriangle T' ⋯).map F).Exact
⊢ ((shortComplexOfDistTriangle T hT).map F).Exact
state_after: no goals
Theorem: Orientation.oangle_sign_sub_right_eq_neg
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [← o.oangle_sign_smul_sub_right x y 1, one_smul]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ (o.oangle x (x - y)).sign = -(o.oangle x y).sign
state_after: no goals
Theorem: sInfHom.cancel_left
File: Mathlib/Order/Hom/CompleteLattice.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
ι : Sort u_6
κ : ι → Sort u_7
inst✝⁴ : FunLike F α β
inst✝³ : InfSet α
inst✝² : InfSet β
inst✝¹ : InfSet γ
inst✝ : InfSet δ
g : sInfHom β γ
f₁ f₂ : sInfHom α β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
a : α
⊢ g (f₁ a) = g (f₂ a)
state_after: no goals
Theorem: LinearMap.toMatrixAlgEquiv_id
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: simp_rw [LinearMap.toMatrixAlgEquiv, AlgEquiv.ofLinearEquiv_apply, LinearMap.toMatrix_id]
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Fintype m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
M₃ : Type u_7
inst✝¹ : AddCommMonoid M₃
inst✝ : Module R M₃
v₃ : Basis l R M₃
⊢ (toMatrixAlgEquiv v₁) id = 1
state_after: no goals
Theorem: MeasurableEquiv.eq_image_iff_symm_image_eq
File: Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean

tactic: rw [← coe_toEquiv, Equiv.eq_image_iff_symm_image_eq, coe_toEquiv_symm]
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 α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
e : α ≃ᵐ β
s : Set β
t : Set α
⊢ s = ⇑e '' t ↔ ⇑e.symm '' s = t
state_after: no goals
Theorem: WeierstrassCurve.variableChange_c₄
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: simp only [c₄, variableChange_b₂, variableChange_b₄]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (W.variableChange C).c₄ = ↑C.u⁻¹ ^ 4 * W.c₄
state_after: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (↑C.u⁻¹ ^ 2 * (W.b₂ + 12 * C.r)) ^ 2 - 24 * (↑C.u⁻¹ ^ 4 * (W.b₄ + C.r * W.b₂ + 6 * C.r ^ 2)) =
    ↑C.u⁻¹ ^ 4 * (W.b₂ ^ 2 - 24 * W.b₄)

tactic: ring1
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (↑C.u⁻¹ ^ 2 * (W.b₂ + 12 * C.r)) ^ 2 - 24 * (↑C.u⁻¹ ^ 4 * (W.b₄ + C.r * W.b₂ + 6 * C.r ^ 2)) =
    ↑C.u⁻¹ ^ 4 * (W.b₂ ^ 2 - 24 * W.b₄)
state_after: no goals
Theorem: List.mem_map_of_involutive
File: Mathlib/Data/List/Basic.lean

tactic: rw [mem_map, hf.exists_mem_and_apply_eq_iff]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → α
hf : Involutive f
a : α
l : List α
⊢ a ∈ map f l ↔ f a ∈ l
state_after: no goals
Theorem: String.Iterator.ValidFor.hasNext
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [Iterator.hasNext, ← h.atEnd, Iterator.atEnd]
state_before: l r : List Char
it : Iterator
h : ValidFor l r it
⊢ it.hasNext = true ↔ r ≠ []
state_after: no goals
Theorem: le_of_forall_sub_le
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: contrapose! h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
h : ∀ ε > 0, b - ε ≤ a
⊢ b ≤ a
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
h : a < b
⊢ ∃ ε > 0, a < b - ε

tactic: simpa only [@and_comm ((0 : α) < _), lt_sub_iff_add_lt, gt_iff_lt] using
  exists_add_lt_and_pos_of_lt h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
h : a < b
⊢ ∃ ε > 0, a < b - ε
state_after: no goals
Theorem: NormedSpace.exists_lt_norm
File: Mathlib/Analysis/NormedSpace/Basic.lean

tactic: rcases exists_ne (0 : E) with ⟨x, hx⟩
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
⊢ ∃ x, c < ‖x‖
state_after: case intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
⊢ ∃ x, c < ‖x‖

tactic: rcases NormedField.exists_lt_norm 𝕜 (c / ‖x‖) with ⟨r, hr⟩
state_before: case intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
⊢ ∃ x, c < ‖x‖
state_after: case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ ∃ x, c < ‖x‖

tactic: use r • x
state_before: case intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ ∃ x, c < ‖x‖
state_after: case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ c < ‖r • x‖

tactic: rwa [norm_smul, ← _root_.div_lt_iff]
state_before: case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ c < ‖r • x‖
state_after: case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ 0 < ‖x‖

tactic: rwa [norm_pos_iff]
state_before: case h
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : Nontrivial E
c : ℝ
x : E
hx : x ≠ 0
r : 𝕜
hr : c / ‖x‖ < ‖r‖
⊢ 0 < ‖x‖
state_after: no goals
Theorem: MeasureTheory.Integrable.integral_eq_integral_meas_le
File: Mathlib/MeasureTheory/Integral/Layercake.lean

tactic: rw [Integrable.integral_eq_integral_meas_lt f_intble f_nn]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
⊢ ∫ (ω : α), f ω ∂μ = ∫ (t : ℝ) in Ioi 0, (μ {a | t ≤ f a}).toReal
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
⊢ ∫ (t : ℝ) in Ioi 0, (μ {a | t < f a}).toReal = ∫ (t : ℝ) in Ioi 0, (μ {a | t ≤ f a}).toReal

tactic: apply integral_congr_ae
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
⊢ ∫ (t : ℝ) in Ioi 0, (μ {a | t < f a}).toReal = ∫ (t : ℝ) in Ioi 0, (μ {a | t ≤ f a}).toReal
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
⊢ (fun a => (μ {a_1 | a < f a_1}).toReal) =ᶠ[ae (volume.restrict (Ioi 0))] fun a => (μ {a_1 | a ≤ f a_1}).toReal

tactic: filter_upwards [meas_le_ae_eq_meas_lt μ (volume.restrict (Ioi 0)) f] with t ht
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
⊢ (fun a => (μ {a_1 | a < f a_1}).toReal) =ᶠ[ae (volume.restrict (Ioi 0))] fun a => (μ {a_1 | a ≤ f a_1}).toReal
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
t : ℝ
ht : μ {a | t ≤ f a} = μ {a | t < f a}
⊢ (μ {a | t < f a}).toReal = (μ {a | t ≤ f a}).toReal

tactic: exact congrArg ENNReal.toReal ht.symm
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f : α → ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
t : ℝ
ht : μ {a | t ≤ f a} = μ {a | t < f a}
⊢ (μ {a | t < f a}).toReal = (μ {a | t ≤ f a}).toReal
state_after: no goals
Theorem: List.prod_drop_succ
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: simp
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : Group G
x : G
xs : List G
x✝ : 0 < (x :: xs).length
⊢ (drop (0 + 1) (x :: xs)).prod = ((x :: xs).get ⟨0, x✝⟩)⁻¹ * (drop 0 (x :: xs)).prod
state_after: no goals
Theorem: List.getLast_append_singleton
File: Mathlib/Data/List/Basic.lean

tactic: simp only [getLast_append]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
⊢ (l ++ [a]).getLast ⋯ = a
state_after: no goals
Theorem: Bool.or_eq_true_eq_eq_true_or_eq_true
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: simp
state_before: a b : Bool
⊢ ((a || b) = true) = (a = true ∨ b = true)
state_after: no goals
Theorem: Equiv.Perm.card_support_conj
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
⊢ (σ * τ * σ⁻¹).support.card = τ.support.card
state_after: no goals
Theorem: AlgebraicGeometry.StructureSheaf.comap_id
File: Mathlib/AlgebraicGeometry/StructureSheaf.lean

tactic: rwa [hUV, PrimeSpectrum.comap_id]
state_before: R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
U V : Opens ↑(PrimeSpectrum.Top R)
hUV : U = V
p : ↑(PrimeSpectrum.Top R)
hpV : p ∈ V.carrier
⊢ p ∈ ⇑(PrimeSpectrum.comap (RingHom.id R)) ⁻¹' U.carrier
state_after: no goals

tactic: rw [hUV]
state_before: R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
U V : Opens ↑(PrimeSpectrum.Top R)
hUV : U = V
⊢ (structureSheaf R).val.obj { unop := U } = (structureSheaf R).val.obj { unop := V }
state_after: no goals

tactic: erw [comap_id_eq_map U V (eqToHom hUV.symm), eqToHom_op, eqToHom_map]
state_before: R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
U V : Opens ↑(PrimeSpectrum.Top R)
hUV : U = V
⊢ comap (RingHom.id R) U V ⋯ = eqToHom ⋯
state_after: no goals
Theorem: AlgebraicGeometry.isCompactOpen_iff_eq_finset_affine_union
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

tactic: apply Opens.IsBasis.isCompact_open_iff_eq_finite_iUnion
  (fun (U : X.affineOpens) => (U : Opens X))
state_before: X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ IsCompact U ∧ IsOpen U ↔ ∃ s, s.Finite ∧ U = ⋃ i ∈ s, ↑↑i
state_after: case hb
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ Opens.IsBasis (Set.range fun U => ↑U)

case hb'
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ ∀ (i : ↑X.affineOpens), IsCompact ↑↑i

tactic: rw [Subtype.range_coe]
state_before: case hb
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ Opens.IsBasis (Set.range fun U => ↑U)
state_after: case hb
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ Opens.IsBasis X.affineOpens

tactic: exact isBasis_affine_open X
state_before: case hb
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ Opens.IsBasis X.affineOpens
state_after: no goals

tactic: exact fun i => i.2.isCompact
state_before: case hb'
X✝ Y : Scheme
f : X✝ ⟶ Y
X : Scheme
U : Set ↑↑X.toPresheafedSpace
⊢ ∀ (i : ↑X.affineOpens), IsCompact ↑↑i
state_after: no goals
Theorem: TensorProduct.finsuppLeft_apply
File: Mathlib/LinearAlgebra/DirectSum/Finsupp.lean

tactic: induction t with
| zero => simp
| tmul f n => simp only [finsuppLeft_apply_tmul_apply, rTensor_tmul, Finsupp.lapply_apply]
| add x y hx hy => simp [map_add, hx, hy]
state_before: R : Type u_1
inst✝⁵ : CommSemiring R
M : Type u_2
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
N : Type u_3
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
ι : Type u_4
inst✝ : DecidableEq ι
t : (ι →₀ M) ⊗[R] N
i : ι
⊢ ((finsuppLeft R M N ι) t) i = (rTensor N (Finsupp.lapply i)) t
state_after: no goals

tactic: simp
state_before: case zero
R : Type u_1
inst✝⁵ : CommSemiring R
M : Type u_2
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
N : Type u_3
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
ι : Type u_4
inst✝ : DecidableEq ι
i : ι
⊢ ((finsuppLeft R M N ι) 0) i = (rTensor N (Finsupp.lapply i)) 0
state_after: no goals

tactic: simp only [finsuppLeft_apply_tmul_apply, rTensor_tmul, Finsupp.lapply_apply]
state_before: case tmul
R : Type u_1
inst✝⁵ : CommSemiring R
M : Type u_2
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
N : Type u_3
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
ι : Type u_4
inst✝ : DecidableEq ι
i : ι
f : ι →₀ M
n : N
⊢ ((finsuppLeft R M N ι) (f ⊗ₜ[R] n)) i = (rTensor N (Finsupp.lapply i)) (f ⊗ₜ[R] n)
state_after: no goals

tactic: simp [map_add, hx, hy]
state_before: case add
R : Type u_1
inst✝⁵ : CommSemiring R
M : Type u_2
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
N : Type u_3
inst✝² : AddCommMonoid N
inst✝¹ : Module R N
ι : Type u_4
inst✝ : DecidableEq ι
i : ι
x y : (ι →₀ M) ⊗[R] N
hx : ((finsuppLeft R M N ι) x) i = (rTensor N (Finsupp.lapply i)) x
hy : ((finsuppLeft R M N ι) y) i = (rTensor N (Finsupp.lapply i)) y
⊢ ((finsuppLeft R M N ι) (x + y)) i = (rTensor N (Finsupp.lapply i)) (x + y)
state_after: no goals
Theorem: Finsupp.filter_zero
File: Mathlib/Data/Finsupp/Basic.lean

tactic: classical rw [← support_eq_empty, support_filter, support_zero, Finset.filter_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : Zero M
p : α → Prop
inst✝ : DecidablePred p
f : α →₀ M
⊢ filter p 0 = 0
state_after: no goals

tactic: rw [← support_eq_empty, support_filter, support_zero, Finset.filter_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : Zero M
p : α → Prop
inst✝ : DecidablePred p
f : α →₀ M
⊢ filter p 0 = 0
state_after: no goals
Theorem: IsAntichain.ordConnected
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: obtain rfl := hs.eq hx hy (hz.1.trans hz.2)
state_before: α : Type u_1
inst✝ : PartialOrder α
s : Set α
x✝ y✝ : α
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
x : α
hx : x ∈ s
y : α
hy : y ∈ s
z : α
hz : z ∈ Icc x y
⊢ z ∈ s
state_after: α : Type u_1
inst✝ : PartialOrder α
s : Set α
x✝ y : α
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
x : α
hx : x ∈ s
z : α
hy : x ∈ s
hz : z ∈ Icc x x
⊢ z ∈ s

tactic: rw [Icc_self, mem_singleton_iff] at hz
state_before: α : Type u_1
inst✝ : PartialOrder α
s : Set α
x✝ y : α
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
x : α
hx : x ∈ s
z : α
hy : x ∈ s
hz : z ∈ Icc x x
⊢ z ∈ s
state_after: α : Type u_1
inst✝ : PartialOrder α
s : Set α
x✝ y : α
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
x : α
hx : x ∈ s
z : α
hy : x ∈ s
hz : z = x
⊢ z ∈ s

tactic: rwa [hz]
state_before: α : Type u_1
inst✝ : PartialOrder α
s : Set α
x✝ y : α
hs : IsAntichain (fun x x_1 => x ≤ x_1) s
x : α
hx : x ∈ s
z : α
hy : x ∈ s
hz : z = x
⊢ z ∈ s
state_after: no goals
Theorem: Set.ordConnected_image
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: erw [(e : α ≃o β).image_eq_preimage]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Preorder α
inst✝² : Preorder β
s✝ t : Set α
E : Type u_3
inst✝¹ : EquivLike E α β
inst✝ : OrderIsoClass E α β
e : E
s : Set α
hs : s.OrdConnected
⊢ (⇑e '' s).OrdConnected
state_after: α : Type u_1
β : Type u_2
inst✝³ : Preorder α
inst✝² : Preorder β
s✝ t : Set α
E : Type u_3
inst✝¹ : EquivLike E α β
inst✝ : OrderIsoClass E α β
e : E
s : Set α
hs : s.OrdConnected
⊢ (⇑(↑e).symm ⁻¹' s).OrdConnected

tactic: apply ordConnected_preimage (e : α ≃o β).symm
state_before: α : Type u_1
β : Type u_2
inst✝³ : Preorder α
inst✝² : Preorder β
s✝ t : Set α
E : Type u_3
inst✝¹ : EquivLike E α β
inst✝ : OrderIsoClass E α β
e : E
s : Set α
hs : s.OrdConnected
⊢ (⇑(↑e).symm ⁻¹' s).OrdConnected
state_after: no goals
Theorem: Matrix.vecMul_conjTranspose_mul_self_eq_zero
File: Mathlib/LinearAlgebra/Matrix/DotProduct.lean

tactic: simpa only [← Matrix.row_vecMul, row_eq_zero] using
  mul_conjTranspose_mul_self_eq_zero A (row (Fin 1) v)
state_before: m : Type u_1
n : Type u_2
p : Type u_3
R : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : Fintype p
inst✝⁴ : PartialOrder R
inst✝³ : NonUnitalRing R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : NoZeroDivisors R
A : Matrix m n R
v : n → R
⊢ v ᵥ* (Aᴴ * A) = 0 ↔ v ᵥ* Aᴴ = 0
state_after: no goals
Theorem: CategoryTheory.Bicategory.pentagon_inv
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ inv (f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv ≫ (α_ f g h).inv ▷ i) =
    inv ((α_ f g (h ≫ i)).inv ≫ (α_ (f ≫ g) h i).inv)
state_after: no goals
Theorem: DirichletCharacter.conductor_one
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: suffices FactorsThrough (1 : DirichletCharacter R n) 1 by
  have h : conductor (1 : DirichletCharacter R n) ≤ 1 :=
    Nat.sInf_le <| (mem_conductorSet_iff _).mpr this
  exact Nat.le_antisymm h (Nat.pos_of_ne_zero <| conductor_ne_zero _ hn)
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
⊢ conductor 1 = 1
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
⊢ FactorsThrough 1 1

tactic: exact (factorsThrough_one_iff _).mpr rfl
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
⊢ FactorsThrough 1 1
state_after: no goals

tactic: have h : conductor (1 : DirichletCharacter R n) ≤ 1 :=
  Nat.sInf_le <| (mem_conductorSet_iff _).mpr this
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
this : FactorsThrough 1 1
⊢ conductor 1 = 1
state_after: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
this : FactorsThrough 1 1
h : conductor 1 ≤ 1
⊢ conductor 1 = 1

tactic: exact Nat.le_antisymm h (Nat.pos_of_ne_zero <| conductor_ne_zero _ hn)
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
hn : n ≠ 0
this : FactorsThrough 1 1
h : conductor 1 ≤ 1
⊢ conductor 1 = 1
state_after: no goals
Theorem: Finset.Nontrivial.ne_singleton
File: Mathlib/Data/Finset/Basic.lean

tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Finset α
a b : α
hs : s.Nontrivial
⊢ s ≠ {a}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b : α
hs : {a}.Nontrivial
⊢ False

tactic: exact not_nontrivial_singleton hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b : α
hs : {a}.Nontrivial
⊢ False
state_after: no goals
Theorem: WithTop.preimage_coe_Ioo_top
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: simp [← Ioi_inter_Iio]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some ⁻¹' Ioo ↑a ⊤ = Ioi a
state_after: no goals
Theorem: Finset.card_sdiff_comm
File: Mathlib/Data/Finset/Card.lean

tactic: simp_rw [card_sdiff_add_card, ← h, card_sdiff_add_card, union_comm]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
inst✝ : DecidableEq α
h : s.card = t.card
⊢ (fun x => x + t.card) (s \ t).card = (fun x => x + t.card) (t \ s).card
state_after: no goals