1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: TopologicalSpace.Compacts.coe_finset_sup
File: Mathlib/Topology/Sets/Compacts.lean

tactic: refine Finset.cons_induction_on s rfl fun a s _ h => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_4
s : Finset ι
f : ι → Compacts α
⊢ ↑(s.sup f) = s.sup fun i => ↑(f i)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_4
s✝ : Finset ι
f : ι → Compacts α
a : ι
s : Finset ι
x✝ : a ∉ s
h : ↑(s.sup f) = s.sup fun i => ↑(f i)
⊢ ↑((Finset.cons a s x✝).sup f) = (Finset.cons a s x✝).sup fun i => ↑(f i)

tactic: simp_rw [Finset.sup_cons, coe_sup, sup_eq_union]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_4
s✝ : Finset ι
f : ι → Compacts α
a : ι
s : Finset ι
x✝ : a ∉ s
h : ↑(s.sup f) = s.sup fun i => ↑(f i)
⊢ ↑((Finset.cons a s x✝).sup f) = (Finset.cons a s x✝).sup fun i => ↑(f i)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_4
s✝ : Finset ι
f : ι → Compacts α
a : ι
s : Finset ι
x✝ : a ∉ s
h : ↑(s.sup f) = s.sup fun i => ↑(f i)
⊢ ↑(f a) ∪ ↑(s.sup f) = ↑(f a) ∪ s.sup fun i => ↑(f i)

tactic: congr
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_4
s✝ : Finset ι
f : ι → Compacts α
a : ι
s : Finset ι
x✝ : a ∉ s
h : ↑(s.sup f) = s.sup fun i => ↑(f i)
⊢ ↑(f a) ∪ ↑(s.sup f) = ↑(f a) ∪ s.sup fun i => ↑(f i)
state_after: no goals
Theorem: Set.nonempty_of_nonempty_iUnion_eq_univ
File: Mathlib/Data/Set/Lattice.lean

tactic: simpa only [h_Union] using univ_nonempty
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
s : ι → Set α
inst✝ : Nonempty α
h_Union : ⋃ i, s i = univ
⊢ (⋃ i, s i).Nonempty
state_after: no goals
Theorem: Computation.terminates_congr
File: Mathlib/Data/Seq/Computation.lean

tactic: simp only [terminates_iff, exists_congr h]
state_before: α : Type u
β : Type v
γ : Type w
c₁ c₂ : Computation α
h : c₁ ~ c₂
⊢ c₁.Terminates ↔ c₂.Terminates
state_after: no goals
Theorem: IsLocalization.algEquiv_mk'
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: simp
state_before: R : Type u_1
inst✝⁷ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁶ : CommSemiring S
inst✝⁵ : Algebra R S
P : Type u_3
inst✝⁴ : CommSemiring P
inst✝³ : IsLocalization M S
g : R →+* P
hg : ∀ (y : ↥M), IsUnit (g ↑y)
Q : Type u_4
inst✝² : CommSemiring Q
inst✝¹ : Algebra R Q
inst✝ : IsLocalization M Q
x : R
y : ↥M
⊢ (algEquiv M S Q) (mk' S x y) = mk' Q x y
state_after: no goals
Theorem: Fin.one_mul'
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [Fin.mul_comm, Fin.mul_one']
state_before: n m : ℕ
inst✝ : NeZero n
k : Fin n
⊢ 1 * k = k
state_after: no goals
Theorem: vectorSpan_eq_span_vsub_set_right_ne
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: conv_lhs =>
  rw [vectorSpan_eq_span_vsub_set_right k hp, ← Set.insert_eq_of_mem hp, ←
    Set.insert_diff_singleton, Set.image_insert_eq]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
s : Set P
p : P
hp : p ∈ s
⊢ vectorSpan k s = Submodule.span k ((fun x => x -ᵥ p) '' (s \ {p}))
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
s : Set P
p : P
hp : p ∈ s
⊢ Submodule.span k (insert (p -ᵥ p) ((fun x => x -ᵥ p) '' (s \ {p}))) =
    Submodule.span k ((fun x => x -ᵥ p) '' (s \ {p}))

tactic: simp [Submodule.span_insert_eq_span]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
s : Set P
p : P
hp : p ∈ s
⊢ Submodule.span k (insert (p -ᵥ p) ((fun x => x -ᵥ p) '' (s \ {p}))) =
    Submodule.span k ((fun x => x -ᵥ p) '' (s \ {p}))
state_after: no goals
Theorem: LieSubmodule.map_le_range
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [← LieModuleHom.map_top]
state_before: R : Type u
L : Type v
M : 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
N : LieSubmodule R L M
M' : Type u_1
inst✝² : AddCommGroup M'
inst✝¹ : Module R M'
inst✝ : LieRingModule L M'
f : M →ₗ⁅R,L⁆ M'
⊢ map f N ≤ f.range
state_after: R : Type u
L : Type v
M : 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
N : LieSubmodule R L M
M' : Type u_1
inst✝² : AddCommGroup M'
inst✝¹ : Module R M'
inst✝ : LieRingModule L M'
f : M →ₗ⁅R,L⁆ M'
⊢ map f N ≤ map f ⊤

tactic: exact LieSubmodule.map_mono le_top
state_before: R : Type u
L : Type v
M : 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
N : LieSubmodule R L M
M' : Type u_1
inst✝² : AddCommGroup M'
inst✝¹ : Module R M'
inst✝ : LieRingModule L M'
f : M →ₗ⁅R,L⁆ M'
⊢ map f N ≤ map f ⊤
state_after: no goals
Theorem: NNReal.le_rpow_one_div_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [← rpow_le_rpow_iff hz, rpow_self_rpow_inv hz.ne']
state_before: w x✝ y✝ z✝ : ℝ
x y : ℝ≥0
z : ℝ
hz : 0 < z
⊢ x ≤ y ^ (1 / z) ↔ x ^ z ≤ y
state_after: no goals
Theorem: Quaternion.self_mul_star
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [mul_star_eq_coe, normSq_def]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
r x y z : R
a b c : ℍ[R]
⊢ a * star a = ↑(normSq a)
state_after: no goals
Theorem: Set.inv_mem_centralizer₀
File: Mathlib/Algebra/GroupWithZero/Center.lean

tactic: rw [h, inv_zero]
state_before: M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
ha : a ∈ s.centralizer
h : a = 0
⊢ a⁻¹ ∈ s.centralizer
state_after: M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
ha : a ∈ s.centralizer
h : a = 0
⊢ 0 ∈ s.centralizer

tactic: exact zero_mem_centralizer s
state_before: M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
ha : a ∈ s.centralizer
h : a = 0
⊢ 0 ∈ s.centralizer
state_after: no goals

tactic: rw [mul_inv_eq_iff_eq_mul₀ ha0, mul_assoc, eq_inv_mul_iff_mul_eq₀ ha0, ha c hc]
state_before: M₀ : Type u_1
G₀ : Type u_2
inst✝ : GroupWithZero G₀
s : Set G₀
a b : G₀
ha : a ∈ s.centralizer
ha0 : a ≠ 0
c : G₀
hc : c ∈ s
⊢ c * a⁻¹ = a⁻¹ * c
state_after: no goals
Theorem: RCLike.intervalIntegral_ofReal
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp only [intervalIntegral, integral_ofReal, RCLike.ofReal_sub]
state_before: ι : Type u_1
𝕜✝ : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
𝕜 : Type u_6
inst✝ : RCLike 𝕜
a b : ℝ
μ : Measure ℝ
f : ℝ → ℝ
⊢ ∫ (x : ℝ) in a..b, ↑(f x) ∂μ = ↑(∫ (x : ℝ) in a..b, f x ∂μ)
state_after: no goals
Theorem: dite_pow
File: Mathlib/Algebra/Group/Basic.lean

tactic: split_ifs <;> rfl
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝¹ : Pow α β
p : Prop
inst✝ : Decidable p
a : p → α
b : ¬p → α
c : β
⊢ (if h : p then a h else b h) ^ c = if h : p then a h ^ c else b h ^ c
state_after: no goals
Theorem: Finset.erase_nonempty
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [Finset.Nonempty, mem_erase, and_comm (b := _ ∈ _)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
ha : a ∈ s
⊢ (s.erase a).Nonempty ↔ s.Nontrivial
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
ha : a ∈ s
⊢ (∃ x ∈ s, x ≠ a) ↔ s.Nontrivial

tactic: refine ⟨?_, fun hs ↦ hs.exists_ne a⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
ha : a ∈ s
⊢ (∃ x ∈ s, x ≠ a) ↔ s.Nontrivial
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
ha : a ∈ s
⊢ (∃ x ∈ s, x ≠ a) → s.Nontrivial

tactic: rintro ⟨b, hb, hba⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
ha : a ∈ s
⊢ (∃ x ∈ s, x ≠ a) → s.Nontrivial
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b✝ : α
ha : a ∈ s
b : α
hb : b ∈ s
hba : b ≠ a
⊢ s.Nontrivial

tactic: exact ⟨_, hb, _, ha, hba⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t u v : Finset α
a b✝ : α
ha : a ∈ s
b : α
hb : b ∈ s
hba : b ≠ a
⊢ s.Nontrivial
state_after: no goals
Theorem: CategoryTheory.ShortComplex.rightHomologyMap'_add
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

tactic: have γ : RightHomologyMapData φ h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ rightHomologyMap' (φ + φ') h₁ h₂ = rightHomologyMap' φ h₁ h₂ + rightHomologyMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
⊢ rightHomologyMap' (φ + φ') h₁ h₂ = rightHomologyMap' φ h₁ h₂ + rightHomologyMap' φ' h₁ h₂

tactic: have γ' : RightHomologyMapData φ' h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
⊢ rightHomologyMap' (φ + φ') h₁ h₂ = rightHomologyMap' φ h₁ h₂ + rightHomologyMap' φ' h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
γ' : RightHomologyMapData φ' h₁ h₂
⊢ rightHomologyMap' (φ + φ') h₁ h₂ = rightHomologyMap' φ h₁ h₂ + rightHomologyMap' φ' h₁ h₂

tactic: simp only [γ.rightHomologyMap'_eq, γ'.rightHomologyMap'_eq,
  (γ.add γ').rightHomologyMap'_eq, RightHomologyMapData.add_φH]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
γ : RightHomologyMapData φ h₁ h₂
γ' : RightHomologyMapData φ' h₁ h₂
⊢ rightHomologyMap' (φ + φ') h₁ h₂ = rightHomologyMap' φ h₁ h₂ + rightHomologyMap' φ' h₁ h₂
state_after: no goals
Theorem: Real.continuousAt_tan
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean

tactic: refine ⟨fun hc h₀ => ?_, fun h => (hasDerivAt_tan h).continuousAt⟩
state_before: x : ℝ
⊢ ContinuousAt tan x ↔ cos x ≠ 0
state_after: x : ℝ
hc : ContinuousAt tan x
h₀ : cos x = 0
⊢ False

tactic: exact not_tendsto_nhds_of_tendsto_atTop (tendsto_abs_tan_of_cos_eq_zero h₀) _
  (hc.norm.tendsto.mono_left inf_le_left)
state_before: x : ℝ
hc : ContinuousAt tan x
h₀ : cos x = 0
⊢ False
state_after: no goals
Theorem: Scott.isωSup_iff_isLUB
File: Mathlib/Topology/OmegaCompletePartialOrder.lean

tactic: simp [IsωSup, IsLUB, IsLeast, upperBounds, lowerBounds]
state_before: α : Type u
inst✝ : Preorder α
c : Chain α
x : α
⊢ IsωSup c x ↔ IsLUB (range ⇑c) x
state_after: no goals
Theorem: FractionalIdeal.constant_factor_ne_zero
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: rw [Ideal.zero_eq_bot, Ideal.span_singleton_eq_bot] at h
state_before: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = spanSingleton R⁰ ((algebraMap R K) a)⁻¹ * ↑J
h : Ideal.span {a} = 0
⊢ False
state_after: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = spanSingleton R⁰ ((algebraMap R K) a)⁻¹ * ↑J
h : a = 0
⊢ False

tactic: rw [h, RingHom.map_zero, inv_zero, spanSingleton_zero, MulZeroClass.zero_mul] at haJ
state_before: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = spanSingleton R⁰ ((algebraMap R K) a)⁻¹ * ↑J
h : a = 0
⊢ False
state_after: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = 0
h : a = 0
⊢ False

tactic: exact hI haJ
state_before: R✝ : Type u_1
inst✝¹¹ : CommRing R✝
S : Submonoid R✝
P : Type u_2
inst✝¹⁰ : CommRing P
inst✝⁹ : Algebra R✝ P
loc : IsLocalization S P
R₁ : Type u_3
inst✝⁸ : CommRing R₁
K✝ : Type u_4
inst✝⁷ : Field K✝
inst✝⁶ : Algebra R₁ K✝
inst✝⁵ : IsFractionRing R₁ K✝
inst✝⁴ : IsDomain R₁
R : Type u_6
inst✝³ : CommRing R
K : Type u_5
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
I : FractionalIdeal R⁰ K
hI : I ≠ 0
a : R
J : Ideal R
haJ : I = 0
h : a = 0
⊢ False
state_after: no goals
Theorem: groupCohomology.oneCocycles_map_mul_of_isTrivial
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: rw [(mem_oneCocycles_iff f.1).1 f.2, apply_eq_self A.ρ g (f.1 h), add_comm]
state_before: k G : Type u
inst✝² : CommRing k
inst✝¹ : Group G
A : Rep k G
inst✝ : A.IsTrivial
f : ↥(oneCocycles A)
g h : G
⊢ ↑f (g * h) = ↑f g + ↑f h
state_after: no goals
Theorem: CategoryTheory.Pretriangulated.comp_distTriang_mor_zero₁₂
File: Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean

tactic: obtain ⟨c, hc⟩ :=
  complete_distinguished_triangle_morphism _ _ (contractible_distinguished T.obj₁) H (𝟙 T.obj₁)
    T.mor₁ rfl
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
H : T ∈ distinguishedTriangles
⊢ T.mor₁ ≫ T.mor₂ = 0
state_after: case intro
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
H : T ∈ distinguishedTriangles
c : (contractibleTriangle T.obj₁).obj₃ ⟶ T.obj₃
hc :
  (contractibleTriangle T.obj₁).mor₂ ≫ c = T.mor₁ ≫ T.mor₂ ∧
    (contractibleTriangle T.obj₁).mor₃ ≫ (shiftFunctor C 1).map (𝟙 T.obj₁) = c ≫ T.mor₃
⊢ T.mor₁ ≫ T.mor₂ = 0

tactic: simpa only [contractibleTriangle_mor₂, zero_comp] using hc.left.symm
state_before: case intro
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
H : T ∈ distinguishedTriangles
c : (contractibleTriangle T.obj₁).obj₃ ⟶ T.obj₃
hc :
  (contractibleTriangle T.obj₁).mor₂ ≫ c = T.mor₁ ≫ T.mor₂ ∧
    (contractibleTriangle T.obj₁).mor₃ ≫ (shiftFunctor C 1).map (𝟙 T.obj₁) = c ≫ T.mor₃
⊢ T.mor₁ ≫ T.mor₂ = 0
state_after: no goals
Theorem: Matrix.StdBasisMatrix.mul_same
File: Mathlib/Data/Matrix/Basis.lean

tactic: ext a b
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
k : n
d : α
⊢ stdBasisMatrix i j c * stdBasisMatrix j k d = stdBasisMatrix i k (c * d)
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
k : n
d : α
a b : n
⊢ (stdBasisMatrix i j c * stdBasisMatrix j k d) a b = stdBasisMatrix i k (c * d) a b

tactic: simp only [mul_apply, stdBasisMatrix, boole_mul]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
k : n
d : α
a b : n
⊢ (stdBasisMatrix i j c * stdBasisMatrix j k d) a b = stdBasisMatrix i k (c * d) a b
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
k : n
d : α
a b : n
⊢ (∑ x : n, (if i = a ∧ j = x then c else 0) * if j = x ∧ k = b then d else 0) = if i = a ∧ k = b then c * d else 0

tactic: by_cases h₁ : i = a <;> by_cases h₂ : k = b <;> simp [h₁, h₂]
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
i j : n
c : α
i' j' : n
inst✝ : Fintype n
k : n
d : α
a b : n
⊢ (∑ x : n, (if i = a ∧ j = x then c else 0) * if j = x ∧ k = b then d else 0) = if i = a ∧ k = b then c * d else 0
state_after: no goals
Theorem: Set.mul_mem_center
File: Mathlib/Algebra/Group/Center.lean

tactic: rw [hz₁.comm]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₁ * z₂ * a = z₂ * z₁ * a
state_after: no goals

tactic: rw [hz₁.mid_assoc z₂]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₂ * z₁ * a = z₂ * (z₁ * a)
state_after: no goals

tactic: rw [hz₁.comm, hz₂.comm]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ z₂ * (z₁ * a) = a * z₁ * z₂
state_after: no goals

tactic: rw [hz₂.right_assoc a z₁]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a : M
⊢ a * z₁ * z₂ = a * (z₁ * z₂)
state_after: no goals

tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * z₂ * (b * c) = z₁ * (z₂ * (b * c))
state_after: no goals

tactic: rw [hz₂.left_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * (b * c)) = z₁ * (z₂ * b * c)
state_after: no goals

tactic: rw [hz₁.left_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * b * c) = z₁ * (z₂ * b) * c
state_after: no goals

tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
b c : M
⊢ z₁ * (z₂ * b) * c = z₁ * z₂ * b * c
state_after: no goals

tactic: rw [hz₁.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * (z₁ * z₂) * c = a * z₁ * z₂ * c
state_after: no goals

tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * z₁ * z₂ * c = a * z₁ * (z₂ * c)
state_after: no goals

tactic: rw [hz₁.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * z₁ * (z₂ * c) = a * (z₁ * (z₂ * c))
state_after: no goals

tactic: rw [hz₂.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a c : M
⊢ a * (z₁ * (z₂ * c)) = a * (z₁ * z₂ * c)
state_after: no goals

tactic: rw [hz₂.right_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * b * (z₁ * z₂) = a * b * z₁ * z₂
state_after: no goals

tactic: rw [hz₁.right_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * b * z₁ * z₂ = a * (b * z₁) * z₂
state_after: no goals

tactic: rw [hz₂.right_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * (b * z₁) * z₂ = a * (b * z₁ * z₂)
state_after: no goals

tactic: rw [hz₁.mid_assoc]
state_before: M : Type u_1
inst✝¹ inst✝ : Mul M
z₁ z₂ : M
hz₁ : z₁ ∈ center M
hz₂ : z₂ ∈ center M
a b : M
⊢ a * (b * z₁ * z₂) = a * (b * (z₁ * z₂))
state_after: no goals
Theorem: Balanced.balancedHull_subset_of_subset
File: Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

tactic: intros x hx
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
ht : Balanced 𝕜 t
h : s ⊆ t
⊢ balancedHull 𝕜 s ⊆ t
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x✝ : E
ht : Balanced 𝕜 t
h : s ⊆ t
x : E
hx : x ∈ balancedHull 𝕜 s
⊢ x ∈ t

tactic: obtain ⟨r, hr, y, hy, rfl⟩ := mem_balancedHull_iff.1 hx
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x✝ : E
ht : Balanced 𝕜 t
h : s ⊆ t
x : E
hx : x ∈ balancedHull 𝕜 s
⊢ x ∈ t
state_after: case intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
ht : Balanced 𝕜 t
h : s ⊆ t
r : 𝕜
hr : ‖r‖ ≤ 1
y : E
hy : y ∈ s
hx : (fun x => r • x) y ∈ balancedHull 𝕜 s
⊢ (fun x => r • x) y ∈ t

tactic: exact ht.smul_mem hr (h hy)
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
ht : Balanced 𝕜 t
h : s ⊆ t
r : 𝕜
hr : ‖r‖ ≤ 1
y : E
hy : y ∈ s
hx : (fun x => r • x) y ∈ balancedHull 𝕜 s
⊢ (fun x => r • x) y ∈ t
state_after: no goals
Theorem: MeasureTheory.setLIntegral_empty
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [Measure.restrict_empty, lintegral_zero_measure]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
⊢ ∫⁻ (x : α) in ∅, f x ∂μ = 0
state_after: no goals
Theorem: Finset.prod_range_add_one_eq_factorial
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: simp [factorial, Finset.range_succ, prod_range_add_one_eq_factorial n]
state_before: α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
s₂ s₁ s : Finset α
a : α
g f : α → M
n : ℕ
⊢ ∏ x ∈ range (n + 1), (x + 1) = (n + 1)!
state_after: no goals
Theorem: SignType.neg_eq_self_iff
File: Mathlib/Data/Sign.lean

tactic: cases a <;> decide
state_before: a : SignType
⊢ -a = a ↔ a = 0
state_after: no goals