1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.injective_of_preservesFiniteColimits_preadditiveYonedaObj
File: Mathlib/CategoryTheory/Abelian/Injective.lean

tactic: rw [injective_iff_preservesEpimorphisms_preadditive_yoneda_obj']
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
J : C
hP : PreservesFiniteColimits (preadditiveYonedaObj J)
⊢ Injective J
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
J : C
hP : PreservesFiniteColimits (preadditiveYonedaObj J)
⊢ (preadditiveYonedaObj J).PreservesEpimorphisms

tactic: infer_instance
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
J : C
hP : PreservesFiniteColimits (preadditiveYonedaObj J)
⊢ (preadditiveYonedaObj J).PreservesEpimorphisms
state_after: no goals
Theorem: WeierstrassCurve.Projective.eval_polynomialX
File: Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean

tactic: rw [polynomialX_eq]
state_before: R : Type u
inst✝ : CommRing R
W : Projective R
P : Fin 3 → R
⊢ (eval P) W.polynomialX = W.a₁ * P 1 * P 2 - (3 * P 0 ^ 2 + 2 * W.a₂ * P 0 * P 2 + W.a₄ * P 2 ^ 2)
state_after: R : Type u
inst✝ : CommRing R
W : Projective R
P : Fin 3 → R
⊢ (eval P) (C W.a₁ * X 1 * X 2 - (C 3 * X 0 ^ 2 + C (2 * W.a₂) * X 0 * X 2 + C W.a₄ * X 2 ^ 2)) =
    W.a₁ * P 1 * P 2 - (3 * P 0 ^ 2 + 2 * W.a₂ * P 0 * P 2 + W.a₄ * P 2 ^ 2)

tactic: eval_simp
state_before: R : Type u
inst✝ : CommRing R
W : Projective R
P : Fin 3 → R
⊢ (eval P) (C W.a₁ * X 1 * X 2 - (C 3 * X 0 ^ 2 + C (2 * W.a₂) * X 0 * X 2 + C W.a₄ * X 2 ^ 2)) =
    W.a₁ * P 1 * P 2 - (3 * P 0 ^ 2 + 2 * W.a₂ * P 0 * P 2 + W.a₄ * P 2 ^ 2)
state_after: no goals
Theorem: HasDerivAt.norm_sq
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: simpa using hf.hasFDerivAt.norm_sq.hasDerivAt
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
inst✝² : NormedSpace ℝ E
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : G → E
f'✝ g' : G →L[ℝ] E
s : Set G
x✝ : G
n : ℕ∞
f : ℝ → F
f' : F
x : ℝ
hf : HasDerivAt f f' x
⊢ HasDerivAt (fun x => ‖f x‖ ^ 2) (2 * ⟪f x, f'⟫_ℝ) x
state_after: no goals
Theorem: Subalgebra.range_isScalarTower_toAlgHom
File: Mathlib/Algebra/Algebra/Subalgebra/Tower.lean

tactic: ext
state_before: R : Type u
S✝ : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
S : Subalgebra R A
⊢ LinearMap.range (toAlgHom R (↥S) A) = toSubmodule S
state_after: case h
R : Type u
S✝ : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
S : Subalgebra R A
x✝ : A
⊢ x✝ ∈ LinearMap.range (toAlgHom R (↥S) A) ↔ x✝ ∈ toSubmodule S

tactic: simp only [← Submodule.range_subtype (Subalgebra.toSubmodule S), LinearMap.mem_range,
  IsScalarTower.coe_toAlgHom', Subalgebra.mem_toSubmodule]
state_before: case h
R : Type u
S✝ : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
S : Subalgebra R A
x✝ : A
⊢ x✝ ∈ LinearMap.range (toAlgHom R (↥S) A) ↔ x✝ ∈ toSubmodule S
state_after: case h
R : Type u
S✝ : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
S : Subalgebra R A
x✝ : A
⊢ (∃ y, (algebraMap (↥S) A) y = x✝) ↔ ∃ y, (toSubmodule S).subtype y = x✝

tactic: rfl
state_before: case h
R : Type u
S✝ : Type v
A : Type w
B : Type u₁
M : Type v₁
inst✝² : CommSemiring R
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
S : Subalgebra R A
x✝ : A
⊢ (∃ y, (algebraMap (↥S) A) y = x✝) ↔ ∃ y, (toSubmodule S).subtype y = x✝
state_after: no goals
Theorem: List.mem_orderedInsert
File: Mathlib/Data/List/Sort.lean

tactic: simp [orderedInsert]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
⊢ a ∈ orderedInsert r b [] ↔ a = b ∨ a ∈ []
state_after: no goals

tactic: rw [orderedInsert]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
⊢ a ∈ orderedInsert r b (x :: xs) ↔ a = b ∨ a ∈ x :: xs
state_after: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
⊢ (a ∈ if r b x then b :: x :: xs else x :: orderedInsert r b xs) ↔ a = b ∨ a ∈ x :: xs

tactic: split_ifs
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
⊢ (a ∈ if r b x then b :: x :: xs else x :: orderedInsert r b xs) ↔ a = b ∨ a ∈ x :: xs
state_after: case pos
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
h✝ : r b x
⊢ a ∈ b :: x :: xs ↔ a = b ∨ a ∈ x :: xs

case neg
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
h✝ : ¬r b x
⊢ a ∈ x :: orderedInsert r b xs ↔ a = b ∨ a ∈ x :: xs

tactic: simp [orderedInsert]
state_before: case pos
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
h✝ : r b x
⊢ a ∈ b :: x :: xs ↔ a = b ∨ a ∈ x :: xs
state_after: no goals

tactic: rw [mem_cons, mem_cons, mem_orderedInsert, or_left_comm]
state_before: case neg
α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
a b : α
l : List α
x : α
xs : List α
h✝ : ¬r b x
⊢ a ∈ x :: orderedInsert r b xs ↔ a = b ∨ a ∈ x :: xs
state_after: no goals
Theorem: isClosed_iSup_iff
File: Mathlib/Topology/Order.lean

tactic: simp [← @isOpen_compl_iff _ _ (⨆ i, t i), ← @isOpen_compl_iff _ _ (t _), isOpen_iSup_iff]
state_before: α : Type u
ι : Sort v
t : ι → TopologicalSpace α
s : Set α
⊢ IsClosed s ↔ ∀ (i : ι), IsClosed s
state_after: no goals
Theorem: wbtw_one_zero_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [wbtw_comm, wbtw_zero_one_iff]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x : R
⊢ Wbtw R 1 x 0 ↔ x ∈ Set.Icc 0 1
state_after: no goals
Theorem: Finset.card_le_one
File: Mathlib/Data/Finset/Card.lean

tactic: obtain rfl | ⟨x, hx⟩ := s.eq_empty_or_nonempty
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
⊢ s.card ≤ 1 ↔ ∀ a ∈ s, ∀ b ∈ s, a = b
state_after: case inl
α : Type u_1
β : Type u_2
R : Type u_3
t u : Finset α
f : α → β
n : ℕ
⊢ ∅.card ≤ 1 ↔ ∀ a ∈ ∅, ∀ b ∈ ∅, a = b

case inr.intro
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ s.card ≤ 1 ↔ ∀ a ∈ s, ∀ b ∈ s, a = b

tactic: refine (Nat.succ_le_of_lt (card_pos.2 ⟨x, hx⟩)).le_iff_eq.trans (card_eq_one.trans ⟨?_, ?_⟩)
state_before: case inr.intro
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ s.card ≤ 1 ↔ ∀ a ∈ s, ∀ b ∈ s, a = b
state_after: case inr.intro.refine_1
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ (∃ a, s = {a}) → ∀ a ∈ s, ∀ b ∈ s, a = b

case inr.intro.refine_2
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ (∀ a ∈ s, ∀ b ∈ s, a = b) → ∃ a, s = {a}

tactic: simp
state_before: case inl
α : Type u_1
β : Type u_2
R : Type u_3
t u : Finset α
f : α → β
n : ℕ
⊢ ∅.card ≤ 1 ↔ ∀ a ∈ ∅, ∀ b ∈ ∅, a = b
state_after: no goals

tactic: rintro ⟨y, rfl⟩
state_before: case inr.intro.refine_1
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ (∃ a, s = {a}) → ∀ a ∈ s, ∀ b ∈ s, a = b
state_after: case inr.intro.refine_1.intro
α : Type u_1
β : Type u_2
R : Type u_3
t u : Finset α
f : α → β
n : ℕ
x y : α
hx : x ∈ {y}
⊢ ∀ a ∈ {y}, ∀ b ∈ {y}, a = b

tactic: simp
state_before: case inr.intro.refine_1.intro
α : Type u_1
β : Type u_2
R : Type u_3
t u : Finset α
f : α → β
n : ℕ
x y : α
hx : x ∈ {y}
⊢ ∀ a ∈ {y}, ∀ b ∈ {y}, a = b
state_after: no goals

tactic: exact fun h => ⟨x, eq_singleton_iff_unique_mem.2 ⟨hx, fun y hy => h _ hy _ hx⟩⟩
state_before: case inr.intro.refine_2
α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
x : α
hx : x ∈ s
⊢ (∀ a ∈ s, ∀ b ∈ s, a = b) → ∃ a, s = {a}
state_after: no goals
Theorem: Seminorm.sSup_empty
File: Mathlib/Analysis/Seminorm.lean

tactic: ext
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x : E
⊢ sSup ∅ = ⊥
state_after: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ (sSup ∅) x✝ = ⊥ x✝

tactic: rw [Seminorm.sSup_apply bddAbove_empty, Real.iSup_of_isEmpty]
state_before: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ (sSup ∅) x✝ = ⊥ x✝
state_after: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ 0 = ⊥ x✝

tactic: rfl
state_before: case h
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p q : Seminorm 𝕜 E
x x✝ : E
⊢ 0 = ⊥ x✝
state_after: no goals
Theorem: CategoryTheory.Preadditive.epi_iff_surjective
File: Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean

tactic: rw [← AddCommGrp.epi_iff_surjective]
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi f ↔ Function.Surjective ⇑((forget₂ C Ab).map f)
state_after: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi f ↔ Epi ((forget₂ C Ab).map f)

tactic: constructor
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi f ↔ Epi ((forget₂ C Ab).map f)
state_after: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi f → Epi ((forget₂ C Ab).map f)

case mpr
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi ((forget₂ C Ab).map f) → Epi f

tactic: intro
state_before: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi f → Epi ((forget₂ C Ab).map f)
state_after: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
a✝ : Epi f
⊢ Epi ((forget₂ C Ab).map f)

tactic: infer_instance
state_before: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
a✝ : Epi f
⊢ Epi ((forget₂ C Ab).map f)
state_after: no goals

tactic: apply Functor.epi_of_epi_map
state_before: case mpr
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Epi ((forget₂ C Ab).map f) → Epi f
state_after: no goals
Theorem: Submodule.le_traceDual_iff_map_le_one
File: Mathlib/RingTheory/DedekindDomain/Different.lean

tactic: rw [Submodule.map_le_iff_le_comap, Submodule.restrictScalars_mul, Submodule.mul_le]
state_before: A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁷ : CommRing A
inst✝¹⁶ : Field K
inst✝¹⁵ : CommRing B
inst✝¹⁴ : Field L
inst✝¹³ : Algebra A K
inst✝¹² : Algebra B L
inst✝¹¹ : Algebra A B
inst✝¹⁰ : Algebra K L
inst✝⁹ : Algebra A L
inst✝⁸ : IsScalarTower A K L
inst✝⁷ : IsScalarTower A B L
inst✝⁶ : IsDomain A
inst✝⁵ : IsDomain B
inst✝⁴ : IsFractionRing A K
inst✝³ : IsIntegralClosure B A L
inst✝² : IsFractionRing B L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
I J : Submodule B L
⊢ I ≤ Jᵛ ↔ map (↑A (Algebra.trace K L)) (restrictScalars A (I * J)) ≤ 1
state_after: A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁷ : CommRing A
inst✝¹⁶ : Field K
inst✝¹⁵ : CommRing B
inst✝¹⁴ : Field L
inst✝¹³ : Algebra A K
inst✝¹² : Algebra B L
inst✝¹¹ : Algebra A B
inst✝¹⁰ : Algebra K L
inst✝⁹ : Algebra A L
inst✝⁸ : IsScalarTower A K L
inst✝⁷ : IsScalarTower A B L
inst✝⁶ : IsDomain A
inst✝⁵ : IsDomain B
inst✝⁴ : IsFractionRing A K
inst✝³ : IsIntegralClosure B A L
inst✝² : IsFractionRing B L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
I J : Submodule B L
⊢ I ≤ Jᵛ ↔ ∀ m ∈ restrictScalars A I, ∀ n ∈ restrictScalars A J, m * n ∈ comap (↑A (Algebra.trace K L)) 1

tactic: simp [SetLike.le_def, mem_traceDual]
state_before: A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁷ : CommRing A
inst✝¹⁶ : Field K
inst✝¹⁵ : CommRing B
inst✝¹⁴ : Field L
inst✝¹³ : Algebra A K
inst✝¹² : Algebra B L
inst✝¹¹ : Algebra A B
inst✝¹⁰ : Algebra K L
inst✝⁹ : Algebra A L
inst✝⁸ : IsScalarTower A K L
inst✝⁷ : IsScalarTower A B L
inst✝⁶ : IsDomain A
inst✝⁵ : IsDomain B
inst✝⁴ : IsFractionRing A K
inst✝³ : IsIntegralClosure B A L
inst✝² : IsFractionRing B L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
I J : Submodule B L
⊢ I ≤ Jᵛ ↔ ∀ m ∈ restrictScalars A I, ∀ n ∈ restrictScalars A J, m * n ∈ comap (↑A (Algebra.trace K L)) 1
state_after: no goals
Theorem: Finsupp.total_comp_lmapDomain
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: ext
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
⊢ Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f = Finsupp.total α M' R (v' ∘ f)
state_after: case h.h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
a✝ : α
⊢ ((Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f) ∘ₗ lsingle a✝) 1 = (Finsupp.total α M' R (v' ∘ f) ∘ₗ lsingle a✝) 1

tactic: simp
state_before: case h.h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
a✝ : α
⊢ ((Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f) ∘ₗ lsingle a✝) 1 = (Finsupp.total α M' R (v' ∘ f) ∘ₗ lsingle a✝) 1
state_after: no goals
Theorem: CategoryTheory.Limits.kernelIsoOfEq_trans
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: cases w₁
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f g h : X ⟶ Y
inst✝² : HasKernel f
inst✝¹ : HasKernel g
inst✝ : HasKernel h
w₁ : f = g
w₂ : g = h
⊢ kernelIsoOfEq w₁ ≪≫ kernelIsoOfEq w₂ = kernelIsoOfEq ⋯
state_after: case refl
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f h : X ⟶ Y
inst✝² : HasKernel f
inst✝¹ : HasKernel h
inst✝ : HasKernel f
w₂ : f = h
⊢ kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq w₂ = kernelIsoOfEq ⋯

tactic: cases w₂
state_before: case refl
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f h : X ⟶ Y
inst✝² : HasKernel f
inst✝¹ : HasKernel h
inst✝ : HasKernel f
w₂ : f = h
⊢ kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq w₂ = kernelIsoOfEq ⋯
state_after: case refl.refl
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f : X ⟶ Y
inst✝² inst✝¹ inst✝ : HasKernel f
⊢ kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq ⋯ = kernelIsoOfEq ⋯

tactic: ext
state_before: case refl.refl
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f : X ⟶ Y
inst✝² inst✝¹ inst✝ : HasKernel f
⊢ kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq ⋯ = kernelIsoOfEq ⋯
state_after: case refl.refl.w.h
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f : X ⟶ Y
inst✝² inst✝¹ inst✝ : HasKernel f
⊢ (kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq ⋯).hom ≫ equalizer.ι f 0 = (kernelIsoOfEq ⋯).hom ≫ equalizer.ι f 0

tactic: simp [kernelIsoOfEq]
state_before: case refl.refl.w.h
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝³ : HasKernel f✝
f : X ⟶ Y
inst✝² inst✝¹ inst✝ : HasKernel f
⊢ (kernelIsoOfEq ⋯ ≪≫ kernelIsoOfEq ⋯).hom ≫ equalizer.ι f 0 = (kernelIsoOfEq ⋯).hom ≫ equalizer.ι f 0
state_after: no goals
Theorem: Monoid.PushoutI.NormalWord.base_smul_eq_smul
File: Mathlib/GroupTheory/PushoutI.lean

tactic: rw [base_smul_def, base_smul_def']
state_before: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
h : H
w : NormalWord d
⊢ (base φ) h • w = h • w
state_after: no goals
Theorem: Complex.mem_slitPlane_iff_arg
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: simp only [mem_slitPlane_iff_not_le_zero, le_iff_lt_or_eq, ne_eq, arg_eq_pi_iff_lt_zero, not_or]
state_before: a x z✝ z : ℂ
⊢ z ∈ slitPlane ↔ z.arg ≠ π ∧ z ≠ 0
state_after: no goals
Theorem: DomMulAct.stabilizerEquiv_invFun_eq
File: Mathlib/GroupTheory/Perm/DomMulAct.lean

tactic: subst h
state_before: α : Type u_1
ι : Type u_2
f : α → ι
g : (i : ι) → Perm { a // f a = i }
a : α
i : ι
h : f a = i
⊢ stabilizerEquiv_invFun g a = ↑((g i) ⟨a, h⟩)
state_after: α : Type u_1
ι : Type u_2
f : α → ι
g : (i : ι) → Perm { a // f a = i }
a : α
⊢ stabilizerEquiv_invFun g a = ↑((g (f a)) ⟨a, ⋯⟩)

tactic: rfl
state_before: α : Type u_1
ι : Type u_2
f : α → ι
g : (i : ι) → Perm { a // f a = i }
a : α
⊢ stabilizerEquiv_invFun g a = ↑((g (f a)) ⟨a, ⋯⟩)
state_after: no goals
Theorem: Submodule.span_singleton_smul_le
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [span_le, Set.singleton_subset_iff, SetLike.mem_coe]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S✝ : Type u_7
inst✝¹¹ : Semiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁸ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
F : Type u_8
inst✝⁵ : FunLike F M M₂
inst✝⁴ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
S : Type u_9
inst✝³ : Monoid S
inst✝² : SMul S R
inst✝¹ : MulAction S M
inst✝ : IsScalarTower S R M
r : S
x : M
⊢ span R {r • x} ≤ span R {x}
state_after: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S✝ : Type u_7
inst✝¹¹ : Semiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁸ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
F : Type u_8
inst✝⁵ : FunLike F M M₂
inst✝⁴ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
S : Type u_9
inst✝³ : Monoid S
inst✝² : SMul S R
inst✝¹ : MulAction S M
inst✝ : IsScalarTower S R M
r : S
x : M
⊢ r • x ∈ span R {x}

tactic: exact smul_of_tower_mem _ _ (mem_span_singleton_self _)
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S✝ : Type u_7
inst✝¹¹ : Semiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁸ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
F : Type u_8
inst✝⁵ : FunLike F M M₂
inst✝⁴ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
S : Type u_9
inst✝³ : Monoid S
inst✝² : SMul S R
inst✝¹ : MulAction S M
inst✝ : IsScalarTower S R M
r : S
x : M
⊢ r • x ∈ span R {x}
state_after: no goals