ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Trivialization.mk_coordChangeL
File: Mathlib/Topology/VectorBundle/Basic.lean

Proof steps:
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, (coordChangeL R e e' b) y) = ↑e' { proj := b, snd := e.symm b y }
state_after: case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, (coordChangeL R e e' b) y).1 = (↑e' { proj := b, snd := e.symm b y }).1

case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁹ : Semiring R
inst✝⁸ : TopologicalSpace F
inst✝⁷ : TopologicalSpace B
inst✝⁶ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y✝ : E b✝
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module R F
inst✝³ : (x : B) → AddCommMonoid (E x)
inst✝² : (x : B) → Module R (E x)
e e' : Trivialization F TotalSpace.proj
inst✝¹ : Trivialization.IsLinear R e
inst✝ : Trivialization.IsLinear R e'
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
y : F
⊢ (b, (coordChangeL R e e' b) y).2 = (↑e' { proj := b, snd := e.symm b y }).2
tactic: ext
Theorem: tendstoLocallyUniformly_iff_forall_isCompact
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝¹ : TopologicalSpace α
inst✝ : LocallyCompactSpace α
⊢ TendstoLocallyUniformly F f p ↔ ∀ (K : Set α), IsCompact K → TendstoUniformlyOn F f p K
state_after: no goals
tactic: simp only [← tendstoLocallyUniformlyOn_univ,
    tendstoLocallyUniformlyOn_iff_forall_isCompact isOpen_univ, Set.subset_univ, forall_true_left]
Theorem: unitary.toUnits_comp_map
File: Mathlib/Algebra/Star/Unitary.lean

Proof steps:
state_before: R✝ : Type u_1
F : Type u_2
R : Type u_3
S : Type u_4
inst✝⁶ : Monoid R
inst✝⁵ : StarMul R
inst✝⁴ : Monoid S
inst✝³ : StarMul S
inst✝² : FunLike F R S
inst✝¹ : StarHomClass F R S
inst✝ : MonoidHomClass F R S
f : F
⊢ toUnits.comp (map f) = (Units.map ↑f).comp toUnits
state_after: case h.a
R✝ : Type u_1
F : Type u_2
R : Type u_3
S : Type u_4
inst✝⁶ : Monoid R
inst✝⁵ : StarMul R
inst✝⁴ : Monoid S
inst✝³ : StarMul S
inst✝² : FunLike F R S
inst✝¹ : StarHomClass F R S
inst✝ : MonoidHomClass F R S
f : F
x✝ : ↥(unitary R)
⊢ ↑((toUnits.comp (map f)) x✝) = ↑(((Units.map ↑f).comp toUnits) x✝)
tactic: ext
state_before: case h.a
R✝ : Type u_1
F : Type u_2
R : Type u_3
S : Type u_4
inst✝⁶ : Monoid R
inst✝⁵ : StarMul R
inst✝⁴ : Monoid S
inst✝³ : StarMul S
inst✝² : FunLike F R S
inst✝¹ : StarHomClass F R S
inst✝ : MonoidHomClass F R S
f : F
x✝ : ↥(unitary R)
⊢ ↑((toUnits.comp (map f)) x✝) = ↑(((Units.map ↑f).comp toUnits) x✝)
state_after: no goals
tactic: rfl
Theorem: Algebra.embeddingsMatrixReindex_eq_vandermonde
File: Mathlib/RingTheory/Trace/Basic.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁸ : CommRing R
inst✝¹⁷ : CommRing S
inst✝¹⁶ : CommRing T
inst✝¹⁵ : Algebra R S
inst✝¹⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹³ : Field K
inst✝¹² : Field L
inst✝¹¹ : Algebra K L
ι κ : Type w
inst✝¹⁰ : Fintype ι
F : Type u_6
inst✝⁹ : Field F
inst✝⁸ : Algebra R L
inst✝⁷ : Algebra L F
inst✝⁶ : Algebra R F
inst✝⁵ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : Algebra A B
inst✝¹ : CommRing C
inst✝ : Algebra A C
pb : PowerBasis A B
e : Fin pb.dim ≃ (B →ₐ[A] C)
⊢ embeddingsMatrixReindex A C (⇑pb.basis) e = (vandermonde fun i => (e i) pb.gen)ᵀ
state_after: case a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁸ : CommRing R
inst✝¹⁷ : CommRing S
inst✝¹⁶ : CommRing T
inst✝¹⁵ : Algebra R S
inst✝¹⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹³ : Field K
inst✝¹² : Field L
inst✝¹¹ : Algebra K L
ι κ : Type w
inst✝¹⁰ : Fintype ι
F : Type u_6
inst✝⁹ : Field F
inst✝⁸ : Algebra R L
inst✝⁷ : Algebra L F
inst✝⁶ : Algebra R F
inst✝⁵ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : Algebra A B
inst✝¹ : CommRing C
inst✝ : Algebra A C
pb : PowerBasis A B
e : Fin pb.dim ≃ (B →ₐ[A] C)
i j : Fin pb.dim
⊢ embeddingsMatrixReindex A C (⇑pb.basis) e i j = (vandermonde fun i => (e i) pb.gen)ᵀ i j
tactic: ext i j
state_before: case a
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁸ : CommRing R
inst✝¹⁷ : CommRing S
inst✝¹⁶ : CommRing T
inst✝¹⁵ : Algebra R S
inst✝¹⁴ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹³ : Field K
inst✝¹² : Field L
inst✝¹¹ : Algebra K L
ι κ : Type w
inst✝¹⁰ : Fintype ι
F : Type u_6
inst✝⁹ : Field F
inst✝⁸ : Algebra R L
inst✝⁷ : Algebra L F
inst✝⁶ : Algebra R F
inst✝⁵ : IsScalarTower R L F
A : Type u
B : Type v
C : Type z
inst✝⁴ : CommRing A
inst✝³ : CommRing B
inst✝² : Algebra A B
inst✝¹ : CommRing C
inst✝ : Algebra A C
pb : PowerBasis A B
e : Fin pb.dim ≃ (B →ₐ[A] C)
i j : Fin pb.dim
⊢ embeddingsMatrixReindex A C (⇑pb.basis) e i j = (vandermonde fun i => (e i) pb.gen)ᵀ i j
state_after: no goals
tactic: simp [embeddingsMatrixReindex, embeddingsMatrix]
Theorem: WittVector.init_sub
File: Mathlib/RingTheory/WittVector/InitTail.lean

Proof steps:
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x y : 𝕎 R
n : ℕ
⊢ init n (x - y) = init n (init n x - init n y)
state_after: no goals
tactic: init_ring using wittSub_vars
Theorem: integral_exp_neg_rpow
File: Mathlib/MeasureTheory/Integral/Gamma.lean

Proof steps:
state_before: p : ℝ
hp : 0 < p
⊢ ∫ (x : ℝ) in Ioi 0, rexp (-x ^ p) = Gamma (1 / p + 1)
state_after: case h.e'_2
p : ℝ
hp : 0 < p
⊢ ∫ (x : ℝ) in Ioi 0, rexp (-x ^ p) = ∫ (x : ℝ) in Ioi 0, x ^ 0 * rexp (-x ^ p)

case h.e'_3
p : ℝ
hp : 0 < p
⊢ Gamma (1 / p + 1) = 1 / p * Gamma ((0 + 1) / p)
tactic: convert (integral_rpow_mul_exp_neg_rpow hp neg_one_lt_zero) using 1
Theorem: Sublattice.map_inf
File: Mathlib/Order/Sublattice.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L✝ M✝ : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
L M : Sublattice α
f : LatticeHom α β
hf : Injective ⇑f
⊢ map f (L ⊓ M) = map f L ⊓ map f M
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L✝ M✝ : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
L M : Sublattice α
f : LatticeHom α β
hf : Injective ⇑f
⊢ ↑(map f (L ⊓ M)) = ↑(map f L ⊓ map f M)
tactic: rw [← SetLike.coe_set_eq]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Lattice α
inst✝¹ : Lattice β
inst✝ : Lattice γ
L✝ M✝ : Sublattice α
f✝ : LatticeHom α β
s t : Set α
a : α
L M : Sublattice α
f : LatticeHom α β
hf : Injective ⇑f
⊢ ↑(map f (L ⊓ M)) = ↑(map f L ⊓ map f M)
state_after: no goals
tactic: simp [Set.image_inter hf]
Theorem: associated_isUnit_mul_left_iff
File: Mathlib/Algebra/Associated/Basic.lean

Proof steps:
state_before: α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
β : Type u_5
inst✝ : CommMonoid β
u a b : β
hu : IsUnit u
⊢ u * a ~ᵤ b ↔ a ~ᵤ b
state_after: α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
β : Type u_5
inst✝ : CommMonoid β
u a b : β
hu : IsUnit u
⊢ a * u ~ᵤ b ↔ a ~ᵤ b
tactic: rw [mul_comm]
state_before: α : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
β : Type u_5
inst✝ : CommMonoid β
u a b : β
hu : IsUnit u
⊢ a * u ~ᵤ b ↔ a ~ᵤ b
state_after: no goals
tactic: exact associated_mul_isUnit_left_iff hu
Theorem: Finset.prod_dite_of_true
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g✝ : α → β
inst✝ : CommMonoid β
p : α → Prop
x✝ : DecidablePred p
h : ∀ i ∈ s, p i
f : (i : α) → p i → β
g : (i : α) → ¬p i → β
⊢ (∏ i ∈ s, if hi : p i then f i hi else g i hi) = ∏ i : { x // x ∈ s }, f ↑i ⋯
state_after: no goals
tactic: refine prod_bij' (fun x hx => ⟨x, hx⟩) (fun x _ ↦ x) ?_ ?_ ?_ ?_ ?_ <;> aesop
Theorem: CochainComplex.ShiftSequence.shiftIso_hom_app
File: Mathlib/Algebra/Homology/HomotopyCategory/ShiftSequence.lean

Proof steps:
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
inst✝ : CategoryWithHomology C
n a a' : ℤ
ha' : n + a = a'
K : CochainComplex C ℤ
⊢ (shiftIso C n a a' ha').hom.app K = ShortComplex.homologyMap ((shiftShortComplexFunctorIso C n a a' ha').hom.app K)
state_after: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
inst✝ : CategoryWithHomology C
n a a' : ℤ
ha' : n + a = a'
K : CochainComplex C ℤ
⊢ 𝟙 (((CategoryTheory.shiftFunctor (HomologicalComplex C (up ℤ)) n).obj K).homology a) ≫
      𝟙
          ((shortComplexFunctor C (up ℤ) a).obj
              ((CategoryTheory.shiftFunctor (HomologicalComplex C (up ℤ)) n).obj K)).homology ≫
        ShortComplex.homologyMap ((shiftShortComplexFunctorIso C n a a' ha').hom.app K) ≫ 𝟙 (homology K a') =
    ShortComplex.homologyMap ((shiftShortComplexFunctorIso C n a a' ha').hom.app K)
tactic: dsimp [shiftIso]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
inst✝ : CategoryWithHomology C
n a a' : ℤ
ha' : n + a = a'
K : CochainComplex C ℤ
⊢ 𝟙 (((CategoryTheory.shiftFunctor (HomologicalComplex C (up ℤ)) n).obj K).homology a) ≫
      𝟙
          ((shortComplexFunctor C (up ℤ) a).obj
              ((CategoryTheory.shiftFunctor (HomologicalComplex C (up ℤ)) n).obj K)).homology ≫
        ShortComplex.homologyMap ((shiftShortComplexFunctorIso C n a a' ha').hom.app K) ≫ 𝟙 (homology K a') =
    ShortComplex.homologyMap ((shiftShortComplexFunctorIso C n a a' ha').hom.app K)
state_after: no goals
tactic: erw [id_comp, id_comp, comp_id]
Theorem: Fin.mem_piFinset_succ
File: Mathlib/Data/Fin/Tuple/Finset.lean

Proof steps:
state_before: n : ℕ
α : Fin (n + 1) → Type u_1
x : (i : Fin (n + 1)) → α i
s : (i : Fin (n + 1)) → Finset (α i)
⊢ x ∈ piFinset s ↔ x 0 ∈ s 0 ∧ tail x ∈ piFinset (tail s)
state_after: no goals
tactic: simp only [mem_piFinset, forall_fin_succ, tail]
Theorem: String.Iterator.ValidFor.curr
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

Proof steps:
state_before: l r : List Char
it : Iterator
h : ValidFor l r it
⊢ it.curr = r.headD default
state_after: case refl
l r : List Char
h : ValidFor l r { s := { data := l.reverse ++ r }, i := { byteIdx := utf8Len l.reverse } }
⊢ { s := { data := l.reverse ++ r }, i := { byteIdx := utf8Len l.reverse } }.curr = r.headD default
tactic: cases h.out'
state_before: case refl
l r : List Char
h : ValidFor l r { s := { data := l.reverse ++ r }, i := { byteIdx := utf8Len l.reverse } }
⊢ { s := { data := l.reverse ++ r }, i := { byteIdx := utf8Len l.reverse } }.curr = r.headD default
state_after: no goals
tactic: apply get_of_valid
Theorem: Matroid.Indep.exists_insert_of_not_basis
File: Mathlib/Data/Matroid/Restrict.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬M.Basis I X
hJ : M.Basis J X
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
state_after: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : M.Basis J X
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
tactic: rw [← base_restrict_iff] at hI'
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : M.Basis J X
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
state_after: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : (M ↾ X).Base J
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
tactic: rw [← base_restrict_iff] at hJ
state_before: α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : (M ↾ X).Base J
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
state_after: case intro.intro
α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e✝ : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : (M ↾ X).Base J
e : α
he : e ∈ J \ I
hi : (M ↾ X).Indep (insert e I)
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
tactic: obtain ⟨e, he, hi⟩ := (hI.indep_restrict_of_subset hIX).exists_insert_of_not_base hI' hJ
state_before: case intro.intro
α : Type u_1
M : Matroid α
R I J✝ X Y B J : Set α
e✝ : α
hI : M.Indep I
hIX : I ⊆ X
hI' : ¬(M ↾ X).Base I
hJ : (M ↾ X).Base J
e : α
he : e ∈ J \ I
hi : (M ↾ X).Indep (insert e I)
⊢ ∃ e ∈ J \ I, M.Indep (insert e I)
state_after: no goals
tactic: exact ⟨e, he, (restrict_indep_iff.mp hi).1⟩
Theorem: LieAlgebra.derivedSeries_lt_top_of_solvable
File: Mathlib/Algebra/Lie/Solvable.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
⊢ derivedSeries R L 1 < ⊤
state_after: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
⊢ derivedSeries R L 1 < ⊤
tactic: obtain ⟨n, hn⟩ := IsSolvable.solvable (R := R) (L := L)
state_before: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
⊢ derivedSeries R L 1 < ⊤
state_after: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
⊢ derivedSeries R L 1 ≠ ⊤
tactic: rw [lt_top_iff_ne_top]
state_before: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
⊢ derivedSeries R L 1 ≠ ⊤
state_after: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
contra : derivedSeries R L 1 = ⊤
⊢ False
tactic: intro contra
state_before: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : derivedSeries R L n = ⊥
contra : derivedSeries R L 1 = ⊤
⊢ False
state_after: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : ⊤ = ⊥
contra : derivedSeries R L 1 = ⊤
⊢ False
tactic: rw [LieIdeal.derivedSeries_eq_top n contra] at hn
state_before: case intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : LieRing L'
inst✝² : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
inst✝¹ : IsSolvable R L
inst✝ : Nontrivial L
n : ℕ
hn : ⊤ = ⊥
contra : derivedSeries R L 1 = ⊤
⊢ False
state_after: no goals
tactic: exact top_ne_bot hn
Theorem: SemidirectProduct.rightHom_inr
File: Mathlib/GroupTheory/SemidirectProduct.lean

Proof steps:
state_before: N : Type u_1
G : Type u_2
H : Type u_3
inst✝² : Group N
inst✝¹ : Group G
inst✝ : Group H
φ : G →* MulAut N
g : G
⊢ rightHom (inr g) = g
state_after: no goals
tactic: simp [rightHom]
Theorem: ENat.toNat_eq_iff
File: Mathlib/Data/ENat/Basic.lean

Proof steps:
state_before: m✝ n✝ m : ℕ∞
n : ℕ
hn : n ≠ 0
⊢ m.toNat = n ↔ m = ↑n
state_after: no goals
tactic: induction m <;> simp [hn.symm]
Theorem: MonoidAlgebra.freeAlgebra_lift_of_surjective_of_closure
File: Mathlib/RingTheory/FiniteType.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
⊢ Surjective ⇑((FreeAlgebra.lift R) fun s => (of R M) ↑s)
state_after: R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
f : MonoidAlgebra R M
⊢ ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = f
tactic: intro f
state_before: R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
f : MonoidAlgebra R M
⊢ ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = f
state_after: case hM
R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
m : M
⊢ ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = (of R M) m

case hadd
R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
f g : MonoidAlgebra R M
ihf : ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = f
ihg : ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = g
⊢ ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = f + g

case hsmul
R : Type u_1
M : Type u_2
inst✝¹ : Monoid M
inst✝ : CommSemiring R
S : Set M
hS : closure S = ⊤
r : R
f : MonoidAlgebra R M
ih : ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = f
⊢ ∃ a, ((FreeAlgebra.lift R) fun s => (of R M) ↑s) a = r • f
tactic: induction' f using induction_on with m f g ihf ihg r f ih
Theorem: smul_nonpos_of_nonneg_of_nonpos
File: Mathlib/Algebra/Order/Module/Defs.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁵ : Zero α
inst✝⁴ : Zero β
inst✝³ : SMulZeroClass α β
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : PosSMulMono α β
ha : 0 ≤ a
hb : b ≤ 0
⊢ a • b ≤ 0
state_after: no goals
tactic: simpa only [smul_zero] using smul_le_smul_of_nonneg_left hb ha
Theorem: mul_eq_mul_right_iff
File: Mathlib/Algebra/GroupWithZero/Basic.lean

Proof steps:
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CancelMonoidWithZero M₀
a b c : M₀
⊢ a * c = b * c ↔ a = b ∨ c = 0
state_after: no goals
tactic: by_cases hc : c = 0 <;> [simp only [hc, mul_zero, or_true]; simp [mul_left_inj', hc]]
Theorem: List.countP_bind'
File: Mathlib/Data/List/Join.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
p : β → Bool
l : List α
f : α → List β
⊢ countP p (l.bind f) = Nat.sum (map (countP p ∘ f) l)
state_after: no goals
tactic: rw [List.bind, countP_join', map_map]
Theorem: MeasureTheory.FiniteMeasure.mass_nonzero_iff
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

Proof steps:
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass ≠ 0 ↔ μ ≠ 0
state_after: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass = 0 ↔ μ = 0
tactic: rw [not_iff_not]
state_before: Ω : Type u_1
inst✝ : MeasurableSpace Ω
μ : FiniteMeasure Ω
⊢ μ.mass = 0 ↔ μ = 0
state_after: no goals
tactic: exact FiniteMeasure.mass_zero_iff μ
Theorem: CategoryTheory.ShortComplex.RightHomologyData.ofZeros_Q
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.30360, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ S.f ≫ 𝟙 S.X₂ = 0
state_after: no goals
tactic: rw [comp_id, hf]
state_before: C : Type u_1
inst✝¹ : Category.{?u.30360, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ 𝟙 S.X₂ ≫ (CokernelCofork.IsColimit.ofId S.f hf).desc (CokernelCofork.ofπ S.g ⋯) = 0
state_after: C : Type u_1
inst✝¹ : Category.{?u.30360, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ 𝟙 S.X₂ ≫ S.g = 0
tactic: change 𝟙 _ ≫ S.g = 0
state_before: C : Type u_1
inst✝¹ : Category.{?u.30360, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.RightHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ 𝟙 S.X₂ ≫ S.g = 0
state_after: no goals
tactic: simp only [hg, comp_zero]
Theorem: _private.Mathlib.NumberTheory.Padics.Hensel.0.tendsto_zero_of_norm_tendsto_zero
File: Mathlib/NumberTheory/Padics/Hensel.lean

Proof steps:
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
ncs : CauSeq ℤ_[p] norm
F : Polynomial ℤ_[p]
hnorm : Tendsto (fun i => ‖Polynomial.eval (↑ncs i) F‖) atTop (𝓝 0)
⊢ Tendsto (fun e => ‖Polynomial.eval (↑ncs e) F - 0‖) atTop (𝓝 0)
state_after: no goals
tactic: simpa using hnorm
Theorem: Turing.PartrecToTM2.codeSupp_case
File: Mathlib/Computability/TMToPartrec.lean

Proof steps:
state_before: f g : Code
k : Cont'
⊢ codeSupp (f.case g) k = trStmts₁ (trNormal (f.case g) k) ∪ (codeSupp f k ∪ codeSupp g k)
state_after: no goals
tactic: simp [codeSupp, codeSupp', contSupp, Finset.union_assoc, Finset.union_left_comm]
Theorem: Real.sin_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

Proof steps:
state_before: ⊢ Function.Antiperiodic sin π
state_after: no goals
tactic: simp [sin_add]
Theorem: MeasureTheory.AECover.integrable_of_lintegral_nnnorm_tendsto'
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
inst✝³ : MeasurableSpace α
μ : Measure α
l : Filter ι
inst✝² : NormedAddCommGroup E
inst✝¹ : l.NeBot
inst✝ : l.IsCountablyGenerated
φ : ι → Set α
hφ : AECover μ l φ
f : α → E
I : ℝ≥0
hfm : AEStronglyMeasurable f μ
htendsto : Tendsto (fun i => ∫⁻ (x : α) in φ i, ↑‖f x‖₊ ∂μ) l (𝓝 ↑I)
⊢ Tendsto (fun i => ∫⁻ (x : α) in φ i, ↑‖f x‖₊ ∂μ) l (𝓝 (ENNReal.ofReal ↑I))
state_after: no goals
tactic: simpa only [ENNReal.ofReal_coe_nnreal] using htendsto
Theorem: Valued.mem_nhds
File: Mathlib/Topology/Algebra/Valued/ValuationTopology.lean

Proof steps:
state_before: R : Type u
inst✝¹ : Ring R
Γ₀ : Type v
inst✝ : LinearOrderedCommGroupWithZero Γ₀
_i : Valued R Γ₀
s : Set R
x : R
⊢ s ∈ 𝓝 x ↔ ∃ γ, {y | v (y - x) < ↑γ} ⊆ s
state_after: no goals
tactic: simp only [← nhds_translation_add_neg x, ← sub_eq_add_neg, preimage_setOf_eq, true_and,
    ((hasBasis_nhds_zero R Γ₀).comap fun y => y - x).mem_iff]
Theorem: AddConstMapClass.map_sub_const
File: Mathlib/Algebra/AddConstMap/Basic.lean

Proof steps:
state_before: F : Type u_1
G : Type u_2
H : Type u_3
inst✝³ : FunLike F G H
a : G
b : H
inst✝² : AddGroup G
inst✝¹ : AddGroup H
inst✝ : AddConstMapClass F G H a b
f : F
x : G
⊢ f (x - a) = f x - b
state_after: no goals
tactic: simpa using map_sub_nsmul f x 1
Theorem: Set.encard_tsub_one_le_encard_diff_singleton
File: Mathlib/Data/Set/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
a b : α
s : Set α
x : α
⊢ s.encard - 1 ≤ (s \ {x}).encard
state_after: α : Type u_1
β : Type u_2
s✝ t : Set α
a b : α
s : Set α
x : α
⊢ s.encard - {x}.encard ≤ (s \ {x}).encard
tactic: rw [← encard_singleton x]
state_before: α : Type u_1
β : Type u_2
s✝ t : Set α
a b : α
s : Set α
x : α
⊢ s.encard - {x}.encard ≤ (s \ {x}).encard
state_after: no goals
tactic: apply tsub_encard_le_encard_diff