1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: imageToKernel_epi_comp
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: simpa using w
state_before: ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝² : HasKernels V
inst✝¹ : HasImages V
Z : V
h : Z ⟶ A
inst✝ : Epi h
w : (h ≫ f) ≫ g = 0
⊢ h ≫ f ≫ g = h ≫ 0
state_after: no goals

tactic: ext
state_before: ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝² : HasKernels V
inst✝¹ : HasImages V
Z : V
h : Z ⟶ A
inst✝ : Epi h
w : (h ≫ f) ≫ g = 0
⊢ imageToKernel (h ≫ f) g w = (imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g ⋯
state_after: case h
ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝² : HasKernels V
inst✝¹ : HasImages V
Z : V
h : Z ⟶ A
inst✝ : Epi h
w : (h ≫ f) ≫ g = 0
⊢ imageToKernel (h ≫ f) g w ≫ (kernelSubobject g).arrow =
    ((imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g ⋯) ≫ (kernelSubobject g).arrow

tactic: simp
state_before: case h
ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
g : B ⟶ C
inst✝² : HasKernels V
inst✝¹ : HasImages V
Z : V
h : Z ⟶ A
inst✝ : Epi h
w : (h ≫ f) ≫ g = 0
⊢ imageToKernel (h ≫ f) g w ≫ (kernelSubobject g).arrow =
    ((imageSubobject (h ≫ f)).ofLE (imageSubobject f) ⋯ ≫ imageToKernel f g ⋯) ≫ (kernelSubobject g).arrow
state_after: no goals
Theorem: WeierstrassCurve.Affine.baseChange_addY
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: erw [← map_addY, map_baseChange]
state_before: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x₁ x₂ y₁ L : A
⊢ (baseChange W B).toAffine.addY (f x₁) (f x₂) (f y₁) (f L) = f ((baseChange W A).toAffine.addY x₁ x₂ y₁ L)
state_after: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x₁ x₂ y₁ L : A
⊢ (baseChange W B).toAffine.addY (f x₁) (f x₂) (f y₁) (f L) =
    (baseChange W B).toAffine.addY (f.toRingHom x₁) (f.toRingHom x₂) (f.toRingHom y₁) (f.toRingHom L)

tactic: rfl
state_before: R✝ : Type u
inst✝¹¹ : CommRing R✝
W✝ : Affine R✝
R : Type r
inst✝¹⁰ : CommRing R
W : Affine R
S : Type s
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
x₁ x₂ y₁ L : A
⊢ (baseChange W B).toAffine.addY (f x₁) (f x₂) (f y₁) (f L) =
    (baseChange W B).toAffine.addY (f.toRingHom x₁) (f.toRingHom x₂) (f.toRingHom y₁) (f.toRingHom L)
state_after: no goals
Theorem: Set.image_iInter
File: Mathlib/Data/Set/Lattice.lean

tactic: cases isEmpty_or_nonempty ι
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
hf : Bijective f
s : ι → Set α
⊢ f '' ⋂ i, s i = ⋂ i, f '' s i
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
hf : Bijective f
s : ι → Set α
h✝ : IsEmpty ι
⊢ f '' ⋂ i, s i = ⋂ i, f '' s i

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
hf : Bijective f
s : ι → Set α
h✝ : Nonempty ι
⊢ f '' ⋂ i, s i = ⋂ i, f '' s i

tactic: simp_rw [iInter_of_empty, image_univ_of_surjective hf.surjective]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
hf : Bijective f
s : ι → Set α
h✝ : IsEmpty ι
⊢ f '' ⋂ i, s i = ⋂ i, f '' s i
state_after: no goals

tactic: exact hf.injective.injOn.image_iInter_eq
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
hf : Bijective f
s : ι → Set α
h✝ : Nonempty ι
⊢ f '' ⋂ i, s i = ⋂ i, f '' s i
state_after: no goals
Theorem: Submodule.map_add_le
File: Mathlib/Algebra/Module/Submodule/Map.lean

tactic: rintro x ⟨m, hm, rfl⟩
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝² : RingHomSurjective σ₁₂
F : Type u_9
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
f g : M →ₛₗ[σ₁₂] M₂
⊢ map (f + g) p ≤ map f p ⊔ map g p
state_after: case intro.intro
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝² : RingHomSurjective σ₁₂
F : Type u_9
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
f g : M →ₛₗ[σ₁₂] M₂
m : M
hm : m ∈ ↑p
⊢ (f + g) m ∈ map f p ⊔ map g p

tactic: exact add_mem_sup (mem_map_of_mem hm) (mem_map_of_mem hm)
state_before: case intro.intro
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝² : RingHomSurjective σ₁₂
F : Type u_9
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
f g : M →ₛₗ[σ₁₂] M₂
m : M
hm : m ∈ ↑p
⊢ (f + g) m ∈ map f p ⊔ map g p
state_after: no goals
Theorem: groupCohomology.map_inv_of_isOneCocycle
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: rw [← add_eq_zero_iff_eq_neg, ← map_one_of_isOneCocycle hf, ← mul_inv_self g, hf g g⁻¹]
state_before: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A✝ : Rep k G✝
G : Type u_1
A : Type u_2
inst✝² : Group G
inst✝¹ : AddCommGroup A
inst✝ : MulAction G A
f : G → A
hf : IsOneCocycle f
g : G
⊢ g • f g⁻¹ = -f g
state_after: no goals
Theorem: tsum_dirichletSummand
File: Mathlib/NumberTheory/EulerProduct/DirichletLSeries.lean

tactic: simp only [LSeries, LSeries.term, dirichletSummandHom]
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ ∑' (n : ℕ), (dirichletSummandHom χ ⋯) n = L (fun n => χ ↑n) s
state_after: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ ∑' (n : ℕ), { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    ∑' (n : ℕ), if n = 0 then 0 else χ ↑n / ↑n ^ s

tactic: refine tsum_congr (fun n ↦ ?_)
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ ∑' (n : ℕ), { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    ∑' (n : ℕ), if n = 0 then 0 else χ ↑n / ↑n ^ s
state_after: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
n : ℕ
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    if n = 0 then 0 else χ ↑n / ↑n ^ s

tactic: rcases eq_or_ne n 0 with rfl | hn
state_before: s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
n : ℕ
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    if n = 0 then 0 else χ ↑n / ↑n ^ s
state_after: case inl
s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } 0 =
    if 0 = 0 then 0 else χ ↑0 / ↑0 ^ s

case inr
s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
n : ℕ
hn : n ≠ 0
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    if n = 0 then 0 else χ ↑n / ↑n ^ s

tactic: simp only [map_zero, ↓reduceIte]
state_before: case inl
s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } 0 =
    if 0 = 0 then 0 else χ ↑0 / ↑0 ^ s
state_after: no goals

tactic: simp only [cpow_neg, MonoidWithZeroHom.coe_mk, ZeroHom.coe_mk, hn, ↓reduceIte,
  Field.div_eq_mul_inv]
state_before: case inr
s : ℂ
N : ℕ
χ : DirichletCharacter ℂ N
hs : 1 < s.re
n : ℕ
hn : n ≠ 0
⊢ { toFun := fun n => χ ↑n * ↑n ^ (-s), map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ } n =
    if n = 0 then 0 else χ ↑n / ↑n ^ s
state_after: no goals
Theorem: bound'
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: rw [← mul_zero ‖F.derivative.eval a‖]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ Tendsto (fun n => ‖Polynomial.eval a (Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n) atTop (𝓝 0)
state_after: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ Tendsto (fun n => ‖Polynomial.eval a (Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n) atTop
    (𝓝 (‖Polynomial.eval a (Polynomial.derivative F)‖ * 0))

tactic: exact
  tendsto_const_nhds.mul
    (Tendsto.comp (tendsto_pow_atTop_nhds_zero_of_lt_one (norm_nonneg _) (T_lt_one hnorm))
      (Nat.tendsto_pow_atTop_atTop_of_one_lt (by norm_num)))
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ Tendsto (fun n => ‖Polynomial.eval a (Polynomial.derivative F)‖ * T_gen p F a ^ 2 ^ n) atTop
    (𝓝 (‖Polynomial.eval a (Polynomial.derivative F)‖ * 0))
state_after: no goals

tactic: norm_num
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ 1 < 2
state_after: no goals
Theorem: Set.Iic_union_Ioc'
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: ext1 x
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
⊢ Iic b ∪ Ioc c d = Iic (max b d)
state_after: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
⊢ x ∈ Iic b ∪ Ioc c d ↔ x ∈ Iic (max b d)

tactic: simp_rw [mem_union, mem_Iic, mem_Ioc, le_max_iff]
state_before: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
⊢ x ∈ Iic b ∪ Ioc c d ↔ x ∈ Iic (max b d)
state_after: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d

tactic: by_cases hc : c < x
state_before: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d
state_after: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : c < x
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d

case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : ¬c < x
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d

tactic: simp only [hc, true_and]
state_before: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : c < x
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d
state_after: no goals

tactic: have hxb : x ≤ b := (le_of_not_gt hc).trans h₁.le
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : ¬c < x
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d
state_after: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : ¬c < x
hxb : x ≤ b
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d

tactic: simp only [hxb, true_or]
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c < b
x : α
hc : ¬c < x
hxb : x ≤ b
⊢ x ≤ b ∨ c < x ∧ x ≤ d ↔ x ≤ b ∨ x ≤ d
state_after: no goals
Theorem: LinearEquiv.toLinearEquiv_toContinuousLinearEquiv
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

tactic: ext x
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
⊢ e.toContinuousLinearEquiv.toLinearEquiv = e
state_after: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
x : E
⊢ e.toContinuousLinearEquiv.toLinearEquiv x = e x

tactic: rfl
state_before: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
x : E
⊢ e.toContinuousLinearEquiv.toLinearEquiv x = e x
state_after: no goals
Theorem: Function.Injective.preimage_surjective
File: Mathlib/Data/Set/Image.lean

tactic: intro s
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
⊢ Surjective (preimage f)
state_after: α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
⊢ ∃ a, f ⁻¹' a = s

tactic: use f '' s
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
⊢ ∃ a, f ⁻¹' a = s
state_after: case h
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
⊢ f ⁻¹' (f '' s) = s

tactic: rw [hf.preimage_image]
state_before: case h
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
⊢ f ⁻¹' (f '' s) = s
state_after: no goals
Theorem: MeasureTheory.aefinStronglyMeasurable_iff_aemeasurable
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simp_rw [AEFinStronglyMeasurable, AEMeasurable, finStronglyMeasurable_iff_measurable]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁵ : Countable ι
G : Type u_5
p : ℝ≥0∞
m m0 : MeasurableSpace α
μ✝ : Measure α
inst✝⁴ : SeminormedAddCommGroup G
inst✝³ : MeasurableSpace G
inst✝² : BorelSpace G
inst✝¹ : SecondCountableTopology G
f : α → G
_m0 : MeasurableSpace α
μ : Measure α
inst✝ : SigmaFinite μ
⊢ AEFinStronglyMeasurable f μ ↔ AEMeasurable f μ
state_after: no goals
Theorem: Stirling.factorial_isEquivalent_stirling
File: Mathlib/Analysis/SpecialFunctions/Stirling.lean

tactic: refine Asymptotics.isEquivalent_of_tendsto_one ?_ ?_
state_before: ⊢ (fun n => ↑n !) ~[atTop] fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n
state_after: case refine_1

⊢ ∀ᶠ (x : ℕ) in atTop, √(2 * ↑x * π) * (↑x / rexp 1) ^ x = 0 → ↑x ! = 0

case refine_2

⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 1)

tactic: filter_upwards [eventually_ne_atTop 0] with n hn h
state_before: case refine_1

⊢ ∀ᶠ (x : ℕ) in atTop, √(2 * ↑x * π) * (↑x / rexp 1) ^ x = 0 → ↑x ! = 0
state_after: case h
n : ℕ
hn : n ≠ 0
h : √(2 * ↑n * π) * (↑n / rexp 1) ^ n = 0
⊢ ↑n ! = 0

tactic: exact absurd h (by positivity)
state_before: case h
n : ℕ
hn : n ≠ 0
h : √(2 * ↑n * π) * (↑n / rexp 1) ^ n = 0
⊢ ↑n ! = 0
state_after: no goals

tactic: positivity
state_before: n : ℕ
hn : n ≠ 0
h : √(2 * ↑n * π) * (↑n / rexp 1) ^ n = 0
⊢ ¬√(2 * ↑n * π) * (↑n / rexp 1) ^ n = 0
state_after: no goals

tactic: have : sqrt π ≠ 0 := by positivity
state_before: case refine_2

⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 1)
state_after: case refine_2
this : √π ≠ 0
⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 1)

tactic: nth_rewrite 2 [← div_self this]
state_before: case refine_2
this : √π ≠ 0
⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 1)
state_after: case refine_2
this : √π ≠ 0
⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 (√π / √π))

tactic: convert tendsto_stirlingSeq_sqrt_pi.div tendsto_const_nhds this using 1
state_before: case refine_2
this : √π ≠ 0
⊢ Tendsto ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) atTop (𝓝 (√π / √π))
state_after: case h.e'_3
this : √π ≠ 0
⊢ ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) = stirlingSeq / fun x => √π

tactic: ext n
state_before: case h.e'_3
this : √π ≠ 0
⊢ ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) = stirlingSeq / fun x => √π
state_after: case h.e'_3.h
this : √π ≠ 0
n : ℕ
⊢ ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) n = (stirlingSeq / fun x => √π) n

tactic: field_simp [stirlingSeq, mul_right_comm]
state_before: case h.e'_3.h
this : √π ≠ 0
n : ℕ
⊢ ((fun n => ↑n !) / fun n => √(2 * ↑n * π) * (↑n / rexp 1) ^ n) n = (stirlingSeq / fun x => √π) n
state_after: no goals

tactic: positivity
state_before: ⊢ √π ≠ 0
state_after: no goals
Theorem: LieAlgebra.IsKilling.lie_eq_smul_of_mem_rootSpace
File: Mathlib/Algebra/Lie/Weights/Killing.lean

tactic: replace hx : x ∈ (ad K L h).maxGenEigenspace (α h) :=
  weightSpace_le_weightSpaceOf L h α hx
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : PerfectField K
α : ↥H → K
x : L
hx : x ∈ rootSpace H α
h : ↥H
⊢ ⁅h, x⁆ = α h • x
state_after: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : PerfectField K
α : ↥H → K
x : L
h : ↥H
hx : x ∈ ((ad K L) ↑h).maxGenEigenspace (α h)
⊢ ⁅h, x⁆ = α h • x

tactic: rw [(isSemisimple_ad_of_mem_isCartanSubalgebra
  h.property).maxGenEigenspace_eq_eigenspace, Module.End.mem_eigenspace_iff] at hx
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : PerfectField K
α : ↥H → K
x : L
h : ↥H
hx : x ∈ ((ad K L) ↑h).maxGenEigenspace (α h)
⊢ ⁅h, x⁆ = α h • x
state_after: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : PerfectField K
α : ↥H → K
x : L
h : ↥H
hx : ((ad K L) ↑h) x = α h • x
⊢ ⁅h, x⁆ = α h • x

tactic: simpa using hx
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : PerfectField K
α : ↥H → K
x : L
h : ↥H
hx : ((ad K L) ↑h) x = α h • x
⊢ ⁅h, x⁆ = α h • x
state_after: no goals
Theorem: inf_iSup₂_eq
File: Mathlib/Order/CompleteBooleanAlgebra.lean

tactic: simp only [inf_iSup_eq]
state_before: α : Type u
β : Type v
ι : Sort w
κ : ι → Sort w'
inst✝ : Frame α
s t : Set α
a✝ b : α
f : (i : ι) → κ i → α
a : α
⊢ a ⊓ ⨆ i, ⨆ j, f i j = ⨆ i, ⨆ j, a ⊓ f i j
state_after: no goals
Theorem: MeasureTheory.Measure.zero_prod
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: rw [Measure.prod]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν✝ ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SFinite ν✝
inst✝ : SFinite μ
ν : Measure β
⊢ Measure.prod 0 ν = 0
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν✝ ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SFinite ν✝
inst✝ : SFinite μ
ν : Measure β
⊢ (bind 0 fun x => map (Prod.mk x) ν) = 0

tactic: exact bind_zero_left _
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν✝ ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SFinite ν✝
inst✝ : SFinite μ
ν : Measure β
⊢ (bind 0 fun x => map (Prod.mk x) ν) = 0
state_after: no goals
Theorem: Con.zpow
File: Mathlib/GroupTheory/Congruence/Basic.lean

tactic: simpa only [zpow_natCast, Int.ofNat_eq_coe] using c.pow n h
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Group M
inst✝¹ : Group N
inst✝ : Group P
c : Con M
n : ℕ
w x : M
h : c w x
⊢ c (w ^ Int.ofNat n) (x ^ Int.ofNat n)
state_after: no goals

tactic: simpa only [zpow_negSucc] using c.inv (c.pow _ h)
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Group M
inst✝¹ : Group N
inst✝ : Group P
c : Con M
n : ℕ
w x : M
h : c w x
⊢ c (w ^ Int.negSucc n) (x ^ Int.negSucc n)
state_after: no goals