ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: _private.Mathlib.NumberTheory.FLT.Three.0.FermatLastTheoremForThreeGen.Solution.lambda_not_dvd_Y
File: Mathlib/NumberTheory/FLT/Three.lean

Proof steps:
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
h : λ ∣ FermatLastTheoremForThreeGen.Solution.Y S
⊢ 3 ≠ 0
state_after: no goals
tactic: decide
Theorem: uniformContinuous_of_continuousAt_zero
File: Mathlib/Topology/Algebra/UniformGroup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝⁷ : UniformSpace α
inst✝⁶ : Group α
inst✝⁵ : UniformGroup α
hom : Type u_3
inst✝⁴ : UniformSpace β
inst✝³ : Group β
inst✝² : UniformGroup β
inst✝¹ : FunLike hom α β
inst✝ : MonoidHomClass hom α β
f : hom
hf : ContinuousAt (⇑f) 1
⊢ Tendsto (⇑f) (𝓝 1) (𝓝 1)
state_after: no goals
tactic: simpa using hf.tendsto
Theorem: CategoryTheory.Adjunction.rightAdjointUniq_hom_counit
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
⊢ whiskerRight (adj1.rightAdjointUniq adj2).hom F ≫ adj2.counit = adj1.counit
state_after: case w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
x✝ : D
⊢ (whiskerRight (adj1.rightAdjointUniq adj2).hom F ≫ adj2.counit).app x✝ = adj1.counit.app x✝
tactic: ext
state_before: case w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
x✝ : D
⊢ (whiskerRight (adj1.rightAdjointUniq adj2).hom F ≫ adj2.counit).app x✝ = adj1.counit.app x✝
state_after: no goals
tactic: simp
Theorem: PNat.XgcdType.step_isSpecial
File: Mathlib/Data/PNat/Xgcd.lean

Proof steps:
state_before: u : XgcdType
hs : u.IsSpecial
⊢ u.step.IsSpecial
state_after: u : XgcdType
hs : u.wp + u.zp + u.wp * u.zp = u.x * u.y
⊢ u.y * u.q + u.zp + u.wp + (u.y * u.q + u.zp) * u.wp = u.y * ((u.wp + 1) * u.q + u.x)
tactic: dsimp [IsSpecial, step] at hs ⊢
state_before: u : XgcdType
hs : u.wp + u.zp + u.wp * u.zp = u.x * u.y
⊢ u.y * u.q + u.zp + u.wp + (u.y * u.q + u.zp) * u.wp = u.y * ((u.wp + 1) * u.q + u.x)
state_after: u : XgcdType
hs : u.wp + u.zp + u.wp * u.zp = u.x * u.y
⊢ u.y * u.q + u.zp + u.wp + (u.y * u.q + u.zp) * u.wp = u.y * ((u.wp + 1) * u.q) + (u.wp + u.zp + u.wp * u.zp)
tactic: rw [mul_add, mul_comm u.y u.x, ← hs]
state_before: u : XgcdType
hs : u.wp + u.zp + u.wp * u.zp = u.x * u.y
⊢ u.y * u.q + u.zp + u.wp + (u.y * u.q + u.zp) * u.wp = u.y * ((u.wp + 1) * u.q) + (u.wp + u.zp + u.wp * u.zp)
state_after: no goals
tactic: ring
Theorem: LinearMap.IsSymmetric.restrictScalars
File: Mathlib/Analysis/InnerProductSpace/Symmetric.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
x y : E
⊢ ⟪(↑ℝ T) x, y⟫_ℝ = ⟪x, (↑ℝ T) y⟫_ℝ
state_after: no goals
tactic: simp [hT x y, real_inner_eq_re_inner, LinearMap.coe_restrictScalars ℝ]
Theorem: AlgebraicIndependent.image_of_comp
File: Mathlib/RingTheory/AlgebraicIndependent.lean

Proof steps:
state_before: ι✝ : Type u_1
ι'✝ : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
ι' : Type u_10
s : Set ι
f : ι → ι'
g : ι' → A
hs : AlgebraicIndependent R fun x => g (f ↑x)
⊢ AlgebraicIndependent R fun x => g ↑x
state_after: ι✝ : Type u_1
ι'✝ : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
ι' : Type u_10
s : Set ι
f : ι → ι'
g : ι' → A
hs : AlgebraicIndependent R fun x => g (f ↑x)
a✝ : Nontrivial R
⊢ AlgebraicIndependent R fun x => g ↑x
tactic: nontriviality R
state_before: ι✝ : Type u_1
ι'✝ : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
ι' : Type u_10
s : Set ι
f : ι → ι'
g : ι' → A
hs : AlgebraicIndependent R fun x => g (f ↑x)
a✝ : Nontrivial R
⊢ AlgebraicIndependent R fun x => g ↑x
state_after: ι✝ : Type u_1
ι'✝ : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
ι' : Type u_10
s : Set ι
f : ι → ι'
g : ι' → A
hs : AlgebraicIndependent R fun x => g (f ↑x)
a✝ : Nontrivial R
this : InjOn f s
⊢ AlgebraicIndependent R fun x => g ↑x
tactic: have : InjOn f s := injOn_iff_injective.2 hs.injective.of_comp
state_before: ι✝ : Type u_1
ι'✝ : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι✝ → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
ι : Type u_9
ι' : Type u_10
s : Set ι
f : ι → ι'
g : ι' → A
hs : AlgebraicIndependent R fun x => g (f ↑x)
a✝ : Nontrivial R
this : InjOn f s
⊢ AlgebraicIndependent R fun x => g ↑x
state_after: no goals
tactic: exact (algebraicIndependent_equiv' (Equiv.Set.imageOfInjOn f s this) rfl).1 hs
Theorem: Asymptotics.SuperpolynomialDecay.mul
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : CommSemiring β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
hg : SuperpolynomialDecay l k g
z : ℕ
⊢ Tendsto (fun a => k a ^ z * (f * g) a) l (𝓝 0)
state_after: no goals
tactic: simpa only [mul_assoc, one_mul, mul_zero, pow_zero] using (hf z).mul (hg 0)
Theorem: EisensteinSeries.vecMul_SL2_mem_gammaSet
File: Mathlib/NumberTheory/ModularForms/EisensteinSeries/Defs.lean

Proof steps:
state_before: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
⊢ v ᵥ* ↑γ ∈ gammaSet N (a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ))
state_after: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
tactic: refine ⟨?_, hv.2.vecMulSL γ⟩
state_before: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
state_after: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this :
  ∀ (i : Fin 2),
    (Int.castRingHom (ZMod N)) ((v ᵥ* ↑γ) i) =
      (⇑(Int.castRingHom (ZMod N)) ∘ v ᵥ* (↑γ).map ⇑(Int.castRingHom (ZMod N))) i
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
tactic: have := RingHom.map_vecMul (m := Fin 2) (n := Fin 2) (Int.castRingHom (ZMod N)) γ v
state_before: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this :
  ∀ (i : Fin 2),
    (Int.castRingHom (ZMod N)) ((v ᵥ* ↑γ) i) =
      (⇑(Int.castRingHom (ZMod N)) ∘ v ᵥ* (↑γ).map ⇑(Int.castRingHom (ZMod N))) i
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
state_after: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this : ∀ (i : Fin 2), ↑((v ᵥ* ↑γ) i) = ((fun x => ↑x) ∘ v ᵥ* (↑γ).map fun x => ↑x) i
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
tactic: simp only [eq_intCast, Int.coe_castRingHom] at this
state_before: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this : ∀ (i : Fin 2), ↑((v ᵥ* ↑γ) i) = ((fun x => ↑x) ∘ v ᵥ* (↑γ).map fun x => ↑x) i
⊢ Int.cast ∘ (v ᵥ* ↑γ) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
state_after: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this : ∀ (i : Fin 2), ↑((v ᵥ* ↑γ) i) = ((fun x => ↑x) ∘ v ᵥ* (↑γ).map fun x => ↑x) i
⊢ (fun x => (a ᵥ* (↑γ).map fun x => ↑x) x) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
tactic: simp_rw [Function.comp, this, hv.1]
state_before: N : ℕ
a : Fin 2 → ZMod N
v : Fin 2 → ℤ
hv : v ∈ gammaSet N a
γ : SL(2, ℤ)
this : ∀ (i : Fin 2), ↑((v ᵥ* ↑γ) i) = ((fun x => ↑x) ∘ v ᵥ* (↑γ).map fun x => ↑x) i
⊢ (fun x => (a ᵥ* (↑γ).map fun x => ↑x) x) = a ᵥ* ↑((SpecialLinearGroup.map (Int.castRingHom (ZMod N))) γ)
state_after: no goals
tactic: simp
Theorem: Quiver.Push.lift_unique
File: Mathlib/Combinatorics/Quiver/Push.lean

Proof steps:
state_before: V : Type u_1
inst✝¹ : Quiver V
W : Type u_2
σ : V → W
W' : Type u_3
inst✝ : Quiver W'
φ : V ⥤q W'
τ : W → W'
h : ∀ (x : V), φ.obj x = τ (σ x)
Φ : Push σ ⥤q W'
Φ₀ : Φ.obj = τ
Φcomp : of σ ⋙q Φ = φ
⊢ Φ = lift σ φ τ h
state_after: V : Type u_1
inst✝¹ : Quiver V
W : Type u_2
σ : V → W
W' : Type u_3
inst✝ : Quiver W'
φ : V ⥤q W'
τ : W → W'
h : ∀ (x : V), φ.obj x = τ (σ x)
Φ : Push σ ⥤q W'
Φ₀ : Φ.obj = τ
Φcomp : of σ ⋙q Φ = φ
⊢ Φ =
    { obj := τ, map := @PushQuiver.rec V inst✝¹ W σ (fun X Y x => τ X ⟶ τ Y) fun X Y f => id (⋯.mpr (⋯.mpr (φ.map f))) }
tactic: dsimp only [of, lift]
state_before: V : Type u_1
inst✝¹ : Quiver V
W : Type u_2
σ : V → W
W' : Type u_3
inst✝ : Quiver W'
φ : V ⥤q W'
τ : W → W'
h : ∀ (x : V), φ.obj x = τ (σ x)
Φ : Push σ ⥤q W'
Φ₀ : Φ.obj = τ
Φcomp : of σ ⋙q Φ = φ
⊢ Φ =
    { obj := τ, map := @PushQuiver.rec V inst✝¹ W σ (fun X Y x => τ X ⟶ τ Y) fun X Y f => id (⋯.mpr (⋯.mpr (φ.map f))) }
state_after: case h_obj
V : Type u_1
inst✝¹ : Quiver V
W : Type u_2
σ : V → W
W' : Type u_3
inst✝ : Quiver W'
φ : V ⥤q W'
τ : W → W'
h : ∀ (x : V), φ.obj x = τ (σ x)
Φ : Push σ ⥤q W'
Φ₀ : Φ.obj = τ
Φcomp : of σ ⋙q Φ = φ
⊢ ∀ (X : Push σ),
    Φ.obj X =
      { obj := τ,
            map := @PushQuiver.rec V inst✝¹ W σ (fun X Y x => τ X ⟶ τ Y) fun X Y f => id (⋯.mpr (⋯.mpr (φ.map f))) }.obj
        X

case h_map
V : Type u_1
inst✝¹ : Quiver V
W : Type u_2
σ : V → W
W' : Type u_3
inst✝ : Quiver W'
φ : V ⥤q W'
τ : W → W'
h : ∀ (x : V), φ.obj x = τ (σ x)
Φ : Push σ ⥤q W'
Φ₀ : Φ.obj = τ
Φcomp : of σ ⋙q Φ = φ
⊢ ∀ (X Y : Push σ) (f : X ⟶ Y),
    Φ.map f =
      Eq.recOn ⋯
        (Eq.recOn ⋯
          ({ obj := τ,
                map :=
                  @PushQuiver.rec V inst✝¹ W σ (fun X Y x => τ X ⟶ τ Y) fun X Y f => id (⋯.mpr (⋯.mpr (φ.map f))) }.map
            f))
tactic: fapply Prefunctor.ext
Theorem: MeasureTheory.Integrable.prod_smul
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

Proof steps:
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 ν
𝕜 : Type u_7
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
f : α → 𝕜
g : β → E
hf : Integrable f μ
hg : Integrable g ν
⊢ Integrable (fun z => f z.1 • g z.2) (μ.prod ν)
state_after: case refine_1
α : 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 ν
𝕜 : Type u_7
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
f : α → 𝕜
g : β → E
hf : Integrable f μ
hg : Integrable g ν
⊢ AEStronglyMeasurable (fun z => f z.1 • g z.2) (μ.prod ν)

case refine_2
α : 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 ν
𝕜 : Type u_7
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
f : α → 𝕜
g : β → E
hf : Integrable f μ
hg : Integrable g ν
⊢ ∀ᵐ (x : α) ∂μ, Integrable (fun y => f (x, y).1 • g (x, y).2) ν

case refine_3
α : 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 ν
𝕜 : Type u_7
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
f : α → 𝕜
g : β → E
hf : Integrable f μ
hg : Integrable g ν
⊢ Integrable (fun x => ∫ (y : β), ‖f (x, y).1 • g (x, y).2‖ ∂ν) μ
tactic: refine (integrable_prod_iff ?_).2 ⟨?_, ?_⟩
Theorem: MvPolynomial.constantCoeff_comp_map
File: Mathlib/Algebra/MvPolynomial/Basic.lean

Proof steps:
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
f✝ f : R →+* S₁
⊢ constantCoeff.comp (map f) = f.comp constantCoeff
state_after: no goals
tactic: ext <;> simp
Theorem: Matrix.toLin_transpose
File: Mathlib/LinearAlgebra/Matrix/Dual.lean

Proof steps:
state_before: K : Type u_1
V₁ : Type u_2
V₂ : Type u_3
ι₁ : Type u_4
ι₂ : Type u_5
inst✝⁸ : Field K
inst✝⁷ : AddCommGroup V₁
inst✝⁶ : Module K V₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module K V₂
inst✝³ : Fintype ι₁
inst✝² : Fintype ι₂
inst✝¹ : DecidableEq ι₁
inst✝ : DecidableEq ι₂
B₁ : Basis ι₁ K V₁
B₂ : Basis ι₂ K V₂
M : Matrix ι₁ ι₂ K
⊢ (toLin B₁.dualBasis B₂.dualBasis) Mᵀ = Module.Dual.transpose ((toLin B₂ B₁) M)
state_after: case a
K : Type u_1
V₁ : Type u_2
V₂ : Type u_3
ι₁ : Type u_4
ι₂ : Type u_5
inst✝⁸ : Field K
inst✝⁷ : AddCommGroup V₁
inst✝⁶ : Module K V₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module K V₂
inst✝³ : Fintype ι₁
inst✝² : Fintype ι₂
inst✝¹ : DecidableEq ι₁
inst✝ : DecidableEq ι₂
B₁ : Basis ι₁ K V₁
B₂ : Basis ι₂ K V₂
M : Matrix ι₁ ι₂ K
⊢ (LinearMap.toMatrix B₁.dualBasis B₂.dualBasis) ((toLin B₁.dualBasis B₂.dualBasis) Mᵀ) =
    (LinearMap.toMatrix B₁.dualBasis B₂.dualBasis) (Module.Dual.transpose ((toLin B₂ B₁) M))
tactic: apply (LinearMap.toMatrix B₁.dualBasis B₂.dualBasis).injective
state_before: case a
K : Type u_1
V₁ : Type u_2
V₂ : Type u_3
ι₁ : Type u_4
ι₂ : Type u_5
inst✝⁸ : Field K
inst✝⁷ : AddCommGroup V₁
inst✝⁶ : Module K V₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module K V₂
inst✝³ : Fintype ι₁
inst✝² : Fintype ι₂
inst✝¹ : DecidableEq ι₁
inst✝ : DecidableEq ι₂
B₁ : Basis ι₁ K V₁
B₂ : Basis ι₂ K V₂
M : Matrix ι₁ ι₂ K
⊢ (LinearMap.toMatrix B₁.dualBasis B₂.dualBasis) ((toLin B₁.dualBasis B₂.dualBasis) Mᵀ) =
    (LinearMap.toMatrix B₁.dualBasis B₂.dualBasis) (Module.Dual.transpose ((toLin B₂ B₁) M))
state_after: no goals
tactic: rw [LinearMap.toMatrix_toLin, LinearMap.toMatrix_transpose, LinearMap.toMatrix_toLin]
Theorem: Quaternion.re_exp
File: Mathlib/Analysis/NormedSpace/QuaternionExponential.lean

Proof steps:
state_before: q : ℍ
⊢ (exp ℝ q).re = exp ℝ q.re * Real.cos ‖q - ↑q.re‖
state_after: no goals
tactic: simp [exp_eq]
Theorem: Int.testBit_bit_succ
File: Mathlib/Data/Int/Bitwise.lean

Proof steps:
state_before: m : ℕ
b : Bool
n : ℕ
⊢ (bit b ↑n).testBit m.succ = (↑n).testBit m
state_after: m : ℕ
b : Bool
n : ℕ
⊢ (↑(Nat.bit b n)).testBit m.succ = (↑n).testBit m
tactic: rw [bit_coe_nat]
state_before: m : ℕ
b : Bool
n : ℕ
⊢ (↑(Nat.bit b n)).testBit m.succ = (↑n).testBit m
state_after: no goals
tactic: apply Nat.testBit_bit_succ
state_before: m : ℕ
b : Bool
n : ℕ
⊢ (bit b -[n+1]).testBit m.succ = -[n+1].testBit m
state_after: m : ℕ
b : Bool
n : ℕ
⊢ (match bit b -[n+1], m.succ with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    !n.testBit m
tactic: dsimp only [testBit]
state_before: m : ℕ
b : Bool
n : ℕ
⊢ (match bit b -[n+1], m.succ with
    | ofNat m, n => m.testBit n
    | -[m+1], n => !m.testBit n) =
    !n.testBit m
state_after: m : ℕ
b : Bool
n : ℕ
⊢ (!(Nat.bit (!b) n).testBit m.succ) = !n.testBit m
tactic: simp only [bit_negSucc]
state_before: m : ℕ
b : Bool
n : ℕ
⊢ (!(Nat.bit (!b) n).testBit m.succ) = !n.testBit m
state_after: no goals
tactic: cases b <;> simp only [Bool.not_false, Bool.not_true, Nat.testBit_bit_succ]
Theorem: Real.arcsin_neg
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

Proof steps:
state_before: x✝ y x : ℝ
⊢ arcsin (-x) = -arcsin x
state_after: case inl
x✝ y x : ℝ
hx₁ : x ≤ -1
⊢ arcsin (-x) = -arcsin x

case inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ arcsin (-x) = -arcsin x
tactic: rcases le_total x (-1) with hx₁ | hx₁
state_before: case inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ arcsin (-x) = -arcsin x
state_after: case inr.inl
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : 1 ≤ x
⊢ arcsin (-x) = -arcsin x

case inr.inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ arcsin (-x) = -arcsin x
tactic: rcases le_total 1 x with hx₂ | hx₂
state_before: case inr.inr
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ arcsin (-x) = -arcsin x
state_after: case inr.inr.refine_1
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (-arcsin x) = -x

case inr.inr.refine_2
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ -arcsin x ∈ Icc (-(π / 2)) (π / 2)
tactic: refine arcsin_eq_of_sin_eq ?_ ?_
Theorem: MeasureTheory.L1.SimpleFunc.norm_integral_le_norm
File: Mathlib/MeasureTheory/Integral/Bochner.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace ℝ E
inst✝² : SMulCommClass ℝ 𝕜 E
F' : Type u_5
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
f : ↥(simpleFunc E 1 μ)
⊢ ‖integral f‖ ≤ ‖f‖
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace ℝ E
inst✝² : SMulCommClass ℝ 𝕜 E
F' : Type u_5
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
f : ↥(simpleFunc E 1 μ)
⊢ ‖MeasureTheory.SimpleFunc.integral μ (toSimpleFunc f)‖ ≤
    MeasureTheory.SimpleFunc.integral μ (SimpleFunc.map norm (toSimpleFunc f))
tactic: rw [integral, norm_eq_integral]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedSpace ℝ E
inst✝² : SMulCommClass ℝ 𝕜 E
F' : Type u_5
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
f : ↥(simpleFunc E 1 μ)
⊢ ‖MeasureTheory.SimpleFunc.integral μ (toSimpleFunc f)‖ ≤
    MeasureTheory.SimpleFunc.integral μ (SimpleFunc.map norm (toSimpleFunc f))
state_after: no goals
tactic: exact (toSimpleFunc f).norm_integral_le_integral_norm (SimpleFunc.integrable f)
Theorem: ack_strictMono_right
File: Mathlib/Computability/Ackermann.lean

Proof steps:
state_before: n₁ n₂ : ℕ
h : n₁ < n₂
⊢ ack 0 n₁ < ack 0 n₂
state_after: no goals
tactic: simpa using h
state_before: m n : ℕ
_h : 0 < n + 1
⊢ ack (m + 1) 0 < ack (m + 1) (n + 1)
state_after: m n : ℕ
_h : 0 < n + 1
⊢ ack m 1 < ack m (ack (m + 1) n)
tactic: rw [ack_succ_zero, ack_succ_succ]
state_before: m n : ℕ
_h : 0 < n + 1
⊢ ack m 1 < ack m (ack (m + 1) n)
state_after: no goals
tactic: exact ack_strictMono_right _ (one_lt_ack_succ_left m n)
state_before: m n₁ n₂ : ℕ
h : n₁ + 1 < n₂ + 1
⊢ ack (m + 1) (n₁ + 1) < ack (m + 1) (n₂ + 1)
state_after: m n₁ n₂ : ℕ
h : n₁ + 1 < n₂ + 1
⊢ ack m (ack (m + 1) n₁) < ack m (ack (m + 1) n₂)
tactic: rw [ack_succ_succ, ack_succ_succ]
state_before: m n₁ n₂ : ℕ
h : n₁ + 1 < n₂ + 1
⊢ ack m (ack (m + 1) n₁) < ack m (ack (m + 1) n₂)
state_after: m n₁ n₂ : ℕ
h : n₁ + 1 < n₂ + 1
⊢ n₁ < n₂
tactic: apply ack_strictMono_right _ (ack_strictMono_right _ _)
state_before: m n₁ n₂ : ℕ
h : n₁ + 1 < n₂ + 1
⊢ n₁ < n₂
state_after: no goals
tactic: rwa [add_lt_add_iff_right] at h
Theorem: FermatLastTheoremForThreeGen.a_cube_add_b_cube_eq_mul
File: Mathlib/NumberTheory/FLT/Three.lean

Proof steps:
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ S'.a ^ 3 + S'.b ^ 3 = (S'.a + S'.b) * (S'.a + ↑η * S'.b) * (S'.a + ↑η ^ 2 * S'.b)
state_after: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ (S'.a + S'.b) * (S'.a + ↑η * S'.b) * (S'.a + ↑η ^ 2 * S'.b) = S'.a ^ 3 + S'.b ^ 3
tactic: symm
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ (S'.a + S'.b) * (S'.a + ↑η * S'.b) * (S'.a + ↑η ^ 2 * S'.b) = S'.a ^ 3 + S'.b ^ 3
state_after: no goals
tactic: calc _ = S'.a^3+S'.a^2*S'.b*(η^2+η+1)+S'.a*S'.b^2*(η^2+η+η^3)+η^3*S'.b^3 := by ring
  _ = S'.a^3+S'.a^2*S'.b*(η^2+η+1)+S'.a*S'.b^2*(η^2+η+1)+S'.b^3 := by
    simp [hζ.toInteger_cube_eq_one]
  _ = S'.a ^ 3 + S'.b ^ 3 := by rw [eta_sq]; ring
Theorem: TendstoLocallyUniformlyOn.union
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 α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂)
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (⋃₀ {s₁, s₂})
tactic: rw [← sUnion_pair]
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 α
s₁ s₂ : Set α
hs₁ : IsOpen s₁
hs₂ : IsOpen s₂
h₁ : TendstoLocallyUniformlyOn F f p s₁
h₂ : TendstoLocallyUniformlyOn F f p s₂
⊢ TendstoLocallyUniformlyOn F f p (⋃₀ {s₁, s₂})
state_after: no goals
tactic: refine tendstoLocallyUniformlyOn_sUnion _ ?_ ?_ <;> simp [*]
Theorem: ENNReal.Tendsto.const_div
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : Filter α
m : α → ℝ≥0∞
a b : ℝ≥0∞
hm : Tendsto m f (𝓝 b)
hb : b ≠ ⊤ ∨ a ≠ ⊤
⊢ Tendsto (fun b => a / m b) f (𝓝 (a / b))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : Filter α
m : α → ℝ≥0∞
a b : ℝ≥0∞
hm : Tendsto m f (𝓝 b)
hb : b ≠ ⊤ ∨ a ≠ ⊤
⊢ b⁻¹ ≠ 0 ∨ a ≠ ⊤
tactic: apply Tendsto.const_mul (ENNReal.tendsto_inv_iff.2 hm)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : Filter α
m : α → ℝ≥0∞
a b : ℝ≥0∞
hm : Tendsto m f (𝓝 b)
hb : b ≠ ⊤ ∨ a ≠ ⊤
⊢ b⁻¹ ≠ 0 ∨ a ≠ ⊤
state_after: no goals
tactic: simp [hb]