1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: WeierstrassCurve.Affine.evalEval_polynomialX
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: simp only [polynomialX]
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
x y : R
⊢ evalEval x y W.polynomialX = W.a₁ * y - (3 * x ^ 2 + 2 * W.a₂ * x + W.a₄)
state_after: R : Type u
inst✝ : CommRing R
W : Affine R
x y : R
⊢ evalEval x y (C (C W.a₁) * Y - C (C 3 * X ^ 2 + C (2 * W.a₂) * X + C W.a₄)) =
    W.a₁ * y - (3 * x ^ 2 + 2 * W.a₂ * x + W.a₄)

tactic: eval_simp
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
x y : R
⊢ evalEval x y (C (C W.a₁) * Y - C (C 3 * X ^ 2 + C (2 * W.a₂) * X + C W.a₄)) =
    W.a₁ * y - (3 * x ^ 2 + 2 * W.a₂ * x + W.a₄)
state_after: no goals
Theorem: LowerSet.sdiff_singleton
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp [sdiff, erase]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : Preorder α
s✝ : LowerSet α
t : Set α
a✝ : α
s : LowerSet α
a : α
⊢ s.sdiff {a} = s.erase a
state_after: no goals
Theorem: comp_open_symm_mem_uniformity_sets
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: obtain ⟨t, ht₁, ht₂⟩ := comp_mem_uniformity_sets hs
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ ∃ t ∈ 𝓤 α, IsOpen t ∧ SymmetricRel t ∧ t ○ t ⊆ s
state_after: case intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set (α × α)
ht₁ : t ∈ 𝓤 α
ht₂ : t ○ t ⊆ s
⊢ ∃ t ∈ 𝓤 α, IsOpen t ∧ SymmetricRel t ∧ t ○ t ⊆ s

tactic: obtain ⟨u, ⟨hu₁, hu₂, hu₃⟩, hu₄ : u ⊆ t⟩ := uniformity_hasBasis_open_symmetric.mem_iff.mp ht₁
state_before: case intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set (α × α)
ht₁ : t ∈ 𝓤 α
ht₂ : t ○ t ⊆ s
⊢ ∃ t ∈ 𝓤 α, IsOpen t ∧ SymmetricRel t ∧ t ○ t ⊆ s
state_after: case intro.intro.intro.intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set (α × α)
ht₁ : t ∈ 𝓤 α
ht₂ : t ○ t ⊆ s
u : Set (α × α)
hu₄ : u ⊆ t
hu₁ : u ∈ 𝓤 α
hu₂ : IsOpen u
hu₃ : SymmetricRel u
⊢ ∃ t ∈ 𝓤 α, IsOpen t ∧ SymmetricRel t ∧ t ○ t ⊆ s

tactic: exact ⟨u, hu₁, hu₂, hu₃, (compRel_mono hu₄ hu₄).trans ht₂⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
t : Set (α × α)
ht₁ : t ∈ 𝓤 α
ht₂ : t ○ t ⊆ s
u : Set (α × α)
hu₄ : u ⊆ t
hu₁ : u ∈ 𝓤 α
hu₂ : IsOpen u
hu₃ : SymmetricRel u
⊢ ∃ t ∈ 𝓤 α, IsOpen t ∧ SymmetricRel t ∧ t ○ t ⊆ s
state_after: no goals
Theorem: CategoryTheory.Functor.Monoidal.leftUnitor_inv_app
File: Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean

tactic: rw [← cancel_mono ((λ_ (F.obj j)).hom), Iso.inv_hom_id, ← leftUnitor_hom_app,
  Iso.inv_hom_id_app]
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F : J ⥤ C
j : J
⊢ (λ_ F).inv.app j = (λ_ (F.obj j)).inv
state_after: no goals
Theorem: Set.image_neg_uIcc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ Neg.neg '' [[a, b]] = [[-a, -b]]
state_after: no goals
Theorem: BoxIntegral.Box.coe_splitLower
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: rw [splitLower, coe_mk']
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y : ι → ℝ
⊢ ↑(I.splitLower i x) = ↑I ∩ {y | y i ≤ x}
state_after: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y : ι → ℝ
⊢ (univ.pi fun i_1 => Ioc (I.lower i_1) (update I.upper i (min x (I.upper i)) i_1)) = ↑I ∩ {y | y i ≤ x}

tactic: ext y
state_before: ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y : ι → ℝ
⊢ (univ.pi fun i_1 => Ioc (I.lower i_1) (update I.upper i (min x (I.upper i)) i_1)) = ↑I ∩ {y | y i ≤ x}
state_after: case h
ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y✝ y : ι → ℝ
⊢ (y ∈ univ.pi fun i_1 => Ioc (I.lower i_1) (update I.upper i (min x (I.upper i)) i_1)) ↔ y ∈ ↑I ∩ {y | y i ≤ x}

tactic: simp only [mem_univ_pi, mem_Ioc, mem_inter_iff, mem_coe, mem_setOf_eq, forall_and, ← Pi.le_def,
  le_update_iff, le_min_iff, and_assoc, and_forall_ne (p := fun j => y j ≤ upper I j) i, mem_def]
state_before: case h
ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y✝ y : ι → ℝ
⊢ (y ∈ univ.pi fun i_1 => Ioc (I.lower i_1) (update I.upper i (min x (I.upper i)) i_1)) ↔ y ∈ ↑I ∩ {y | y i ≤ x}
state_after: case h
ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y✝ y : ι → ℝ
⊢ (∀ (x : ι), I.lower x < y x) ∧ y i ≤ x ∧ y ≤ I.upper ↔ (∀ (x : ι), I.lower x < y x) ∧ y ≤ I.upper ∧ y i ≤ x

tactic: rw [and_comm (a := y i ≤ x)]
state_before: case h
ι : Type u_1
M : Type u_2
n : ℕ
I : Box ι
i : ι
x : ℝ
y✝ y : ι → ℝ
⊢ (∀ (x : ι), I.lower x < y x) ∧ y i ≤ x ∧ y ≤ I.upper ↔ (∀ (x : ι), I.lower x < y x) ∧ y ≤ I.upper ∧ y i ≤ x
state_after: no goals
Theorem: continuous_inf_rng
File: Mathlib/Topology/Order.lean

tactic: simp only [continuous_iff_coinduced_le, le_inf_iff]
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t₁ : TopologicalSpace α
t₂ t₃ : TopologicalSpace β
⊢ Continuous f ↔ Continuous f ∧ Continuous f
state_after: no goals
Theorem: Set.iUnion_Ioc_right
File: Mathlib/Order/Interval/Set/Disjoint.lean

tactic: simp only [← Ioi_inter_Iic, ← inter_iUnion, iUnion_Iic, inter_univ]
state_before: ι : Sort u
α : Type v
β : Type w
inst✝ : Preorder α
a✝ b c a : α
⊢ ⋃ b, Ioc a b = Ioi a
state_after: no goals
Theorem: Complex.cpow_natCast
File: Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean

tactic: simpa using cpow_nat_mul x n 1
state_before: x : ℂ
n : ℕ
⊢ x ^ ↑n = x ^ n
state_after: no goals
Theorem: CategoryTheory.ShortComplex.cycles_ext_iff
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: rw [cancel_mono]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
inst✝ : S.HasLeftHomology
A : C
f₁ f₂ : A ⟶ S.cycles
⊢ f₁ = f₂ ↔ f₁ ≫ S.iCycles = f₂ ≫ S.iCycles
state_after: no goals
Theorem: ENNReal.rpow_one_div_le_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: nth_rw 1 [← ENNReal.rpow_one y]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (1 / z) ≤ y ↔ x ≤ y ^ z
state_after: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (1 / z) ≤ y ^ 1 ↔ x ≤ y ^ z

tactic: nth_rw 2 [← @_root_.mul_inv_cancel _ _ z hz.ne.symm]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (1 / z) ≤ y ^ 1 ↔ x ≤ y ^ z
state_after: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (1 / z) ≤ y ^ (z * z⁻¹) ↔ x ≤ y ^ z

tactic: rw [ENNReal.rpow_mul, ← one_div, ENNReal.rpow_le_rpow_iff (one_div_pos.2 hz)]
state_before: x y : ℝ≥0∞
z : ℝ
hz : 0 < z
⊢ x ^ (1 / z) ≤ y ^ (z * z⁻¹) ↔ x ≤ y ^ z
state_after: no goals
Theorem: LinearMap.IsSymmetric.conj_eigenvalue_eq_self
File: Mathlib/Analysis/InnerProductSpace/Spectrum.lean

tactic: obtain ⟨v, hv₁, hv₂⟩ := hμ.exists_hasEigenvector
state_before: 𝕜 : Type u_1
inst✝² : RCLike 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
μ : 𝕜
hμ : HasEigenvalue T μ
⊢ (starRingEnd 𝕜) μ = μ
state_after: case intro.intro
𝕜 : Type u_1
inst✝² : RCLike 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
μ : 𝕜
hμ : HasEigenvalue T μ
v : E
hv₁ : v ∈ eigenspace T μ
hv₂ : v ≠ 0
⊢ (starRingEnd 𝕜) μ = μ

tactic: rw [mem_eigenspace_iff] at hv₁
state_before: case intro.intro
𝕜 : Type u_1
inst✝² : RCLike 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
μ : 𝕜
hμ : HasEigenvalue T μ
v : E
hv₁ : v ∈ eigenspace T μ
hv₂ : v ≠ 0
⊢ (starRingEnd 𝕜) μ = μ
state_after: case intro.intro
𝕜 : Type u_1
inst✝² : RCLike 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
μ : 𝕜
hμ : HasEigenvalue T μ
v : E
hv₁ : T v = μ • v
hv₂ : v ≠ 0
⊢ (starRingEnd 𝕜) μ = μ

tactic: simpa [hv₂, inner_smul_left, inner_smul_right, hv₁] using hT v v
state_before: case intro.intro
𝕜 : Type u_1
inst✝² : RCLike 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
μ : 𝕜
hμ : HasEigenvalue T μ
v : E
hv₁ : T v = μ • v
hv₂ : v ≠ 0
⊢ (starRingEnd 𝕜) μ = μ
state_after: no goals
Theorem: SetTheory.PGame.Impartial.exists_right_move_equiv_iff_fuzzy_zero
File: Mathlib/SetTheory/Game/Impartial.lean

tactic: refine ⟨fun ⟨i, hi⟩ => (fuzzy_zero_iff_lf G).2 (lf_of_moveRight_le hi.1), fun hn => ?_⟩
state_before: G : PGame
inst✝ : G.Impartial
⊢ (∃ j, G.moveRight j ≈ 0) ↔ G ‖ 0
state_after: G : PGame
inst✝ : G.Impartial
hn : G ‖ 0
⊢ ∃ j, G.moveRight j ≈ 0

tactic: rw [fuzzy_zero_iff_lf G, lf_zero_le] at hn
state_before: G : PGame
inst✝ : G.Impartial
hn : G ‖ 0
⊢ ∃ j, G.moveRight j ≈ 0
state_after: G : PGame
inst✝ : G.Impartial
hn : ∃ j, G.moveRight j ≤ 0
⊢ ∃ j, G.moveRight j ≈ 0

tactic: cases' hn with i hi
state_before: G : PGame
inst✝ : G.Impartial
hn : ∃ j, G.moveRight j ≤ 0
⊢ ∃ j, G.moveRight j ≈ 0
state_after: case intro
G : PGame
inst✝ : G.Impartial
i : G.RightMoves
hi : G.moveRight i ≤ 0
⊢ ∃ j, G.moveRight j ≈ 0

tactic: exact ⟨i, (equiv_zero_iff_le _).2 hi⟩
state_before: case intro
G : PGame
inst✝ : G.Impartial
i : G.RightMoves
hi : G.moveRight i ≤ 0
⊢ ∃ j, G.moveRight j ≈ 0
state_after: no goals
Theorem: WittVector.v2_coeff
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: fin_cases i <;> simp
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
p' : ℕ
R' : Type u_2
x y : WittVector p' R'
i : Fin 2
⊢ (![x, y] i).coeff = ![x.coeff, y.coeff] i
state_after: no goals
Theorem: HurwitzZeta.completedHurwitzZetaEven_one_sub
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: rw [completedHurwitzZetaEven, completedCosZeta, sub_div,
  (by norm_num : (1 / 2 : ℂ) = ↑(1 / 2 : ℝ)),
  (by rfl : (1 / 2 : ℝ) = (hurwitzEvenFEPair a).k),
  (hurwitzEvenFEPair a).functional_equation (s / 2),
  (by rfl : (hurwitzEvenFEPair a).ε = 1),
  one_smul]
state_before: a : UnitAddCircle
s : ℂ
⊢ completedHurwitzZetaEven a (1 - s) = completedCosZeta a s
state_after: no goals

tactic: norm_num
state_before: a : UnitAddCircle
s : ℂ
⊢ 1 / 2 = ↑(1 / 2)
state_after: no goals

tactic: rfl
state_before: a : UnitAddCircle
s : ℂ
⊢ 1 / 2 = (hurwitzEvenFEPair a).k
state_after: no goals

tactic: rfl
state_before: a : UnitAddCircle
s : ℂ
⊢ (hurwitzEvenFEPair a).ε = 1
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.components_matrix
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: ext
state_before: J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
⊢ (matrix fun j k => components m j k) = m
state_after: case w.w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
j✝¹ : K
j✝ : J
⊢ ι f j✝ ≫ (matrix fun j k => components m j k) ≫ π g j✝¹ = ι f j✝ ≫ m ≫ π g j✝¹

tactic: simp [biproduct.components]
state_before: case w.w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
j✝¹ : K
j✝ : J
⊢ ι f j✝ ≫ (matrix fun j k => components m j k) ≫ π g j✝¹ = ι f j✝ ≫ m ≫ π g j✝¹
state_after: no goals
Theorem: MeasureTheory.map_eq_setLIntegral_pdf
File: Mathlib/Probability/Density.lean

tactic: rw [← withDensity_apply _ hs, map_eq_withDensity_pdf X ℙ μ]
state_before: Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
m : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : autoParam (Measure E) _auto✝
hX : HasPDF X ℙ μ
s : Set E
hs : MeasurableSet s
⊢ (map X ℙ) s = ∫⁻ (x : E) in s, pdf X ℙ μ x ∂μ
state_after: no goals
Theorem: ZFSet.eq_empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: rw [ext_iff]
state_before: x : ZFSet
⊢ x = ∅ ↔ ∀ (y : ZFSet), y ∉ x
state_after: x : ZFSet
⊢ (∀ (z : ZFSet), z ∈ x ↔ z ∈ ∅) ↔ ∀ (y : ZFSet), y ∉ x

tactic: simp
state_before: x : ZFSet
⊢ (∀ (z : ZFSet), z ∈ x ↔ z ∈ ∅) ↔ ∀ (y : ZFSet), y ∉ x
state_after: no goals
Theorem: Finsupp.support_inf_union_support_sup
File: Mathlib/Data/Finsupp/Order.lean

tactic: ext
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Zero α
inst✝¹ : DecidableEq ι
inst✝ : Lattice α
f g : ι →₀ α
⊢ (↑((f ⊓ g).support ∪ (f ⊔ g).support))ᶜ = (↑(f.support ∪ g.support))ᶜ
state_after: case h
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Zero α
inst✝¹ : DecidableEq ι
inst✝ : Lattice α
f g : ι →₀ α
x✝ : ι
⊢ x✝ ∈ (↑((f ⊓ g).support ∪ (f ⊔ g).support))ᶜ ↔ x✝ ∈ (↑(f.support ∪ g.support))ᶜ

tactic: simp [inf_eq_and_sup_eq_iff]
state_before: case h
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝² : Zero α
inst✝¹ : DecidableEq ι
inst✝ : Lattice α
f g : ι →₀ α
x✝ : ι
⊢ x✝ ∈ (↑((f ⊓ g).support ∪ (f ⊔ g).support))ᶜ ↔ x✝ ∈ (↑(f.support ∪ g.support))ᶜ
state_after: no goals
Theorem: IsLocalization.smul_toInvSubmonoid
File: Mathlib/RingTheory/Localization/InvSubmonoid.lean

tactic: convert mul_toInvSubmonoid M S m
state_before: R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
⊢ m • ↑((toInvSubmonoid M S) m) = 1
state_after: case h.e'_2.h.e
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
⊢ HSMul.hSMul m = HMul.hMul ((algebraMap R S) ↑m)

tactic: ext
state_before: case h.e'_2.h.e
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
⊢ HSMul.hSMul m = HMul.hMul ((algebraMap R S) ↑m)
state_after: case h.e'_2.h.e.h
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
x✝ : S
⊢ m • x✝ = (algebraMap R S) ↑m * x✝

tactic: rw [← Algebra.smul_def]
state_before: case h.e'_2.h.e.h
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
x✝ : S
⊢ m • x✝ = (algebraMap R S) ↑m * x✝
state_after: case h.e'_2.h.e.h
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
x✝ : S
⊢ m • x✝ = ↑m • x✝

tactic: rfl
state_before: case h.e'_2.h.e.h
R : Type u_1
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_2
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
m : ↥M
x✝ : S
⊢ m • x✝ = ↑m • x✝
state_after: no goals
Theorem: egauge_eq_top
File: Mathlib/Analysis/Convex/EGauge.lean

tactic: simp [egauge]
state_before: 𝕜 : Type u_1
inst✝¹ : NNNorm 𝕜
E : Type u_2
inst✝ : SMul 𝕜 E
c : 𝕜
s t : Set E
x : E
r : ℝ≥0∞
⊢ egauge 𝕜 s x = ⊤ ↔ ∀ (c : 𝕜), x ∉ c • s
state_after: no goals
Theorem: le_inv_mul_iff_le
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_le_mul_iff_left b, mul_one, mul_inv_cancel_left]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ 1 ≤ b⁻¹ * a ↔ b ≤ a
state_after: no goals
Theorem: Real.log_pos_iff
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [← log_one]
state_before: x y : ℝ
hx : 0 < x
⊢ 0 < log x ↔ 1 < x
state_after: x y : ℝ
hx : 0 < x
⊢ log 1 < log x ↔ 1 < x

tactic: exact log_lt_log_iff zero_lt_one hx
state_before: x y : ℝ
hx : 0 < x
⊢ log 1 < log x ↔ 1 < x
state_after: no goals
Theorem: CategoryTheory.SimplicialCategory.sHomWhiskerLeft_id
File: Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean

tactic: simp [sHomWhiskerLeft, homEquiv_id]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : SimplicialCategory C
K L : C
⊢ sHomWhiskerLeft K (𝟙 L) = 𝟙 (sHom K L)
state_after: no goals
Theorem: Orientation.kahler_eq_zero_iff
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: refine ⟨o.eq_zero_or_eq_zero_of_kahler_eq_zero, ?_⟩
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ (o.kahler x) y = 0 ↔ x = 0 ∨ y = 0
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ x = 0 ∨ y = 0 → (o.kahler x) y = 0

tactic: rintro (rfl | rfl) <;> simp
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ x = 0 ∨ y = 0 → (o.kahler x) y = 0
state_after: no goals
Theorem: PreQuasiregular.inv_add_add_mul_eq_zero
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

tactic: simpa [-Units.mul_inv] using congr($(u.mul_inv).val)
state_before: R : Type u_1
inst✝ : NonUnitalSemiring R
u : (PreQuasiregular R)ˣ
⊢ (↑u⁻¹).val + (↑u).val + (↑u).val * (↑u⁻¹).val = 0
state_after: no goals
Theorem: RatFunc.isCoprime_num_denom
File: Mathlib/FieldTheory/RatFunc/Basic.lean

tactic: induction' x using RatFunc.induction_on with p q hq
state_before: K : Type u
inst✝ : Field K
x : RatFunc K
⊢ IsCoprime x.num x.denom
state_after: case f
K : Type u
inst✝ : Field K
p q : K[X]
hq : q ≠ 0
⊢ IsCoprime ((algebraMap K[X] (RatFunc K)) p / (algebraMap K[X] (RatFunc K)) q).num
    ((algebraMap K[X] (RatFunc K)) p / (algebraMap K[X] (RatFunc K)) q).denom

tactic: rw [num_div, denom_div _ hq]
state_before: case f
K : Type u
inst✝ : Field K
p q : K[X]
hq : q ≠ 0
⊢ IsCoprime ((algebraMap K[X] (RatFunc K)) p / (algebraMap K[X] (RatFunc K)) q).num
    ((algebraMap K[X] (RatFunc K)) p / (algebraMap K[X] (RatFunc K)) q).denom
state_after: case f
K : Type u
inst✝ : Field K
p q : K[X]
hq : q ≠ 0
⊢ IsCoprime (C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q)) (C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q))

tactic: exact (isCoprime_mul_unit_left
  ((leadingCoeff_ne_zero.2 <| right_div_gcd_ne_zero hq).isUnit.inv.map C) _ _).2
    (isCoprime_div_gcd_div_gcd hq)
state_before: case f
K : Type u
inst✝ : Field K
p q : K[X]
hq : q ≠ 0
⊢ IsCoprime (C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q)) (C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q))
state_after: no goals
Theorem: top_symmDiff'
File: Mathlib/Order/SymmDiff.lean

tactic: simp [symmDiff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : CoheytingAlgebra α
a : α
⊢ ⊤ ∆ a = ￢a
state_after: no goals
Theorem: CategoryTheory.congr_app
File: Mathlib/CategoryTheory/NatTrans.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F G : C ⥤ D
α β : NatTrans F G
h : α = β
X : C
⊢ α.app X = β.app X
state_after: no goals
Theorem: Finsupp.subset_mapRange_neLocus
File: Mathlib/Data/Finsupp/NeLocus.lean

tactic: simpa only [mem_neLocus, mapRange_apply, not_imp_not] using congr_arg F
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq N
inst✝² : Zero N
inst✝¹ : DecidableEq M
inst✝ : Zero M
f g : α →₀ N
F : N → M
F0 : F 0 = 0
x : α
⊢ x ∈ (mapRange F F0 f).neLocus (mapRange F F0 g) → x ∈ f.neLocus g
state_after: no goals
Theorem: Equiv.Perm.sameCycle_apply_right
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [sameCycle_comm, sameCycle_apply_left, sameCycle_comm]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
p : α → Prop
x y z : α
⊢ f.SameCycle x (f y) ↔ f.SameCycle x y
state_after: no goals
Theorem: CauSeq.inf_limZero
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: let ⟨H₁, H₂⟩ := H _ ij
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
⊢ |↑(f ⊓ g) j| < ε
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : |↑f j| < ε
H₂ : |↑g j| < ε
⊢ |↑(f ⊓ g) j| < ε

tactic: rw [abs_lt] at H₁ H₂ ⊢
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : |↑f j| < ε
H₂ : |↑g j| < ε
⊢ |↑(f ⊓ g) j| < ε
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : -ε < ↑f j ∧ ↑f j < ε
H₂ : -ε < ↑g j ∧ ↑g j < ε
⊢ -ε < ↑(f ⊓ g) j ∧ ↑(f ⊓ g) j < ε

tactic: exact ⟨lt_inf_iff.mpr ⟨H₁.1, H₂.1⟩, inf_lt_iff.mpr (Or.inl H₁.2)⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrderedField α
f g : CauSeq α abs
hf : f.LimZero
hg : g.LimZero
ε : α
ε0 : ε > 0
i : ℕ
H : ∀ j ≥ i, |↑f j| < ε ∧ |↑g j| < ε
j : ℕ
ij : j ≥ i
H₁ : -ε < ↑f j ∧ ↑f j < ε
H₂ : -ε < ↑g j ∧ ↑g j < ε
⊢ -ε < ↑(f ⊓ g) j ∧ ↑(f ⊓ g) j < ε
state_after: no goals
Theorem: LieAlgebra.isNilpotent_range_ad_iff
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: refine ⟨fun h => ?_, ?_⟩
state_before: R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
⊢ IsNilpotent R ↥(ad R L).range ↔ IsNilpotent R L
state_after: case refine_1
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R ↥(ad R L).range
⊢ IsNilpotent R L

case refine_2
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
⊢ IsNilpotent R L → IsNilpotent R ↥(ad R L).range

tactic: have : (ad R L).ker = center R L := by simp
state_before: case refine_1
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R ↥(ad R L).range
⊢ IsNilpotent R L
state_after: case refine_1
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R ↥(ad R L).range
this : (ad R L).ker = center R L
⊢ IsNilpotent R L

tactic: exact
  LieAlgebra.nilpotent_of_nilpotent_quotient (le_of_eq this)
    ((ad R L).quotKerEquivRange.nilpotent_iff_equiv_nilpotent.mpr h)
state_before: case refine_1
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R ↥(ad R L).range
this : (ad R L).ker = center R L
⊢ IsNilpotent R L
state_after: no goals

tactic: simp
state_before: R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R ↥(ad R L).range
⊢ (ad R L).ker = center R L
state_after: no goals

tactic: intro h
state_before: case refine_2
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
⊢ IsNilpotent R L → IsNilpotent R ↥(ad R L).range
state_after: case refine_2
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R L
⊢ IsNilpotent R ↥(ad R L).range

tactic: exact (ad R L).isNilpotent_range
state_before: case refine_2
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
h : IsNilpotent R L
⊢ IsNilpotent R ↥(ad R L).range
state_after: no goals