ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: JordanHolderModule.second_iso
File: Mathlib/RingTheory/SimpleModule.lean

Proof steps:
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ Iso (X, X ⊔ Y) (X ⊓ Y, Y)
state_after: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(X, X ⊔ Y).2 ⧸ Submodule.comap (X, X ⊔ Y).2.subtype (X, X ⊔ Y).1) ≃ₗ[R]
    ↥(X ⊓ Y, Y).2 ⧸ Submodule.comap (X ⊓ Y, Y).2.subtype (X ⊓ Y, Y).1
tactic: constructor
state_before: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(X, X ⊔ Y).2 ⧸ Submodule.comap (X, X ⊔ Y).2.subtype (X, X ⊔ Y).1) ≃ₗ[R]
    ↥(X ⊓ Y, Y).2 ⧸ Submodule.comap (X ⊓ Y, Y).2.subtype (X ⊓ Y, Y).1
state_after: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(X, Y ⊔ X).2 ⧸ Submodule.comap (X, Y ⊔ X).2.subtype (X, Y ⊔ X).1) ≃ₗ[R]
    ↥(Y ⊓ X, Y).2 ⧸ Submodule.comap (Y ⊓ X, Y).2.subtype (Y ⊓ X, Y).1
tactic: rw [sup_comm, inf_comm]
state_before: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(X, Y ⊔ X).2 ⧸ Submodule.comap (X, Y ⊔ X).2.subtype (X, Y ⊔ X).1) ≃ₗ[R]
    ↥(Y ⊓ X, Y).2 ⧸ Submodule.comap (Y ⊓ X, Y).2.subtype (Y ⊓ X, Y).1
state_after: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(Y ⊔ X) ⧸ Submodule.comap (Y ⊔ X).subtype X) ≃ₗ[R] ↥Y ⧸ Submodule.comap Y.subtype Y ⊓ Submodule.comap Y.subtype X
tactic: dsimp
state_before: case val
ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁵ : Ring R
inst✝⁴ : Ring S
M : Type u_4
inst✝³ : AddCommGroup M
inst✝² : Module R M
m : Submodule R M
N : Type u_5
inst✝¹ : AddCommGroup N
inst✝ : Module R N
X Y : Submodule R M
x✝ : X ⋖ X ⊔ Y
⊢ (↥(Y ⊔ X) ⧸ Submodule.comap (Y ⊔ X).subtype X) ≃ₗ[R] ↥Y ⧸ Submodule.comap Y.subtype Y ⊓ Submodule.comap Y.subtype X
state_after: no goals
tactic: exact (LinearMap.quotientInfEquivSupQuotient Y X).symm
Theorem: VitaliFamily.ae_tendsto_limRatioMeas
File: Mathlib/MeasureTheory/Covering/Differentiation.lean

Proof steps:
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ρ a / μ a) (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))
state_after: case h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
⊢ ∀ (a : α),
    Tendsto (fun a => ρ a / μ a) (v.filterAt a) (𝓝 (v.limRatio ρ a)) →
      v.limRatio ρ a = AEMeasurable.mk (v.limRatio ρ) ⋯ a →
        Tendsto (fun a => ρ a / μ a) (v.filterAt a) (𝓝 (v.limRatioMeas hρ a))
tactic: filter_upwards [v.ae_tendsto_limRatio hρ, AEMeasurable.ae_eq_mk (v.aemeasurable_limRatio hρ)]
state_before: case h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
⊢ ∀ (a : α),
    Tendsto (fun a => ρ a / μ a) (v.filterAt a) (𝓝 (v.limRatio ρ a)) →
      v.limRatio ρ a = AEMeasurable.mk (v.limRatio ρ) ⋯ a →
        Tendsto (fun a => ρ a / μ a) (v.filterAt a) (𝓝 (v.limRatioMeas hρ a))
state_after: case h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
hx : Tendsto (fun a => ρ a / μ a) (v.filterAt x) (𝓝 (v.limRatio ρ x))
h'x : v.limRatio ρ x = AEMeasurable.mk (v.limRatio ρ) ⋯ x
⊢ Tendsto (fun a => ρ a / μ a) (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))
tactic: intro x hx h'x
state_before: case h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : Measure α
inst✝ : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
hx : Tendsto (fun a => ρ a / μ a) (v.filterAt x) (𝓝 (v.limRatio ρ x))
h'x : v.limRatio ρ x = AEMeasurable.mk (v.limRatio ρ) ⋯ x
⊢ Tendsto (fun a => ρ a / μ a) (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))
state_after: no goals
tactic: rwa [h'x] at hx
Theorem: Finsupp.single_apply_left
File: Mathlib/Data/Finsupp/Defs.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a a' : α
b : M
f : α → β
hf : Injective f
x z : α
y : M
⊢ (single (f x) y) (f z) = (single x y) z
state_after: no goals
tactic: classical simp only [single_apply, hf.eq_iff]
Theorem: AlgebraicGeometry.Scheme.OpenCover.copy_J
File: Mathlib/AlgebraicGeometry/Cover/Open.lean

Proof steps:
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ Set.range ⇑(map ((fun x => e₁.symm (𝒰.f x)) x)).val.base
state_after: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
x : ↑↑X.toPresheafedSpace
⊢ x ∈ Set.range ⇑(𝒰.map (𝒰.f x)).val.base

X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
x : ↑↑X.toPresheafedSpace
⊢ Function.Surjective ⇑(e₂✝ ((fun x => e₁.symm (𝒰.f x)) x)).hom.val.base
tactic: rw [e₂, Scheme.comp_val_base, TopCat.coe_comp, Set.range_comp, Set.range_iff_surjective.mpr,
        Set.image_univ, e₁.rightInverse_symm]
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
i : J
⊢ IsOpenImmersion (map i)
state_after: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
i : J
⊢ IsOpenImmersion ((e₂✝ i).hom ≫ 𝒰.map (e₁ i))
tactic: rw [e₂]
state_before: X✝ Y Z : Scheme
𝒰✝ : X✝.OpenCover
f : X✝ ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (x : 𝒰✝.J), HasPullback (𝒰✝.map x ≫ f) g
X : Scheme
𝒰 : X.OpenCover
J : Type u_1
obj : J → Scheme
map : (i : J) → obj i ⟶ X
e₁ : J ≃ 𝒰.J
e₂✝ : (i : J) → obj i ≅ 𝒰.obj (e₁ i)
e₂ : ∀ (i : J), map i = (e₂✝ i).hom ≫ 𝒰.map (e₁ i)
i : J
⊢ IsOpenImmersion ((e₂✝ i).hom ≫ 𝒰.map (e₁ i))
state_after: no goals
tactic: exact PresheafedSpace.IsOpenImmersion.comp _ _
Theorem: IsRightRegular.ne_zero
File: Mathlib/Algebra/Regular/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : MulZeroClass R
a b : R
inst✝ : Nontrivial R
ra : IsRightRegular a
⊢ a ≠ 0
state_after: R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
⊢ False
tactic: rintro rfl
state_before: R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
⊢ False
state_after: case intro.intro
R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
x y : R
xy : x ≠ y
⊢ False
tactic: rcases exists_pair_ne R with ⟨x, y, xy⟩
state_before: case intro.intro
R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
x y : R
xy : x ≠ y
⊢ False
state_after: case intro.intro
R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
x y : R
xy : x ≠ y
⊢ x * 0 = y * 0
tactic: refine xy (ra (?_ : x * 0 = y * 0))
state_before: case intro.intro
R : Type u_1
inst✝¹ : MulZeroClass R
b : R
inst✝ : Nontrivial R
ra : IsRightRegular 0
x y : R
xy : x ≠ y
⊢ x * 0 = y * 0
state_after: no goals
tactic: rw [mul_zero, mul_zero]
Theorem: Fin.find_min
File: Mathlib/Data/Fin/Tuple/Basic.lean

Proof steps:
state_before: m n✝ n : ℕ
p : Fin (n + 1) → Prop
x✝ : DecidablePred p
i : Fin (n + 1)
hi : i ∈ find p
j : ℕ
hjn : j < n + 1
hj : ⟨j, hjn⟩ < i
hpj : p ⟨j, hjn⟩
⊢ False
state_after: m n✝ n : ℕ
p : Fin (n + 1) → Prop
x✝ : DecidablePred p
i : Fin (n + 1)
hi :
  i ∈
    Option.casesOn (find fun i => p (i.castLT ⋯)) (if x : p (last n) then some (last n) else none) fun i =>
      some (i.castLT ⋯)
j : ℕ
hjn : j < n + 1
hj : ⟨j, hjn⟩ < i
hpj : p ⟨j, hjn⟩
⊢ False
tactic: rw [find] at hi
state_before: m n✝ n : ℕ
p : Fin (n + 1) → Prop
x✝ : DecidablePred p
i : Fin (n + 1)
hi :
  i ∈
    Option.casesOn (find fun i => p (i.castLT ⋯)) (if x : p (last n) then some (last n) else none) fun i =>
      some (i.castLT ⋯)
j : ℕ
hjn : j < n + 1
hj : ⟨j, hjn⟩ < i
hpj : p ⟨j, hjn⟩
⊢ False
state_after: case none
m n✝ n : ℕ
p : Fin (n + 1) → Prop
x✝ : DecidablePred p
i : Fin (n + 1)
hi :
  i ∈
    Option.casesOn (find fun i => p (i.castLT ⋯)) (if x : p (last n) then some (last n) else none) fun i =>
      some (i.castLT ⋯)
j : ℕ
hjn : j < n + 1
hj : ⟨j, hjn⟩ < i
hpj : p ⟨j, hjn⟩
h : (find fun i => p (i.castLT ⋯)) = none
⊢ False

case some
m n✝ n : ℕ
p : Fin (n + 1) → Prop
x✝ : DecidablePred p
i : Fin (n + 1)
hi :
  i ∈
    Option.casesOn (find fun i => p (i.castLT ⋯)) (if x : p (last n) then some (last n) else none) fun i =>
      some (i.castLT ⋯)
j : ℕ
hjn : j < n + 1
hj : ⟨j, hjn⟩ < i
hpj : p ⟨j, hjn⟩
k : Fin n
h : (find fun i => p (i.castLT ⋯)) = some k
⊢ False
tactic: cases' h : find fun i : Fin n ↦ p (i.castLT (Nat.lt_succ_of_lt i.2)) with k
Theorem: Ordinal.lt_mul_div_add
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : b ≠ 0
⊢ a < b * (a / b) + b
state_after: no goals
tactic: simpa only [mul_succ] using lt_mul_succ_div a h
Theorem: TopologicalSpace.IsTopologicalBasis.of_hasBasis_nhds
File: Mathlib/Topology/Bases.lean

Proof steps:
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
s : Set (Set α)
h_nhds : ∀ (a : α), (𝓝 a).HasBasis (fun t => t ∈ s ∧ a ∈ t) id
t₁ : Set α
ht₁ : t₁ ∈ s
t₂ : Set α
ht₂ : t₂ ∈ s
x : α
hx : x ∈ t₁ ∩ t₂
⊢ ∃ t₃ ∈ s, x ∈ t₃ ∧ t₃ ⊆ t₁ ∩ t₂
state_after: no goals
tactic: simpa only [and_assoc, (h_nhds x).mem_iff]
      using (inter_mem ((h_nhds _).mem_of_mem ⟨ht₁, hx.1⟩) ((h_nhds _).mem_of_mem ⟨ht₂, hx.2⟩))
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
s : Set (Set α)
h_nhds : ∀ (a : α), (𝓝 a).HasBasis (fun t => t ∈ s ∧ a ∈ t) id
x : α
⊢ 𝓝 x = 𝓝 x
state_after: no goals
tactic: simpa only [nhds_generateFrom, and_comm] using (h_nhds x).eq_biInf
Theorem: MeasureTheory.IsFundamentalDomain.measure_eq_tsum
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
t : Set α
⊢ μ t = ∑' (g : G), μ (g • t ∩ s)
state_after: no goals
tactic: simpa only [setLIntegral_one] using h.setLIntegral_eq_tsum' (fun _ => 1) t
Theorem: Complex.norm_int_of_nonneg
File: Mathlib/Analysis/Complex/Basic.lean

Proof steps:
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
n : ℤ
hn : 0 ≤ n
⊢ ‖↑n‖ = ↑n
state_after: no goals
tactic: rw [norm_int, ← Int.cast_abs, _root_.abs_of_nonneg hn]
Theorem: Ring.DirectLimit.map_id
File: Mathlib/Algebra/DirectLimit.lean

Proof steps:
state_before: R : Type u
inst✝⁷ : Ring R
ι : Type v
inst✝⁶ : Preorder ι
G : ι → Type w
inst✝⁵ : (i : ι) → CommRing (G i)
f✝ : (i j : ι) → i ≤ j → G i → G j
f'✝ : (i j : ι) → i ≤ j → G i →+* G j
P : Type u₁
inst✝⁴ : CommRing P
g✝ : (i : ι) → G i →+* P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g✝ j) (f✝ i j hij x) = (g✝ i) x
f : (i j : ι) → i ≤ j → G i →+* G j
G' : ι → Type v'
inst✝³ : (i : ι) → CommRing (G' i)
f' : (i j : ι) → i ≤ j → G' i →+* G' j
G'' : ι → Type v''
inst✝² : (i : ι) → CommRing (G'' i)
f'' : (i j : ι) → i ≤ j → G'' i →+* G'' j
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectLimit G fun x x_1 h => ⇑(f x x_1 h)
i : ι
g : G i
⊢ (map (fun i => RingHom.id (G i)) ⋯) ((of G (fun x x_1 h => ⇑(f x x_1 h)) i) g) =
    (RingHom.id (DirectLimit G fun x x_1 h => ⇑(f x x_1 h))) ((of G (fun x x_1 h => ⇑(f x x_1 h)) i) g)
state_after: no goals
tactic: simp
Theorem: Finpartition.mem_part
File: Mathlib/Order/Partition/Finpartition.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
ha : a ∈ s
⊢ a ∈ P.part a
state_after: no goals
tactic: simp [part, ha, choose_property]
Theorem: fderiv_eq_smul_deriv
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
y : 𝕜
⊢ (fderiv 𝕜 f x) y = y • deriv f x
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
y : 𝕜
⊢ (fderiv 𝕜 f x) y = (fderiv 𝕜 f x) (y • 1)
tactic: rw [← fderiv_deriv, ← ContinuousLinearMap.map_smul]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
y : 𝕜
⊢ (fderiv 𝕜 f x) y = (fderiv 𝕜 f x) (y • 1)
state_after: no goals
tactic: simp only [smul_eq_mul, mul_one]
Theorem: tendsto_one_plus_div_pow_exp
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

Proof steps:
state_before: t : ℝ
⊢ ∀ (x : ℕ), ((fun x => (1 + t / x) ^ x) ∘ Nat.cast) x = (1 + t / ↑x) ^ x
state_after: no goals
tactic: simp
Theorem: Nat.succ_mod_two_eq_zero_iff
File: Mathlib/Algebra/Group/Nat.lean

Proof steps:
state_before: m✝ n m : ℕ
⊢ (m + 1) % 2 = 0 ↔ m % 2 = 1
state_after: no goals
tactic: simp [← Nat.even_iff, ← Nat.not_even_iff, parity_simps]
Theorem: CategoryTheory.Cat.rightUnitor_inv_app
File: Mathlib/CategoryTheory/Category/Cat.lean

Proof steps:
state_before: B C : Cat
F : B ⟶ C
X : ↑B
⊢ F.obj X = (F ≫ 𝟙 C).obj X
state_after: no goals
tactic: simp
Theorem: Multiset.filter_eq'
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s : Multiset α
b : α
l : List α
⊢ filter (fun x => x = b) ⟦l⟧ = replicate (count b ⟦l⟧) b
state_after: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s : Multiset α
b : α
l : List α
⊢ ↑(List.filter (fun b_1 => decide (b_1 = b)) l) = replicate (List.count b l) b
tactic: simp only [quot_mk_to_coe, filter_coe, mem_coe, coe_count]
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s : Multiset α
b : α
l : List α
⊢ ↑(List.filter (fun b_1 => decide (b_1 = b)) l) = replicate (List.count b l) b
state_after: no goals
tactic: rw [List.filter_eq l b, coe_replicate]
Theorem: PartialHomeomorph.eventually_nhds'
File: Mathlib/Topology/PartialHomeomorph.lean

Proof steps:
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : X → Prop
hx : x ∈ e.source
⊢ (∀ᶠ (y : Y) in 𝓝 (↑e x), p (↑e.symm y)) ↔ ∀ᶠ (x : X) in 𝓝 x, p x
state_after: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : X → Prop
hx : x ∈ e.source
⊢ (∀ᶠ (x : X) in 𝓝 x, p (↑e.symm (↑e x))) ↔ ∀ᶠ (x : X) in 𝓝 x, p x
tactic: rw [e.eventually_nhds _ hx]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : X → Prop
hx : x ∈ e.source
⊢ (∀ᶠ (x : X) in 𝓝 x, p (↑e.symm (↑e x))) ↔ ∀ᶠ (x : X) in 𝓝 x, p x
state_after: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : X → Prop
hx : x ∈ e.source
y : X
hy : ↑e.symm (↑e y) = y
⊢ p (↑e.symm (↑e y)) ↔ p y
tactic: refine eventually_congr ((e.eventually_left_inverse hx).mono fun y hy => ?_)
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : X → Prop
hx : x ∈ e.source
y : X
hy : ↑e.symm (↑e y) = y
⊢ p (↑e.symm (↑e y)) ↔ p y
state_after: no goals
tactic: rw [hy]
Theorem: Finset.subset_smul_finset_iff
File: Mathlib/Data/Finset/Pointwise.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq β
inst✝¹ : Group α
inst✝ : MulAction α β
s t : Finset β
a : α
b : β
⊢ s ⊆ a • t ↔ a⁻¹ • s ⊆ t
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq β
inst✝¹ : Group α
inst✝ : MulAction α β
s t : Finset β
a : α
b : β
⊢ ↑s ⊆ ↑(a • t) ↔ ↑(a⁻¹ • s) ⊆ ↑t
tactic: simp_rw [← coe_subset]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq β
inst✝¹ : Group α
inst✝ : MulAction α β
s t : Finset β
a : α
b : β
⊢ ↑s ⊆ ↑(a • t) ↔ ↑(a⁻¹ • s) ⊆ ↑t
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq β
inst✝¹ : Group α
inst✝ : MulAction α β
s t : Finset β
a : α
b : β
⊢ ↑s ⊆ a • ↑t ↔ a⁻¹ • ↑s ⊆ ↑t
tactic: push_cast
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq β
inst✝¹ : Group α
inst✝ : MulAction α β
s t : Finset β
a : α
b : β
⊢ ↑s ⊆ a • ↑t ↔ a⁻¹ • ↑s ⊆ ↑t
state_after: no goals
tactic: exact Set.subset_set_smul_iff
Theorem: Equiv.pointReflection_midpoint_right
File: Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x✝ y✝ z x y : P
⊢ (pointReflection (midpoint R x y)) y = x
state_after: no goals
tactic: rw [midpoint_comm, Equiv.pointReflection_midpoint_left]
Theorem: Asymptotics.isLittleO_top
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ f'' =o[⊤] g' ↔ ∀ (x : α), f'' x = 0
state_after: no goals
tactic: simp only [← principal_univ, isLittleO_principal, mem_univ, forall_true_left]
Theorem: isExtreme_sInter
File: Mathlib/Analysis/Convex/Extreme.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F✝ : Type u_3
ι : Type u_4
π : ι → Type u_5
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : SMul 𝕜 E
A B C : Set E
x : E
F : Set (Set E)
hF : F.Nonempty
hAF : ∀ B ∈ F, IsExtreme 𝕜 A B
⊢ IsExtreme 𝕜 A (⋂₀ F)
state_after: no goals
tactic: simpa [sInter_eq_biInter] using isExtreme_biInter hF hAF
Theorem: ClusterPt.of_nhds_le
File: Mathlib/Topology/Basic.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
f : Filter X
H : 𝓝 x ≤ f
⊢ ClusterPt x f
state_after: no goals
tactic: simp only [ClusterPt, inf_eq_left.mpr H, nhds_neBot]