ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Unitization.inr_le_iff
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Order.lean

Proof steps:
state_before: A : Type u_1
inst✝¹⁰ : NonUnitalNormedRing A
inst✝⁹ : CompleteSpace A
inst✝⁸ : Nontrivial A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarRing A
inst✝⁵ : StarOrderedRing A
inst✝⁴ : CstarRing A
inst✝³ : NormedSpace ℂ A
inst✝² : StarModule ℂ A
inst✝¹ : SMulCommClass ℂ A A
inst✝ : IsScalarTower ℂ A A
a b : A
ha : autoParam (IsSelfAdjoint a) _auto✝
hb : autoParam (IsSelfAdjoint b) _auto✝
⊢ ↑a ≤ ↑b ↔ a ≤ b
state_after: A : Type u_1
inst✝¹⁰ : NonUnitalNormedRing A
inst✝⁹ : CompleteSpace A
inst✝⁸ : Nontrivial A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarRing A
inst✝⁵ : StarOrderedRing A
inst✝⁴ : CstarRing A
inst✝³ : NormedSpace ℂ A
inst✝² : StarModule ℂ A
inst✝¹ : SMulCommClass ℂ A A
inst✝ : IsScalarTower ℂ A A
a b : A
ha : autoParam (IsSelfAdjoint a) _auto✝
hb : autoParam (IsSelfAdjoint b) _auto✝
⊢ (∀ x ∈ quasispectrum ℝ (b - a), 0 ≤ x) ↔ 0 ≤ b - a
tactic: rw [← sub_nonneg, ← sub_nonneg (a := b), StarOrderedRing.nonneg_iff_spectrum_nonneg (R := ℝ) _,
    ← inr_sub ℂ b a, ← Unitization.quasispectrum_eq_spectrum_inr' ℝ ℂ]
state_before: A : Type u_1
inst✝¹⁰ : NonUnitalNormedRing A
inst✝⁹ : CompleteSpace A
inst✝⁸ : Nontrivial A
inst✝⁷ : PartialOrder A
inst✝⁶ : StarRing A
inst✝⁵ : StarOrderedRing A
inst✝⁴ : CstarRing A
inst✝³ : NormedSpace ℂ A
inst✝² : StarModule ℂ A
inst✝¹ : SMulCommClass ℂ A A
inst✝ : IsScalarTower ℂ A A
a b : A
ha : autoParam (IsSelfAdjoint a) _auto✝
hb : autoParam (IsSelfAdjoint b) _auto✝
⊢ (∀ x ∈ quasispectrum ℝ (b - a), 0 ≤ x) ↔ 0 ≤ b - a
state_after: no goals
tactic: exact StarOrderedRing.nonneg_iff_quasispectrum_nonneg _ |>.symm
Theorem: Nat.Icc_insert_succ_right
File: Mathlib/Order/Interval/Finset/Nat.lean

Proof steps:
state_before: a b c : ℕ
h : a ≤ b + 1
⊢ insert (b + 1) (Icc a b) = Icc a (b + 1)
state_after: case a
a b c : ℕ
h : a ≤ b + 1
x : ℕ
⊢ x ∈ insert (b + 1) (Icc a b) ↔ x ∈ Icc a (b + 1)
tactic: ext x
state_before: case a
a b c : ℕ
h : a ≤ b + 1
x : ℕ
⊢ x ∈ insert (b + 1) (Icc a b) ↔ x ∈ Icc a (b + 1)
state_after: case a
a b c : ℕ
h : a ≤ b + 1
x : ℕ
⊢ x = b + 1 ∨ a ≤ x ∧ x ≤ b ↔ a ≤ x ∧ x ≤ b + 1
tactic: simp only [mem_insert, mem_Icc]
state_before: case a
a b c : ℕ
h : a ≤ b + 1
x : ℕ
⊢ x = b + 1 ∨ a ≤ x ∧ x ≤ b ↔ a ≤ x ∧ x ≤ b + 1
state_after: no goals
tactic: omega
Theorem: Polynomial.derivative_pow
File: Mathlib/Algebra/Polynomial/Derivative.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : CommSemiring R
p : R[X]
n : ℕ
⊢ derivative (p ^ Nat.zero) = C ↑Nat.zero * p ^ (Nat.zero - 1) * derivative p
state_after: no goals
tactic: rw [pow_zero, derivative_one, Nat.cast_zero, C_0, zero_mul, zero_mul]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝¹ : ℕ
inst✝ : CommSemiring R
p : R[X]
n✝ n : ℕ
⊢ derivative (p ^ n.succ) = C ↑n.succ * p ^ (n.succ - 1) * derivative p
state_after: no goals
tactic: rw [p.derivative_pow_succ n, Nat.add_one_sub_one, n.cast_succ]
Theorem: List.insert_eq_ite
File: Mathlib/Data/List/Infix.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
inst✝ : DecidableEq α
a : α
l : List α
⊢ insert a l = if a ∈ l then l else a :: l
state_after: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
inst✝ : DecidableEq α
a : α
l : List α
⊢ insert a l = if elem a l = true then l else a :: l
tactic: simp only [← elem_iff]
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
inst✝ : DecidableEq α
a : α
l : List α
⊢ insert a l = if elem a l = true then l else a :: l
state_after: no goals
tactic: rfl
Theorem: List.subset_singleton_iff
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
L : List α
⊢ L ⊆ [a] ↔ ∃ n, L = replicate n a
state_after: no goals
tactic: simp only [eq_replicate, subset_def, mem_singleton, exists_eq_left']
Theorem: Ultrafilter.le_of_inf_neBot'
File: Mathlib/Order/Filter/Ultrafilter.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ g✝ : Ultrafilter α
s t : Set α
p q : α → Prop
f : Ultrafilter α
g : Filter α
hg : (g ⊓ ↑f).NeBot
⊢ (↑f ⊓ g).NeBot
state_after: no goals
tactic: rwa [inf_comm]
Theorem: PEquiv.ofSet_eq_refl
File: Mathlib/Data/PEquiv.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
⊢ s = Set.univ
state_after: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
⊢ ∀ (x : α), x ∈ s
tactic: rw [Set.eq_univ_iff_forall]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
⊢ ∀ (x : α), x ∈ s
state_after: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ s
tactic: intro
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ s
state_after: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ (PEquiv.refl α) x✝
tactic: rw [← mem_ofSet_self_iff, h]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : ofSet s = PEquiv.refl α
x✝ : α
⊢ x✝ ∈ (PEquiv.refl α) x✝
state_after: no goals
tactic: exact rfl
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
s✝ : Set α
inst✝¹ : DecidablePred fun x => x ∈ s✝
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
h : s = Set.univ
⊢ ofSet s = PEquiv.refl α
state_after: no goals
tactic: simp only [← ofSet_univ, h]
Theorem: continuousWithinAt_Ioo_iff_Ioi
File: Mathlib/Topology/Order/OrderClosed.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a b c : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ioo a b) a ↔ ContinuousWithinAt f (Ioi a) a
state_after: no goals
tactic: simp only [ContinuousWithinAt, nhdsWithin_Ioo_eq_nhdsWithin_Ioi h]
Theorem: CategoryTheory.Functor.map_comp_heq
File: Mathlib/CategoryTheory/EqToHom.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hz : F.obj Z = G.obj Z
hf : HEq (F.map f) (G.map f)
hg : HEq (F.map g) (G.map g)
⊢ HEq (F.map (f ≫ g)) (G.map (f ≫ g))
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hz : F.obj Z = G.obj Z
hf : HEq (F.map f) (G.map f)
hg : HEq (F.map g) (G.map g)
⊢ HEq (F.map f ≫ F.map g) (G.map f ≫ G.map g)
tactic: rw [F.map_comp, G.map_comp]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hz : F.obj Z = G.obj Z
hf : HEq (F.map f) (G.map f)
hg : HEq (F.map g) (G.map g)
⊢ HEq (F.map f ≫ F.map g) (G.map f ≫ G.map g)
state_after: no goals
tactic: congr
Theorem: NNRat.num_coe
File: Mathlib/Data/NNRat/Defs.lean

Proof steps:
state_before: p q✝ q : ℚ≥0
⊢ (↑q).num = ↑q.num
state_after: no goals
tactic: simp [num, abs_of_nonneg, Rat.num_nonneg, q.2]
Theorem: ContinuousMultilinearMap.opNNNorm_pi
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁷ : Fintype ι
inst✝¹⁶ : Fintype ι'
inst✝¹⁵ : NontriviallyNormedField 𝕜
inst✝¹⁴ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹³ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝¹⁰ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁹ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁸ : SeminormedAddCommGroup G
inst✝⁷ : NormedSpace 𝕜 G
inst✝⁶ : SeminormedAddCommGroup G'
inst✝⁵ : NormedSpace 𝕜 G'
c : 𝕜
f✝ g : ContinuousMultilinearMap 𝕜 E G
m : (i : ι) → E i
𝕜' : Type u_1
inst✝⁴ : NormedField 𝕜'
inst✝³ : NormedSpace 𝕜' G
inst✝² : SMulCommClass 𝕜 𝕜' G
inst✝¹ : (i' : ι') → SeminormedAddCommGroup (E' i')
inst✝ : (i' : ι') → NormedSpace 𝕜 (E' i')
f : (i' : ι') → ContinuousMultilinearMap 𝕜 E (E' i')
x✝ : ℝ≥0
⊢ ‖pi f‖₊ ≤ x✝ ↔ ‖f‖₊ ≤ x✝
state_after: no goals
tactic: simpa [opNNNorm_le_iff, pi_nnnorm_le_iff] using forall_swap
Theorem: Matroid.disjointSigma_basis_iff
File: Mathlib/Data/Matroid/Sum.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
M : ι → Matroid α
h : Pairwise (Disjoint on fun i => (M i).E)
I X : Set α
⊢ (Matroid.disjointSigma M h).Basis I X ↔
    (∀ (i : ι), (M i).Basis (I ∩ (M i).E) (X ∩ (M i).E)) ∧ I ⊆ X ∧ X ⊆ ⋃ i, (M i).E
state_after: no goals
tactic: simp [Matroid.disjointSigma, Function.Embedding.sigmaSet_preimage h]
Theorem: Batteries.RBNode.setBlack_idem
File: .lake/packages/batteries/Batteries/Data/RBMap/WF.lean

Proof steps:
state_before: α : Type u_1
t : RBNode α
⊢ t.setBlack.setBlack = t.setBlack
state_after: no goals
tactic: cases t <;> rfl
Theorem: CategoryTheory.SmallObject.ι_functorMapTgt
File: Mathlib/CategoryTheory/SmallObject/Construction.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
inst✝¹ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝ : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
hφ : φ ≫ πY = πX
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
t' : A i ⟶ Y
fac : t ≫ φ = t'
⊢ t' ≫ πY = f i ≫ b
state_after: no goals
tactic: rw [← w, ← fac, assoc, hφ]
state_before: C : Type u
inst✝² : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
inst✝¹ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝ : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
hφ : φ ≫ πY = πX
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
t' : A i ⟶ Y
fac : t ≫ φ = t'
⊢ Sigma.ι (functorObjTgtFamily f πX) { i := i, t := t, b := b, w := w } ≫ functorMapTgt f πX πY φ hφ =
    Sigma.ι (functorObjTgtFamily f πY) { i := i, t := t', b := b, w := ⋯ }
state_after: C : Type u
inst✝² : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
inst✝¹ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝ : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
hφ : φ ≫ πY = πX
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
⊢ Sigma.ι (functorObjTgtFamily f πX) { i := i, t := t, b := b, w := w } ≫ functorMapTgt f πX πY φ hφ =
    Sigma.ι (functorObjTgtFamily f πY) { i := i, t := t ≫ φ, b := b, w := ⋯ }
tactic: subst fac
state_before: C : Type u
inst✝² : Category.{v, u} C
I : Type w
A B : I → C
f : (i : I) → A i ⟶ B i
S X Y Z : C
πX : X ⟶ S
πY : Y ⟶ S
φ : X ⟶ Y
inst✝¹ : HasColimitsOfShape (Discrete (FunctorObjIndex f πX)) C
inst✝ : HasColimitsOfShape (Discrete (FunctorObjIndex f πY)) C
hφ : φ ≫ πY = πX
i : I
t : A i ⟶ X
b : B i ⟶ S
w : t ≫ πX = f i ≫ b
⊢ Sigma.ι (functorObjTgtFamily f πX) { i := i, t := t, b := b, w := w } ≫ functorMapTgt f πX πY φ hφ =
    Sigma.ι (functorObjTgtFamily f πY) { i := i, t := t ≫ φ, b := b, w := ⋯ }
state_after: no goals
tactic: simp [functorMapTgt]
Theorem: CategoryTheory.SemiadditiveOfBinaryBiproducts.add_comp
File: Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ (f + g) ≫ h = f ≫ h + g ≫ h
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc f g ≫ h = biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc (f ≫ h) (g ≫ h)
tactic: simp only [add_eq_right_addition, Category.assoc]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc f g ≫ h = biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc (f ≫ h) (g ≫ h)
state_after: case e_a
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.desc f g ≫ h = biprod.desc (f ≫ h) (g ≫ h)
tactic: congr
state_before: case e_a
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
⊢ biprod.desc f g ≫ h = biprod.desc (f ≫ h) (g ≫ h)
state_after: no goals
tactic: ext <;> simp
Theorem: Pi.segment_subset
File: Mathlib/Analysis/Convex/Segment.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝² : OrderedSemiring 𝕜
inst✝¹ : (i : ι) → AddCommMonoid (π i)
inst✝ : (i : ι) → Module 𝕜 (π i)
s : Set ι
x y : (i : ι) → π i
⊢ [x-[𝕜]y] ⊆ s.pi fun i => [x i-[𝕜]y i]
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝² : OrderedSemiring 𝕜
inst✝¹ : (i : ι) → AddCommMonoid (π i)
inst✝ : (i : ι) → Module 𝕜 (π i)
s : Set ι
x y z : (i : ι) → π i
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hz : a • x + b • y = z
i : ι
⊢ z i ∈ (fun i => [x i-[𝕜]y i]) i
tactic: rintro z ⟨a, b, ha, hb, hab, hz⟩ i -
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝² : OrderedSemiring 𝕜
inst✝¹ : (i : ι) → AddCommMonoid (π i)
inst✝ : (i : ι) → Module 𝕜 (π i)
s : Set ι
x y z : (i : ι) → π i
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
hz : a • x + b • y = z
i : ι
⊢ z i ∈ (fun i => [x i-[𝕜]y i]) i
state_after: no goals
tactic: exact ⟨a, b, ha, hb, hab, congr_fun hz i⟩
Theorem: Basis.ofIsLocalizedModule_apply
File: Mathlib/RingTheory/Localization/Module.lean

Proof steps:
state_before: R : Type u_1
Rₛ : Type u_2
inst✝¹⁰ : CommSemiring R
S : Submonoid R
inst✝⁹ : CommRing Rₛ
inst✝⁸ : Algebra R Rₛ
hT : IsLocalization S Rₛ
M : Type u_3
Mₛ : Type u_4
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup Mₛ
inst✝⁵ : Module R M
inst✝⁴ inst✝³ : Module R Mₛ
inst✝² : Module Rₛ Mₛ
f : M →ₗ[R] Mₛ
inst✝¹ : IsLocalizedModule S f
inst✝ : IsScalarTower R Rₛ Mₛ
ι : Type u_5
b : Basis ι R M
i : ι
⊢ (ofIsLocalizedModule Rₛ S f b) i = f (b i)
state_after: no goals
tactic: rw [ofIsLocalizedModule, coe_mk, Function.comp_apply]
Theorem: Int.eq_zero_of_dvd_of_natAbs_lt_natAbs
File: Mathlib/Data/Int/Defs.lean

Proof steps:
state_before: a b c d m n : ℤ
hmn : m ∣ n
hnm : n.natAbs < m.natAbs
⊢ n = 0
state_after: a b c d m n : ℤ
hmn : m.natAbs ∣ n.natAbs
hnm : n.natAbs < m.natAbs
⊢ n = 0
tactic: rw [← natAbs_dvd, ← dvd_natAbs, natCast_dvd_natCast] at hmn
state_before: a b c d m n : ℤ
hmn : m.natAbs ∣ n.natAbs
hnm : n.natAbs < m.natAbs
⊢ n = 0
state_after: a b c d m n : ℤ
hmn : m.natAbs ∣ n.natAbs
hnm : n.natAbs < m.natAbs
⊢ n.natAbs = 0
tactic: rw [← natAbs_eq_zero]
state_before: a b c d m n : ℤ
hmn : m.natAbs ∣ n.natAbs
hnm : n.natAbs < m.natAbs
⊢ n.natAbs = 0
state_after: no goals
tactic: exact Nat.eq_zero_of_dvd_of_lt hmn hnm
Theorem: Bimon_.ofMon_Comon_obj_counit_hom
File: Mathlib/CategoryTheory/Monoidal/Bimon_.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ (Comon_ C)
⊢ ((Comon_.forgetMonoidal C).mapMon.obj M).mul ≫ M.X.comul =
    (M.X.comul ⊗ M.X.comul) ≫ ((Comon_.forgetMonoidal C).mapMon.obj M ⊗ (Comon_.forgetMonoidal C).mapMon.obj M).mul
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ (Comon_ C)
⊢ (𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom) ≫ M.X.comul =
    (M.X.comul ⊗ M.X.comul) ≫
      tensor_μ C (M.X.X, M.X.X) (M.X.X, M.X.X) ≫ (𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom ⊗ 𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom)
tactic: dsimp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
M : Mon_ (Comon_ C)
⊢ (𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom) ≫ M.X.comul =
    (M.X.comul ⊗ M.X.comul) ≫
      tensor_μ C (M.X.X, M.X.X) (M.X.X, M.X.X) ≫ (𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom ⊗ 𝟙 (M.X.X ⊗ M.X.X) ≫ M.mul.hom)
state_after: no goals
tactic: simp [tensor_μ]
Theorem: AddMonoidHom.toOpposite_apply
File: Mathlib/Algebra/Group/Opposite.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
N : Type u_3
inst✝¹ : MulOneClass M
inst✝ : MulOneClass N
f : M →* N
hf : ∀ (x y : M), Commute (f x) (f y)
x y : M
⊢ { toFun := op ∘ ⇑f, map_one' := ⋯ }.toFun (x * y) =
    { toFun := op ∘ ⇑f, map_one' := ⋯ }.toFun x * { toFun := op ∘ ⇑f, map_one' := ⋯ }.toFun y
state_after: no goals
tactic: simp [(hf x y).eq]
Theorem: List.inits_cons
File: Mathlib/Data/List/Infix.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
a : α
l : List α
⊢ (a :: l).inits = [] :: map (fun t => a :: t) l.inits
state_after: no goals
tactic: simp
Theorem: equicontinuousAt_iInf_rng
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
u : κ → UniformSpace α'
F : ι → X → α'
x₀ : X
⊢ EquicontinuousAt F x₀ ↔ ∀ (k : κ), EquicontinuousAt F x₀
state_after: no goals
tactic: simp only [← equicontinuousWithinAt_univ (uα := _), equicontinuousWithinAt_iInf_rng]
Theorem: List.insertNthTR_go_eq
File: .lake/packages/batteries/Batteries/Data/List/Basic.lean

Proof steps:
state_before: α✝ : Type u_1
a : α✝
acc : Array α✝
l : List α✝
⊢ insertNthTR.go a 0 l acc = acc.data ++ insertNth 0 a l
state_after: no goals
tactic: simp [insertNthTR.go, insertNth]
state_before: α✝ : Type u_1
a✝ : α✝
acc : Array α✝
n : Nat
a : α✝
l : List α✝
⊢ insertNthTR.go a✝ (n + 1) (a :: l) acc = acc.data ++ insertNth (n + 1) a✝ (a :: l)
state_after: no goals
tactic: simp [insertNthTR.go, insertNth, insertNthTR_go_eq n l]
Theorem: interior_mem_uniformity
File: Mathlib/Topology/UniformSpace/Basic.lean

Proof steps:
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ 𝓤 α
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ (𝓤 α).lift' interior
tactic: rw [uniformity_eq_uniformity_interior]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ (𝓤 α).lift' interior
state_after: no goals
tactic: exact mem_lift' hs
Theorem: Submonoid.coe_mul_self_eq
File: Mathlib/Algebra/Group/Submonoid/Pointwise.lean

Proof steps:
state_before: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
⊢ ↑s * ↑s = ↑s
state_after: case h
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
x : M
⊢ x ∈ ↑s * ↑s ↔ x ∈ ↑s
tactic: ext x
state_before: case h
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
x : M
⊢ x ∈ ↑s * ↑s ↔ x ∈ ↑s
state_after: case h
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
x : M
⊢ x ∈ ↑s * ↑s → x ∈ ↑s
tactic: refine ⟨?_, fun h => ⟨x, h, 1, s.one_mem, mul_one x⟩⟩
state_before: case h
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
x : M
⊢ x ∈ ↑s * ↑s → x ∈ ↑s
state_after: case h.intro.intro.intro.intro
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
a : M
ha : a ∈ ↑s
b : M
hb : b ∈ ↑s
⊢ (fun x x_1 => x * x_1) a b ∈ ↑s
tactic: rintro ⟨a, ha, b, hb, rfl⟩
state_before: case h.intro.intro.intro.intro
α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝¹ : Monoid M
inst✝ : AddMonoid A
s✝ t u : Set M
s : Submonoid M
a : M
ha : a ∈ ↑s
b : M
hb : b ∈ ↑s
⊢ (fun x x_1 => x * x_1) a b ∈ ↑s
state_after: no goals
tactic: exact s.mul_mem ha hb
Theorem: Module.End.HasEigenvalue.pow
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

Proof steps:
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
h : f.HasEigenvalue μ
n : ℕ
⊢ (f ^ n).HasEigenvalue (μ ^ n)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
h : f.HasEigenvalue μ
n : ℕ
⊢ ∃ x ∈ (f ^ n).eigenspace (μ ^ n), x ≠ 0
tactic: rw [HasEigenvalue, Submodule.ne_bot_iff]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
h : f.HasEigenvalue μ
n : ℕ
⊢ ∃ x ∈ (f ^ n).eigenspace (μ ^ n), x ≠ 0
state_after: case intro
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
h : f.HasEigenvalue μ
n : ℕ
m : M
hm : f.HasEigenvector μ m
⊢ ∃ x ∈ (f ^ n).eigenspace (μ ^ n), x ≠ 0
tactic: obtain ⟨m : M, hm⟩ := h.exists_hasEigenvector
state_before: case intro
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
h : f.HasEigenvalue μ
n : ℕ
m : M
hm : f.HasEigenvector μ m
⊢ ∃ x ∈ (f ^ n).eigenspace (μ ^ n), x ≠ 0
state_after: no goals
tactic: exact ⟨m, by simpa [mem_eigenspace_iff] using hm.pow_apply n, hm.2⟩
Theorem: AList.lookup_insert_eq_none
File: Mathlib/Data/List/AList.lean

Proof steps:
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
l : AList β
k k' : α
v : β k
⊢ lookup k' (insert k v l) = none ↔ k' ≠ k ∧ lookup k' l = none
state_after: case pos
α : Type u
β : α → Type v
inst✝ : DecidableEq α
l : AList β
k k' : α
v : β k
h : k' = k
⊢ lookup k' (insert k v l) = none ↔ k' ≠ k ∧ lookup k' l = none

case neg
α : Type u
β : α → Type v
inst✝ : DecidableEq α
l : AList β
k k' : α
v : β k
h : ¬k' = k
⊢ lookup k' (insert k v l) = none ↔ k' ≠ k ∧ lookup k' l = none
tactic: by_cases h : k' = k
Theorem: Set.image_update_Ioc_left
File: Mathlib/Order/Interval/Set/Pi.lean

Proof steps:
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → PartialOrder (α i)
f : (i : ι) → α i
i : ι
a : α i
⊢ update f i '' Ioc a (f i) = Ioc (update f i a) f
state_after: no goals
tactic: simpa using image_update_Ioc f i a (f i)