1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsLocalizedModule.mk'_neg
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: delta mk'
state_before: R : Type u_1
inst✝¹⁷ : CommSemiring R
S : Submonoid R
M✝ : Type u_2
M'✝ : Type u_3
M'' : Type u_4
inst✝¹⁶ : AddCommMonoid M✝
inst✝¹⁵ : AddCommMonoid M'✝
inst✝¹⁴ : AddCommMonoid M''
A : Type u_5
inst✝¹³ : CommSemiring A
inst✝¹² : Algebra R A
inst✝¹¹ : Module A M'✝
inst✝¹⁰ : IsLocalization S A
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'✝
inst✝⁷ : Module R M''
inst✝⁶ : IsScalarTower R A M'✝
f✝ : M✝ →ₗ[R] M'✝
g : M✝ →ₗ[R] M''
inst✝⁵ : IsLocalizedModule S f✝
M : Type u_6
M' : Type u_7
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup M'
inst✝² : Module R M
inst✝¹ : Module R M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
m : M
s : ↥S
⊢ mk' f (-m) s = -mk' f m s
state_after: R : Type u_1
inst✝¹⁷ : CommSemiring R
S : Submonoid R
M✝ : Type u_2
M'✝ : Type u_3
M'' : Type u_4
inst✝¹⁶ : AddCommMonoid M✝
inst✝¹⁵ : AddCommMonoid M'✝
inst✝¹⁴ : AddCommMonoid M''
A : Type u_5
inst✝¹³ : CommSemiring A
inst✝¹² : Algebra R A
inst✝¹¹ : Module A M'✝
inst✝¹⁰ : IsLocalization S A
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'✝
inst✝⁷ : Module R M''
inst✝⁶ : IsScalarTower R A M'✝
f✝ : M✝ →ₗ[R] M'✝
g : M✝ →ₗ[R] M''
inst✝⁵ : IsLocalizedModule S f✝
M : Type u_6
M' : Type u_7
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup M'
inst✝² : Module R M
inst✝¹ : Module R M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
m : M
s : ↥S
⊢ (fromLocalizedModule S f) (LocalizedModule.mk (-m) s) = -(fromLocalizedModule S f) (LocalizedModule.mk m s)

tactic: rw [LocalizedModule.mk_neg, map_neg]
state_before: R : Type u_1
inst✝¹⁷ : CommSemiring R
S : Submonoid R
M✝ : Type u_2
M'✝ : Type u_3
M'' : Type u_4
inst✝¹⁶ : AddCommMonoid M✝
inst✝¹⁵ : AddCommMonoid M'✝
inst✝¹⁴ : AddCommMonoid M''
A : Type u_5
inst✝¹³ : CommSemiring A
inst✝¹² : Algebra R A
inst✝¹¹ : Module A M'✝
inst✝¹⁰ : IsLocalization S A
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'✝
inst✝⁷ : Module R M''
inst✝⁶ : IsScalarTower R A M'✝
f✝ : M✝ →ₗ[R] M'✝
g : M✝ →ₗ[R] M''
inst✝⁵ : IsLocalizedModule S f✝
M : Type u_6
M' : Type u_7
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup M'
inst✝² : Module R M
inst✝¹ : Module R M'
f : M →ₗ[R] M'
inst✝ : IsLocalizedModule S f
m : M
s : ↥S
⊢ (fromLocalizedModule S f) (LocalizedModule.mk (-m) s) = -(fromLocalizedModule S f) (LocalizedModule.mk m s)
state_after: no goals
Theorem: Set.pair_subset_iff
File: Mathlib/Data/Set/Basic.lean

tactic: rw [insert_subset_iff, singleton_subset_iff]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
⊢ {a, b} ⊆ s ↔ a ∈ s ∧ b ∈ s
state_after: no goals
Theorem: List.findIdx_eq
File: Mathlib/Data/List/Indexes.lean

tactic: refine ⟨fun f ↦ ⟨f ▸ (@findIdx_get _ p xs (f ▸ h)), fun _ hji ↦ not_of_lt_findIdx (f ▸ hji)⟩,
  fun ⟨h1, h2⟩ ↦ ?_⟩
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
⊢ findIdx p xs = i ↔ p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : p (xs.get ⟨i, h⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
⊢ findIdx p xs = i

tactic: apply Nat.le_antisymm _ (le_findIdx_of_not h h2)
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : p (xs.get ⟨i, h⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
⊢ findIdx p xs = i
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : p (xs.get ⟨i, h⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
⊢ findIdx p xs ≤ i

tactic: contrapose! h1
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : p (xs.get ⟨i, h⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
⊢ findIdx p xs ≤ i
state_after: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : i < findIdx p xs
⊢ p (xs.get ⟨i, h⟩) ≠ true

tactic: exact not_of_lt_findIdx h1
state_before: α : Type u
β : Type v
p : α → Bool
xs : List α
i : ℕ
h : i < xs.length
x✝ : p (xs.get ⟨i, h⟩) = true ∧ ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h2 : ∀ (j : ℕ) (hji : j < i), ¬p (xs.get ⟨j, ⋯⟩) = true
h1 : i < findIdx p xs
⊢ p (xs.get ⟨i, h⟩) ≠ true
state_after: no goals
Theorem: LSeriesSummable.sub
File: Mathlib/NumberTheory/LSeries/Linearity.lean

tactic: simpa only [LSeriesSummable, ← term_sub_apply] using Summable.sub hf hg
state_before: f g : ℕ → ℂ
s : ℂ
hf : LSeriesSummable f s
hg : LSeriesSummable g s
⊢ LSeriesSummable (f - g) s
state_after: no goals
Theorem: CategoryTheory.Limits.Multicofork.fst_app_right
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

tactic: rw [← K.w (WalkingMultispan.Hom.fst a)]
state_before: C : Type u
inst✝ : Category.{v, u} C
I : MultispanIndex C
K : Multicofork I
a : I.L
⊢ K.ι.app (WalkingMultispan.left a) = I.fst a ≫ K.π (I.fstFrom a)
state_after: C : Type u
inst✝ : Category.{v, u} C
I : MultispanIndex C
K : Multicofork I
a : I.L
⊢ I.multispan.map (WalkingMultispan.Hom.fst a) ≫ K.ι.app (WalkingMultispan.right (I.fstFrom a)) =
    I.fst a ≫ K.π (I.fstFrom a)

tactic: rfl
state_before: C : Type u
inst✝ : Category.{v, u} C
I : MultispanIndex C
K : Multicofork I
a : I.L
⊢ I.multispan.map (WalkingMultispan.Hom.fst a) ≫ K.ι.app (WalkingMultispan.right (I.fstFrom a)) =
    I.fst a ≫ K.π (I.fstFrom a)
state_after: no goals
Theorem: LSeries.term_sub
File: Mathlib/NumberTheory/LSeries/Linearity.lean

tactic: simp_rw [sub_eq_add_neg, term_add, term_neg]
state_before: f g : ℕ → ℂ
s : ℂ
⊢ term (f - g) s = term f s - term g s
state_after: no goals
Theorem: Matrix.IsDiag.smul
File: Mathlib/LinearAlgebra/Matrix/IsDiag.lean

tactic: intro i j h
state_before: α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝² : Monoid R
inst✝¹ : AddMonoid α
inst✝ : DistribMulAction R α
k : R
A : Matrix n n α
ha : A.IsDiag
⊢ (k • A).IsDiag
state_after: α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝² : Monoid R
inst✝¹ : AddMonoid α
inst✝ : DistribMulAction R α
k : R
A : Matrix n n α
ha : A.IsDiag
i j : n
h : i ≠ j
⊢ (k • A) i j = 0

tactic: simp [ha h]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
n : Type u_4
m : Type u_5
inst✝² : Monoid R
inst✝¹ : AddMonoid α
inst✝ : DistribMulAction R α
k : R
A : Matrix n n α
ha : A.IsDiag
i j : n
h : i ≠ j
⊢ (k • A) i j = 0
state_after: no goals
Theorem: ContinuousLinearMap.isPositive_zero
File: Mathlib/Analysis/InnerProductSpace/Positive.lean

tactic: refine ⟨.zero _, fun x => ?_⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
⊢ IsPositive 0
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
x : E
⊢ 0 ≤ reApplyInnerSelf 0 x

tactic: change 0 ≤ re ⟪_, _⟫
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
x : E
⊢ 0 ≤ reApplyInnerSelf 0 x
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
x : E
⊢ 0 ≤ re ⟪0 x, x⟫_𝕜

tactic: rw [zero_apply, inner_zero_left, ZeroHomClass.map_zero]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace 𝕜 F
inst✝¹ : CompleteSpace E
inst✝ : CompleteSpace F
x : E
⊢ 0 ≤ re ⟪0 x, x⟫_𝕜
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.counitForward_counitBackward
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: simp
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F✝ : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
s : CostructuredArrow yoneda A
p : OverArrows (yonedaCollectionPresheafToA F) s.hom
⊢ YonedaCollection.fst ((counitForward F s ∘ counitBackward F s) p).val = YonedaCollection.fst (id p).val
state_after: no goals

tactic: simp [counitBackward]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F✝ : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X : C
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
s : CostructuredArrow yoneda A
p : OverArrows (yonedaCollectionPresheafToA F) s.hom
⊢ F.map (eqToHom ⋯) (YonedaCollection.snd (id p).val) =
    YonedaCollection.snd ((counitForward F s ∘ counitBackward F s) p).val
state_after: no goals
Theorem: nhds_induced
File: Mathlib/Topology/Order.lean

tactic: ext s
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ : α → β
ι : Sort u_2
T : TopologicalSpace α
f : β → α
a : β
⊢ 𝓝 a = comap f (𝓝 (f a))
state_after: case a
α : Type u
β : Type v
γ : Type u_1
f✝ : α → β
ι : Sort u_2
T : TopologicalSpace α
f : β → α
a : β
s : Set β
⊢ s ∈ 𝓝 a ↔ s ∈ comap f (𝓝 (f a))

tactic: rw [mem_nhds_induced, mem_comap]
state_before: case a
α : Type u
β : Type v
γ : Type u_1
f✝ : α → β
ι : Sort u_2
T : TopologicalSpace α
f : β → α
a : β
s : Set β
⊢ s ∈ 𝓝 a ↔ s ∈ comap f (𝓝 (f a))
state_after: no goals
Theorem: FirstOrder.Language.Theory.CompleteType.iInter_setOf_subset
File: Mathlib/ModelTheory/Types.lean

tactic: ext
state_before: L : Language
T : L.Theory
α : Type w
ι : Type u_1
S : ι → L[[α]].Theory
⊢ ⋂ i, {p | S i ⊆ ↑p} = {p | ⋃ i, S i ⊆ ↑p}
state_after: case h
L : Language
T : L.Theory
α : Type w
ι : Type u_1
S : ι → L[[α]].Theory
x✝ : T.CompleteType α
⊢ x✝ ∈ ⋂ i, {p | S i ⊆ ↑p} ↔ x✝ ∈ {p | ⋃ i, S i ⊆ ↑p}

tactic: simp only [mem_iInter, mem_setOf_eq, iUnion_subset_iff]
state_before: case h
L : Language
T : L.Theory
α : Type w
ι : Type u_1
S : ι → L[[α]].Theory
x✝ : T.CompleteType α
⊢ x✝ ∈ ⋂ i, {p | S i ⊆ ↑p} ↔ x✝ ∈ {p | ⋃ i, S i ⊆ ↑p}
state_after: no goals
Theorem: QuadraticForm.Ring.polar_pi
File: Mathlib/LinearAlgebra/QuadraticForm/Prod.lean

tactic: dsimp [polar]
state_before: ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
Mᵢ : ι → Type u_7
Nᵢ : ι → Type u_8
inst✝⁵ : CommRing R
inst✝⁴ : (i : ι) → AddCommGroup (Mᵢ i)
inst✝³ : (i : ι) → AddCommGroup (Nᵢ i)
inst✝² : (i : ι) → Module R (Mᵢ i)
inst✝¹ : (i : ι) → Module R (Nᵢ i)
inst✝ : Fintype ι
Q : (i : ι) → QuadraticForm R (Mᵢ i)
x y : (i : ι) → Mᵢ i
⊢ polar (⇑(pi Q)) x y = ∑ i : ι, polar (⇑(Q i)) (x i) (y i)
state_after: ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
Mᵢ : ι → Type u_7
Nᵢ : ι → Type u_8
inst✝⁵ : CommRing R
inst✝⁴ : (i : ι) → AddCommGroup (Mᵢ i)
inst✝³ : (i : ι) → AddCommGroup (Nᵢ i)
inst✝² : (i : ι) → Module R (Mᵢ i)
inst✝¹ : (i : ι) → Module R (Nᵢ i)
inst✝ : Fintype ι
Q : (i : ι) → QuadraticForm R (Mᵢ i)
x y : (i : ι) → Mᵢ i
⊢ (pi Q) (x + y) - (pi Q) x - (pi Q) y = ∑ i : ι, ((Q i) (x i + y i) - (Q i) (x i) - (Q i) (y i))

tactic: simp_rw [Finset.sum_sub_distrib, pi_apply, Pi.add_apply]
state_before: ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
Mᵢ : ι → Type u_7
Nᵢ : ι → Type u_8
inst✝⁵ : CommRing R
inst✝⁴ : (i : ι) → AddCommGroup (Mᵢ i)
inst✝³ : (i : ι) → AddCommGroup (Nᵢ i)
inst✝² : (i : ι) → Module R (Mᵢ i)
inst✝¹ : (i : ι) → Module R (Nᵢ i)
inst✝ : Fintype ι
Q : (i : ι) → QuadraticForm R (Mᵢ i)
x y : (i : ι) → Mᵢ i
⊢ (pi Q) (x + y) - (pi Q) x - (pi Q) y = ∑ i : ι, ((Q i) (x i + y i) - (Q i) (x i) - (Q i) (y i))
state_after: no goals
Theorem: Submonoid.LocalizationMap.sec_spec'
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [mul_comm, sec_spec]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
z : N
⊢ f.toMap (f.sec z).1 = f.toMap ↑(f.sec z).2 * z
state_after: no goals
Theorem: LieHom.idealRange_eq_map
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: ext
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
⊢ f.idealRange = LieIdeal.map f ⊤
state_after: case h
R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
m✝ : L'
⊢ m✝ ∈ f.idealRange ↔ m✝ ∈ LieIdeal.map f ⊤

tactic: simp only [idealRange, range_eq_map]
state_before: case h
R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
m✝ : L'
⊢ m✝ ∈ f.idealRange ↔ m✝ ∈ LieIdeal.map f ⊤
state_after: case h
R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
m✝ : L'
⊢ m✝ ∈ LieSubmodule.lieSpan R L' ↑(LieSubalgebra.map f ⊤) ↔ m✝ ∈ LieIdeal.map f ⊤

tactic: rfl
state_before: case h
R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
m✝ : L'
⊢ m✝ ∈ LieSubmodule.lieSpan R L' ↑(LieSubalgebra.map f ⊤) ↔ m✝ ∈ LieIdeal.map f ⊤
state_after: no goals
Theorem: eVariationOn.eq_of_eqOn
File: Mathlib/Analysis/BoundedVariation.lean

tactic: rw [h xs, edist_self]
state_before: α : Type u_1
inst✝¹ : LinearOrder α
E : Type u_2
inst✝ : PseudoEMetricSpace E
f f' : α → E
s : Set α
h : EqOn f f' s
x : α
xs : x ∈ s
⊢ edist (f x) (f' x) = 0
state_after: no goals
Theorem: Int.clog_of_right_le_zero
File: Mathlib/Data/Int/Log.lean

tactic: rw [clog, if_neg (hr.trans_lt zero_lt_one).not_le, neg_eq_zero, Int.natCast_eq_zero,
  Nat.log_eq_zero_iff]
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
⊢ clog b r = 0
state_after: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1

tactic: rcases le_or_lt b 1 with hb | hb
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1
state_after: case inl
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : b ≤ 1
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1

case inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : 1 < b
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1

tactic: exact Or.inr hb
state_before: case inl
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : b ≤ 1
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1
state_after: no goals

tactic: refine Or.inl (lt_of_le_of_lt ?_ hb)
state_before: case inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : 1 < b
⊢ ⌊r⁻¹⌋₊ < b ∨ b ≤ 1
state_after: case inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : 1 < b
⊢ ⌊r⁻¹⌋₊ ≤ 1

tactic: exact Nat.floor_le_one_of_le_one ((inv_nonpos.2 hr).trans zero_le_one)
state_before: case inr
R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
hr : r ≤ 0
hb : 1 < b
⊢ ⌊r⁻¹⌋₊ ≤ 1
state_after: no goals
Theorem: Ordinal.log_le_self
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: simp only [hx, log_zero_right, Ordinal.zero_le]
state_before: b x : Ordinal.{u_1}
hx : x = 0
⊢ log b x ≤ x
state_after: no goals

tactic: simp only [log_of_not_one_lt_left hb, Ordinal.zero_le]
state_before: b x : Ordinal.{u_1}
hx : ¬x = 0
hb : ¬1 < b
⊢ log b x ≤ x
state_after: no goals
Theorem: Set.encard_le_coe_iff_finite_ncard_le
File: Mathlib/Data/Set/Card.lean

tactic: rw [encard_le_coe_iff, and_congr_right_iff]
state_before: α : Type u_1
β : Type u_2
s t : Set α
k : ℕ
⊢ s.encard ≤ ↑k ↔ s.Finite ∧ s.ncard ≤ k
state_after: α : Type u_1
β : Type u_2
s t : Set α
k : ℕ
⊢ s.Finite → ((∃ n₀, s.encard = ↑n₀ ∧ n₀ ≤ k) ↔ s.ncard ≤ k)

tactic: exact fun hfin ↦ ⟨fun ⟨n₀, hn₀, hle⟩ ↦ by rwa [ncard_def, hn₀, ENat.toNat_coe],
  fun h ↦ ⟨s.ncard, by rw [hfin.cast_ncard_eq], h⟩⟩
state_before: α : Type u_1
β : Type u_2
s t : Set α
k : ℕ
⊢ s.Finite → ((∃ n₀, s.encard = ↑n₀ ∧ n₀ ≤ k) ↔ s.ncard ≤ k)
state_after: no goals

tactic: rwa [ncard_def, hn₀, ENat.toNat_coe]
state_before: α : Type u_1
β : Type u_2
s t : Set α
k : ℕ
hfin : s.Finite
x✝ : ∃ n₀, s.encard = ↑n₀ ∧ n₀ ≤ k
n₀ : ℕ
hn₀ : s.encard = ↑n₀
hle : n₀ ≤ k
⊢ s.ncard ≤ k
state_after: no goals

tactic: rw [hfin.cast_ncard_eq]
state_before: α : Type u_1
β : Type u_2
s t : Set α
k : ℕ
hfin : s.Finite
h : s.ncard ≤ k
⊢ s.encard = ↑s.ncard
state_after: no goals
Theorem: contDiffWithinAt_euclidean
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: rw [← (EuclideanSpace.equiv ι 𝕜).comp_contDiffWithinAt_iff, contDiffWithinAt_pi]
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ ContDiffWithinAt 𝕜 n f t y ↔ ∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => f x i) t y
state_after: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ (∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) t y) ↔
    ∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => f x i) t y

tactic: rfl
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
n : ℕ∞
⊢ (∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i) t y) ↔
    ∀ (i : ι), ContDiffWithinAt 𝕜 n (fun x => f x i) t y
state_after: no goals
Theorem: Multiset.card_Ico
File: Mathlib/Data/Multiset/Interval.lean

tactic: rw [Finset.card_Ico_eq_card_Icc_sub_one, card_Icc]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Multiset α
⊢ (Finset.Ico s t).card = ∏ i ∈ s.toFinset ∪ t.toFinset, (count i t + 1 - count i s) - 1
state_after: no goals
Theorem: Batteries.RBSet.find?_congr
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: simp [find?, TransCmp.cmp_congr_left' h]
state_before: α : Type u_1
cmp : α → α → Ordering
v₁ v₂ : α
inst✝ : TransCmp cmp
t : RBSet α cmp
h : cmp v₁ v₂ = Ordering.eq
⊢ t.find? v₁ = t.find? v₂
state_after: no goals
Theorem: spectrum.star_mem_resolventSet_iff
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: refine ⟨fun h => ?_, fun h => ?_⟩ <;>
  simpa only [mem_resolventSet_iff, Algebra.algebraMap_eq_smul_one, star_sub, star_smul,
    star_star, star_one] using IsUnit.star h
state_before: R : Type u
A : Type v
inst✝⁵ : CommSemiring R
inst✝⁴ : Ring A
inst✝³ : Algebra R A
inst✝² : InvolutiveStar R
inst✝¹ : StarRing A
inst✝ : StarModule R A
r : R
a : A
⊢ star r ∈ resolventSet R a ↔ r ∈ resolventSet R (star a)
state_after: no goals
Theorem: spectrum.singleton_sub_eq
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: rw [sub_eq_add_neg, neg_eq, singleton_add_eq, sub_eq_add_neg]
state_before: R : Type u
A : Type v
inst✝² : CommRing R
inst✝¹ : Ring A
inst✝ : Algebra R A
a : A
r : R
⊢ {r} - σ a = σ (↑ₐ r - a)
state_after: no goals
Theorem: Cardinal.toNat_eq_iff
File: Mathlib/SetTheory/Cardinal/ToNat.lean

tactic: rw [← toNat_toENat, ENat.toNat_eq_iff hn, toENat_eq_nat]
state_before: α : Type u
c d : Cardinal.{u}
n : ℕ
hn : n ≠ 0
⊢ toNat c = n ↔ c = ↑n
state_after: no goals
Theorem: TopologicalSpace.IsTopologicalBasis.nhds_hasBasis
File: Mathlib/Topology/Bases.lean

tactic: simp only [and_assoc]
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
b : Set (Set α)
hb : IsTopologicalBasis b
a : α
s : Set α
⊢ (∃ t ∈ b, a ∈ t ∧ t ⊆ s) ↔ ∃ i, (i ∈ b ∧ a ∈ i) ∧ i ⊆ s
state_after: no goals