tasksource/leandojo huggingface dataset:
Theorem: imageSubobjectMap_comp_imageToKernel
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: ext
state_before: ι : Type ?u.67466
V : Type u
inst✝¹⁴ : Category V
inst✝¹³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹² : HasImage f
g : B ⟶ C
inst✝¹¹ : HasKernel g
w : f ≫ g = 0
A' B' C' : V
f' : A' ⟶ B'
inst✝¹⁰ : HasImage f'
g' : B' ⟶ C'
inst✝⁹ : HasKernel g'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
inst✝⁸ : HasImageMap α
β : Arrow.mk g ⟶ Arrow.mk g'
A₁ B₁ C₁ : V
f₁ : A₁ ⟶ B₁
inst✝⁷ : HasImage f₁
g₁ : B₁ ⟶ C₁
inst✝⁶ : HasKernel g₁
w₁ : f₁ ≫ g₁ = 0
A₂ B₂ C₂ : V
f₂ : A₂ ⟶ B₂
inst✝⁵ : HasImage f₂
g₂ : B₂ ⟶ C₂
inst✝⁴ : HasKernel g₂
w₂ : f₂ ≫ g₂ = 0
A₃ B₃ C₃ : V
f₃ : A₃ ⟶ B₃
inst✝³ : HasImage f₃
g₃ : B₃ ⟶ C₃
inst✝² : HasKernel g₃
w₃ : f₃ ≫ g₃ = 0
α₁ : Arrow.mk f₁ ⟶ Arrow.mk f₂
inst✝¹ : HasImageMap α₁
β₁ : Arrow.mk g₁ ⟶ Arrow.mk g₂
α₂ : Arrow.mk f₂ ⟶ Arrow.mk f₃
inst✝ : HasImageMap α₂
β₂ : Arrow.mk g₂ ⟶ Arrow.mk g₃
p : α.right = β.left
⊢ imageToKernel f g w ≫ kernelSubobjectMap β = imageSubobjectMap α ≫ imageToKernel f' g' w'

tactic: simp [p]
state_before: case h
ι : Type ?u.67466
V : Type u
inst✝¹⁴ : Category V
inst✝¹³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹² : HasImage f
g : B ⟶ C
inst✝¹¹ : HasKernel g
w : f ≫ g = 0
A' B' C' : V
f' : A' ⟶ B'
inst✝¹⁰ : HasImage f'
g' : B' ⟶ C'
inst✝⁹ : HasKernel g'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
inst✝⁸ : HasImageMap α
β : Arrow.mk g ⟶ Arrow.mk g'
A₁ B₁ C₁ : V
f₁ : A₁ ⟶ B₁
inst✝⁷ : HasImage f₁
g₁ : B₁ ⟶ C₁
inst✝⁶ : HasKernel g₁
w₁ : f₁ ≫ g₁ = 0
A₂ B₂ C₂ : V
f₂ : A₂ ⟶ B₂
inst✝⁵ : HasImage f₂
g₂ : B₂ ⟶ C₂
inst✝⁴ : HasKernel g₂
w₂ : f₂ ≫ g₂ = 0
A₃ B₃ C₃ : V
f₃ : A₃ ⟶ B₃
inst✝³ : HasImage f₃
g₃ : B₃ ⟶ C₃
inst✝² : HasKernel g₃
w₃ : f₃ ≫ g₃ = 0
α₁ : Arrow.mk f₁ ⟶ Arrow.mk f₂
inst✝¹ : HasImageMap α₁
β₁ : Arrow.mk g₁ ⟶ Arrow.mk g₂
α₂ : Arrow.mk f₂ ⟶ Arrow.mk f₃
inst✝ : HasImageMap α₂
β₂ : Arrow.mk g₂ ⟶ Arrow.mk g₃
p : α.right = β.left
⊢ (imageToKernel f g w ≫ kernelSubobjectMap β) ≫ Subobject.arrow (kernelSubobject g') =
    (imageSubobjectMap α ≫ imageToKernel f' g' w') ≫ Subobject.arrow (kernelSubobject g')
Theorem: MeasureTheory.SignedMeasure.mutuallySingular_singularPart
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [mutuallySingular_ennreal_iff, singularPart_totalVariation]
state_before: α : Type u_1
β : Type ?u.301669
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
⊢ singularPart s μ ⟂ᵥ toENNRealVectorMeasure μ

tactic: change _ ⟂ₘ VectorMeasure.equivMeasure.toFun (VectorMeasure.equivMeasure.invFun μ)
state_before: α : Type u_1
β : Type ?u.301669
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ + Measure.singularPart (toJordanDecomposition s).negPart μ ⟂ₘ
    VectorMeasure.ennrealToMeasure (toENNRealVectorMeasure μ)

tactic: rw [VectorMeasure.equivMeasure.right_inv μ]
state_before: α : Type u_1
β : Type ?u.301669
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ + Measure.singularPart (toJordanDecomposition s).negPart μ ⟂ₘ
    Equiv.toFun VectorMeasure.equivMeasure (Equiv.invFun VectorMeasure.equivMeasure μ)

tactic: exact (mutuallySingular_singularPart _ _).add_left (mutuallySingular_singularPart _ _)
state_before: α : Type u_1
β : Type ?u.301669
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ + Measure.singularPart (toJordanDecomposition s).negPart μ ⟂ₘ
    μ
Theorem: AffineMap.homothety_continuous
File: Mathlib/Topology/Algebra/Affine.lean

tactic: suffices ⇑(homothety x t) = fun y => t • (y - x) + x by
  rw [this]
  exact ((continuous_id.sub continuous_const).const_smul _).add continuous_const
state_before: R : Type u_2
E : Type ?u.12383
F : Type u_1
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : CommRing R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
⊢ Continuous ↑(homothety x t)

tactic: ext y
state_before: R : Type u_2
E : Type ?u.12383
F : Type u_1
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : CommRing R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
⊢ ↑(homothety x t) = fun y => t • (y - x) + x

tactic: simp [homothety_apply]
state_before: case h
R : Type u_2
E : Type ?u.12383
F : Type u_1
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : CommRing R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
y : F
⊢ ↑(homothety x t) y = t • (y - x) + x

tactic: rw [this]
state_before: R : Type u_2
E : Type ?u.12383
F : Type u_1
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : CommRing R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
this : ↑(homothety x t) = fun y => t • (y - x) + x
⊢ Continuous ↑(homothety x t)

tactic: exact ((continuous_id.sub continuous_const).const_smul _).add continuous_const
state_before: R : Type u_2
E : Type ?u.12383
F : Type u_1
inst✝⁷ : AddCommGroup E
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : CommRing R
inst✝¹ : Module R F
inst✝ : ContinuousConstSMul R F
x : F
t : R
this : ↑(homothety x t) = fun y => t • (y - x) + x
⊢ Continuous fun y => t • (y - x) + x
Theorem: MonoidHom.ker_transferSylow_isComplement'
File: Mathlib/GroupTheory/Transfer.lean

tactic: have hf : Function.Bijective ((transferSylow P hP).restrict (P : Subgroup G)) :=
  (transferSylow_restrict_eq_pow P hP).symm ▸
    (P.2.powEquiv'
        (not_dvd_index_sylow P
          (mt index_eq_zero_of_relindex_eq_zero index_ne_zero_of_finite))).bijective
state_before: G : Type u_1
inst✝⁴ : Group G
H : Subgroup G
A : Type ?u.1410107
inst✝³ : CommGroup A
ϕ : { x // x ∈ H } →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : normalizer ↑P ≤ centralizer ↑P
inst✝² : Fact (Nat.Prime p)
inst✝¹ : Finite (Sylow p G)
inst✝ : FiniteIndex ↑P
⊢ IsComplement' (ker (transferSylow P hP)) ↑P

tactic: rw [Function.Bijective, ← range_top_iff_surjective, restrict_range] at hf
state_before: G : Type u_1
inst✝⁴ : Group G
H : Subgroup G
A : Type ?u.1410107
inst✝³ : CommGroup A
ϕ : { x // x ∈ H } →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : normalizer ↑P ≤ centralizer ↑P
inst✝² : Fact (Nat.Prime p)
inst✝¹ : Finite (Sylow p G)
inst✝ : FiniteIndex ↑P
hf : Function.Bijective ↑(restrict (transferSylow P hP) ↑P)
⊢ IsComplement' (ker (transferSylow P hP)) ↑P

tactic: have := range_top_iff_surjective.mp (top_le_iff.mp (hf.2.ge.trans
  (map_le_range (transferSylow P hP) P)))
state_before: G : Type u_1
inst✝⁴ : Group G
H : Subgroup G
A : Type ?u.1410107
inst✝³ : CommGroup A
ϕ : { x // x ∈ H } →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : normalizer ↑P ≤ centralizer ↑P
inst✝² : Fact (Nat.Prime p)
inst✝¹ : Finite (Sylow p G)
inst✝ : FiniteIndex ↑P
hf : Function.Injective ↑(restrict (transferSylow P hP) ↑P) ∧ map (transferSylow P hP) ↑P = ⊤
⊢ IsComplement' (ker (transferSylow P hP)) ↑P

tactic: rw [← (comap_injective this).eq_iff, comap_top, comap_map_eq, sup_comm, SetLike.ext'_iff,
  normal_mul, ← ker_eq_bot_iff, ← (map_injective (P : Subgroup G).subtype_injective).eq_iff,
  ker_restrict, subgroupOf_map_subtype, Subgroup.map_bot, coe_top] at hf
state_before: G : Type u_1
inst✝⁴ : Group G
H : Subgroup G
A : Type ?u.1410107
inst✝³ : CommGroup A
ϕ : { x // x ∈ H } →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : normalizer ↑P ≤ centralizer ↑P
inst✝² : Fact (Nat.Prime p)
inst✝¹ : Finite (Sylow p G)
inst✝ : FiniteIndex ↑P
hf : Function.Injective ↑(restrict (transferSylow P hP) ↑P) ∧ map (transferSylow P hP) ↑P = ⊤
this : Function.Surjective ↑(transferSylow P hP)
⊢ IsComplement' (ker (transferSylow P hP)) ↑P

tactic: exact isComplement'_of_disjoint_and_mul_eq_univ (disjoint_iff.2 hf.1) hf.2
state_before: G : Type u_1
inst✝⁴ : Group G
H : Subgroup G
A : Type ?u.1410107
inst✝³ : CommGroup A
ϕ : { x // x ∈ H } →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : normalizer ↑P ≤ centralizer ↑P
inst✝² : Fact (Nat.Prime p)
inst✝¹ : Finite (Sylow p G)
inst✝ : FiniteIndex ↑P
hf✝ : Function.Injective ↑(restrict (transferSylow P hP) ↑P) ∧ ker (transferSylow P hP) ⊔ ↑P = ⊤
hf : ker (transferSylow P hP) ⊓ ↑P = ⊥ ∧ ↑(ker (transferSylow P hP)) * ↑↑P = Set.univ
this : Function.Surjective ↑(transferSylow P hP)
⊢ IsComplement' (ker (transferSylow P hP)) ↑P
Theorem: Monoid.fg_iff_submonoid_fg
File: Mathlib/GroupTheory/Finiteness.lean

tactic: conv_rhs => rw [← N.range_subtype, MonoidHom.mrange_eq_map]
state_before: M : Type u_1
N✝ : Type ?u.43187
inst✝¹ : Monoid M
inst✝ : AddMonoid N✝
N : Submonoid M
⊢ FG { x // x ∈ N } ↔ Submonoid.FG N

tactic: exact ⟨fun h => h.out.map N.subtype, fun h => ⟨h.map_injective N.subtype Subtype.coe_injective⟩⟩
state_before: M : Type u_1
N✝ : Type ?u.43187
inst✝¹ : Monoid M
inst✝ : AddMonoid N✝
N : Submonoid M
⊢ FG { x // x ∈ N } ↔ Submonoid.FG (Submonoid.map (Submonoid.subtype N) ⊤)
Theorem: Basis.toMatrix_self
File: Mathlib/LinearAlgebra/Matrix/Basis.lean

tactic: unfold Basis.toMatrix
state_before: ι : Type u_1
ι' : Type ?u.147575
κ : Type ?u.147578
κ' : Type ?u.147581
R : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
R₂ : Type ?u.147774
M₂ : Type ?u.147777
inst✝³ : CommRing R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
e : Basis ι R M
v : ι' → M
i : ι
j : ι'
inst✝ : DecidableEq ι
⊢ toMatrix e ↑e = 1

tactic: ext (i j)
state_before: ι : Type u_1
ι' : Type ?u.147575
κ : Type ?u.147578
κ' : Type ?u.147581
R : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
R₂ : Type ?u.147774
M₂ : Type ?u.147777
inst✝³ : CommRing R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
e : Basis ι R M
v : ι' → M
i : ι
j : ι'
inst✝ : DecidableEq ι
⊢ (fun i j => ↑(↑e.repr (↑e j)) i) = 1

tactic: simp [Basis.equivFun, Matrix.one_apply, Finsupp.single_apply, eq_comm]
state_before: case a.h
ι : Type u_1
ι' : Type ?u.147575
κ : Type ?u.147578
κ' : Type ?u.147581
R : Type u_2
M : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
R₂ : Type ?u.147774
M₂ : Type ?u.147777
inst✝³ : CommRing R₂
inst✝² : AddCommGroup M₂
inst✝¹ : Module R₂ M₂
e : Basis ι R M
v : ι' → M
i✝ : ι
j✝ : ι'
inst✝ : DecidableEq ι
i j : ι
⊢ ↑(↑e.repr (↑e j)) i = OfNat.ofNat 1 i j
Theorem: NormedSpace.isVonNBounded_ball
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

tactic: rw [Metric.nhds_basis_ball.isVonNBounded_basis_iff, ← ball_normSeminorm 𝕜 E]
state_before: 𝕜 : Type u_1
𝕜' : Type ?u.235860
E : Type u_2
E' : Type ?u.235866
F : Type ?u.235869
ι : Type ?u.235872
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
⊢ Bornology.IsVonNBounded 𝕜 (Metric.ball 0 r)

tactic: exact fun ε hε => (normSeminorm 𝕜 E).ball_zero_absorbs_ball_zero hε
state_before: 𝕜 : Type u_1
𝕜' : Type ?u.235860
E : Type u_2
E' : Type ?u.235866
F : Type ?u.235869
ι : Type ?u.235872
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
r : ℝ
⊢ ∀ (i : ℝ), 0 < i → Absorbs 𝕜 (Seminorm.ball (normSeminorm 𝕜 E) 0 i) (Seminorm.ball (normSeminorm 𝕜 E) 0 r)
Theorem: CommGroupWithZero.normalize_eq_one
File: Mathlib/Algebra/GCDMonoid/Basic.lean

tactic: simp [normalize_apply, h0]
state_before: α : Type ?u.351800
G₀ : Type u_1
inst✝¹ : CommGroupWithZero G₀
inst✝ : DecidableEq G₀
a : G₀
h0 : a ≠ 0
⊢ ↑normalize a = 1
Theorem: PythagoreanTriple.mul
File: Mathlib/NumberTheory/PythagoreanTriples.lean

tactic: ring
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
⊢ k * x * (k * x) + k * y * (k * y) = k ^ 2 * (x * x + y * y)

tactic: rw [h.eq]
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
⊢ k ^ 2 * (x * x + y * y) = k ^ 2 * (z * z)

tactic: ring
state_before: x y z : ℤ
h : PythagoreanTriple x y z
k : ℤ
⊢ k ^ 2 * (z * z) = k * z * (k * z)
Theorem: sub_eq_add
File: Mathlib/Algebra/Ring/BooleanRing.lean

tactic: rw [sub_eq_add_neg, add_right_inj, neg_eq]
state_before: α : Type u_1
β : Type ?u.8324
γ : Type ?u.8327
inst✝ : BooleanRing α
a b : α
⊢ a - b = a + b
Theorem: Int.toNat_pred_coe_of_pos
File: Mathlib/Data/Int/Order/Basic.lean

tactic: simp [h, le_of_lt h, push_cast]
state_before: a b : ℤ
n : ℕ
i : ℤ
h : 0 < i
⊢ ↑(toNat i - 1) = i - 1
Theorem: HasDerivWithinAt.clog_real
File: Mathlib/Analysis/SpecialFunctions/Complex/LogDeriv.lean

tactic: simpa only [div_eq_inv_mul] using
  (hasStrictFDerivAt_log_real h₂).hasFDerivAt.comp_hasDerivWithinAt x h₁
state_before: α : Type ?u.49835
inst✝² : TopologicalSpace α
E : Type ?u.49841
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → ℂ
s : Set ℝ
x : ℝ
f' : ℂ
h₁ : HasDerivWithinAt f f' s x
h₂ : 0 < (f x).re ∨ (f x).im ≠ 0
⊢ HasDerivWithinAt (fun t => log (f t)) (f' / f x) s x
Theorem: Fintype.one_lt_card_iff_nontrivial
File: Mathlib/Data/Fintype/Card.lean

tactic: classical
  rw [← not_iff_not]
  push_neg
  rw [not_nontrivial_iff_subsingleton, card_le_one_iff_subsingleton]
state_before: α : Type u_1
β : Type ?u.23770
γ : Type ?u.23773
inst✝¹ : Fintype α
inst✝ : Fintype β
⊢ 1 < card α ↔ Nontrivial α

tactic: rw [← not_iff_not]
state_before: α : Type u_1
β : Type ?u.23770
γ : Type ?u.23773
inst✝¹ : Fintype α
inst✝ : Fintype β
⊢ 1 < card α ↔ Nontrivial α

tactic: push_neg
state_before: α : Type u_1
β : Type ?u.23770
γ : Type ?u.23773
inst✝¹ : Fintype α
inst✝ : Fintype β
⊢ ¬1 < card α ↔ ¬Nontrivial α

tactic: rw [not_nontrivial_iff_subsingleton, card_le_one_iff_subsingleton]
state_before: α : Type u_1
β : Type ?u.23770
γ : Type ?u.23773
inst✝¹ : Fintype α
inst✝ : Fintype β
⊢ card α ≤ 1 ↔ ¬Nontrivial α
Theorem: List.count_singleton'
File: Mathlib/Data/List/Count.lean

tactic: rw [count_cons]
state_before: α : Type u_1
l : List α
inst✝ : DecidableEq α
a b : α
⊢ count a [b] = if a = b then 1 else 0

tactic: rfl
state_before: α : Type u_1
l : List α
inst✝ : DecidableEq α
a b : α
⊢ (if a = b then succ (count a []) else count a []) = if a = b then 1 else 0
Theorem: ENNReal.mul_le_of_le_div
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [← inv_inv c]
state_before: α : Type ?u.290686
β : Type ?u.290689
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a ≤ b / c
⊢ a * c ≤ b

tactic: exact div_le_of_le_mul h
state_before: α : Type ?u.290686
β : Type ?u.290689
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a ≤ b / c
⊢ a * c⁻¹⁻¹ ≤ b
Theorem: PosNum.sub'_one
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases a <;> rfl
state_before: a : PosNum
⊢ sub' a 1 = toZNum (pred' a)
Theorem: divp_divp_eq_divp_mul
File: Mathlib/Algebra/Group/Units.lean

tactic: simp only [divp, mul_inv_rev, Units.val_mul, mul_assoc]
state_before: α : Type u
inst✝ : Monoid α
a b c x : α
u₁ u₂ : αˣ
⊢ x /ₚ u₁ /ₚ u₂ = x /ₚ (u₂ * u₁)
Theorem: Polynomial.leadingCoeff_X_sub_C
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [sub_eq_add_neg, ← map_neg C r, leadingCoeff_X_add_C]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝² : Ring R
inst✝¹ : Nontrivial R
inst✝ : Ring S
r : S
⊢ leadingCoeff (X - ↑C r) = 1
Theorem: Set.Ici_diff_Ioi
File: Mathlib/Data/Set/Intervals/Basic.lean

tactic: rw [diff_eq, compl_Ioi, Ici_inter_Iic]
state_before: α : Type u_1
β : Type ?u.61203
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ici a \ Ioi b = Icc a b
Theorem: Basis.forall_coord_eq_zero_iff
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp only [b.coord_apply, FunLike.ext_iff, Finsupp.zero_apply]
state_before: ι : Type u_3
ι' : Type ?u.68644
R : Type u_1
R₂ : Type ?u.68650
K : Type ?u.68653
M : Type u_2
M' : Type ?u.68659
M'' : Type ?u.68662
V : Type u
V' : Type ?u.68667
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x✝ x : M
⊢ (∀ (i : ι), ↑(coord b i) x = 0) ↔ ↑b.repr x = 0
Theorem: Complex.sin_pi_div_two_sub
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp [sub_eq_add_neg, sin_add]
state_before: x : ℂ
⊢ sin (↑π / 2 - x) = cos x
Theorem: CategoryTheory.Bicategory.associator_naturality_right
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 h' : c ⟶ d
η : h ⟶ h'
⊢ (f ≫ g) ◁ η ≫ (α_ f g h').hom = (α_ f g h).hom ≫ f ◁ g ◁ η
Theorem: MeasureTheory.AEEqFun.ext_iff
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [h]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.309500
δ : Type ?u.309503
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α →ₘ[μ] β
h : f = g
⊢ ↑f =ᵐ[μ] ↑g
Theorem: CategoryTheory.Limits.cokernel_map_comp_cokernelComparison
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: rw [← G.map_comp, hpq, G.map_comp]
state_before: C : Type u
inst✝⁸ : Category C
inst✝⁷ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁶ : Category D
inst✝⁵ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁴ : Functor.PreservesZeroMorphisms G
X' Y' : C
inst✝³ : HasCokernel f
inst✝² : HasCokernel (G.map f)
g : X' ⟶ Y'
inst✝¹ : HasCokernel g
inst✝ : HasCokernel (G.map g)
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map f ≫ G.map q = G.map p ≫ G.map g

tactic: rw [← G.map_comp, cokernel.condition, G.map_zero]
state_before: C : Type u
inst✝⁸ : Category C
inst✝⁷ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁶ : Category D
inst✝⁵ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁴ : Functor.PreservesZeroMorphisms G
X' Y' : C
inst✝³ : HasCokernel f
inst✝² : HasCokernel (G.map f)
g : X' ⟶ Y'
inst✝¹ : HasCokernel g
inst✝ : HasCokernel (G.map g)
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map f ≫ G.map (coequalizer.π f 0) = 0

tactic: rw [← G.map_comp, cokernel.condition, G.map_zero]
state_before: C : Type u
inst✝⁸ : Category C
inst✝⁷ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁶ : Category D
inst✝⁵ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁴ : Functor.PreservesZeroMorphisms G
X' Y' : C
inst✝³ : HasCokernel f
inst✝² : HasCokernel (G.map f)
g : X' ⟶ Y'
inst✝¹ : HasCokernel g
inst✝ : HasCokernel (G.map g)
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map g ≫ G.map (coequalizer.π g 0) = 0

tactic: simp only [← G.map_comp]
state_before: C : Type u
inst✝⁸ : Category C
inst✝⁷ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁶ : Category D
inst✝⁵ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁴ : Functor.PreservesZeroMorphisms G
X' Y' : C
inst✝³ : HasCokernel f
inst✝² : HasCokernel (G.map f)
g : X' ⟶ Y'
inst✝¹ : HasCokernel g
inst✝ : HasCokernel (G.map g)
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map (coequalizer.π f 0) ≫ G.map (cokernel.map f g p q hpq) = G.map q ≫ G.map (coequalizer.π g 0)

tactic: exact G.congr_map (cokernel.π_desc _ _ _)
state_before: C : Type u
inst✝⁸ : Category C
inst✝⁷ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
D : Type u₂
inst✝⁶ : Category D
inst✝⁵ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁴ : Functor.PreservesZeroMorphisms G
X' Y' : C
inst✝³ : HasCokernel f
inst✝² : HasCokernel (G.map f)
g : X' ⟶ Y'
inst✝¹ : HasCokernel g
inst✝ : HasCokernel (G.map g)
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map (coequalizer.π f 0 ≫ cokernel.map f g p q hpq) = G.map (q ≫ coequalizer.π g 0)
Theorem: Quaternion.normSq_exp
File: Mathlib/Analysis/NormedSpace/QuaternionExponential.lean

tactic: rw [exp_eq]
state_before: q : ℍ
⊢ ↑normSq (exp ℝ q) = ↑normSq (exp ℝ q.re • (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q))

tactic: rw [normSq_smul]
state_before: q : ℍ
⊢ ↑normSq (exp ℝ q.re • (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q)) =
    exp ℝ q.re ^ 2 * ↑normSq (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q)

tactic: congr 1
state_before: q : ℍ
⊢ exp ℝ q.re ^ 2 * ↑normSq (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q) =
    exp ℝ q.re ^ 2 * (Real.cos ‖im q‖ ^ 2 + Real.sin ‖im q‖ ^ 2)

tactic: obtain hv | hv := eq_or_ne ‖q.im‖ 0
state_before: case e_a
q : ℍ
⊢ ↑normSq (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q) = Real.cos ‖im q‖ ^ 2 + Real.sin ‖im q‖ ^ 2

tactic: rw [normSq_add, normSq_smul, star_smul, coe_mul_eq_smul, smul_re, smul_re, star_re, im_re,
  smul_zero, smul_zero, MulZeroClass.mul_zero, add_zero, div_pow, normSq_coe,
  normSq_eq_norm_mul_self, ← sq, div_mul_cancel _ (pow_ne_zero _ hv)]
state_before: case e_a.inr
q : ℍ
hv : ‖im q‖ ≠ 0
⊢ ↑normSq (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q) = Real.cos ‖im q‖ ^ 2 + Real.sin ‖im q‖ ^ 2

tactic: simp [hv]
state_before: case e_a.inl
q : ℍ
hv : ‖im q‖ = 0
⊢ ↑normSq (↑(Real.cos ‖im q‖) + (Real.sin ‖im q‖ / ‖im q‖) • im q) = Real.cos ‖im q‖ ^ 2 + Real.sin ‖im q‖ ^ 2

tactic: rw [Real.cos_sq_add_sin_sq, mul_one]
state_before: q : ℍ
⊢ exp ℝ q.re ^ 2 * (Real.cos ‖im q‖ ^ 2 + Real.sin ‖im q‖ ^ 2) = exp ℝ q.re ^ 2
Theorem: Asymptotics.isBigOWith_neg_right
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigOWith_def, norm_neg]
state_before: α : Type u_1
β : Type ?u.130316
E : Type u_2
F : Type ?u.130322
G : Type ?u.130325
E' : Type ?u.130328
F' : Type u_3
G' : Type ?u.130334
E'' : Type ?u.130337
F'' : Type ?u.130340
G'' : Type ?u.130343
R : Type ?u.130346
R' : Type ?u.130349
𝕜 : Type ?u.130352
𝕜' : Type ?u.130355
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (IsBigOWith c l f fun x => -g' x) ↔ IsBigOWith c l f g'
Theorem: ENNReal.toNNReal_div
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [div_eq_mul_inv, toNNReal_mul, toNNReal_inv, div_eq_mul_inv]
state_before: α : Type ?u.836623
β : Type ?u.836626
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
⊢ ENNReal.toNNReal (a / b) = ENNReal.toNNReal a / ENNReal.toNNReal b
Theorem: Ordinal.IsFundamentalSequence.ord_cof
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [hf.cof_eq]
state_before: α : Type ?u.68576
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
hf : IsFundamentalSequence a o f
i : Ordinal
hi : i < ord (cof a)
⊢ ord (cof a) ≤ o

tactic: have H := hf.cof_eq
state_before: α : Type ?u.68576
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
hf : IsFundamentalSequence a o f
⊢ IsFundamentalSequence a (ord (cof a)) fun i hi => f i (_ : i < o)

tactic: subst H
state_before: α : Type ?u.68576
r : α → α → Prop
a o : Ordinal
f : (b : Ordinal) → b < o → Ordinal
hf : IsFundamentalSequence a o f
H : ord (cof a) = o
⊢ IsFundamentalSequence a (ord (cof a)) fun i hi => f i (_ : i < o)

tactic: exact hf
state_before: α : Type ?u.68576
r : α → α → Prop
a : Ordinal
f : (b : Ordinal) → b < ord (cof a) → Ordinal
hf : IsFundamentalSequence a (ord (cof a)) f
⊢ IsFundamentalSequence a (ord (cof a)) fun i hi => f i (_ : i < ord (cof a))
Theorem: IsROrC.normSq_sub
File: Mathlib/Data/IsROrC/Basic.lean

tactic: simp only [normSq_add, sub_eq_add_neg, map_neg, mul_neg, normSq_neg, map_neg]
state_before: K : Type u_1
E : Type ?u.5157046
inst✝ : IsROrC K
z w : K
⊢ ↑normSq (z - w) = ↑normSq z + ↑normSq w - 2 * ↑re (z * ↑(starRingEnd K) w)
Theorem: summable_iff_vanishing
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.690029
δ : Type ?u.690032
inst✝³ : AddCommGroup α
inst✝² : UniformSpace α
inst✝¹ : UniformAddGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : CompleteSpace α
⊢ Summable f ↔ ∀ (e : Set α), e ∈ 𝓝 0 → ∃ s, ∀ (t : Finset β), Disjoint t s → ∑ b in t, f b ∈ e