ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: WeierstrassCurve.Jacobian.addY_neg
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hP : W'.Equation P
⊢ W'.addY P (W'.neg P) = -W'.dblZ P ^ 3
state_after: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hP : W'.Equation P
⊢ -![W'.dblZ P ^ 2, W'.dblZ P ^ 3, addZ P (W'.neg P)] y = -W'.dblZ P ^ 3
tactic: rw [addY, addX_neg hP, negAddY_neg hP, negY_of_Z_eq_zero addZ_neg]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hP : W'.Equation P
⊢ -![W'.dblZ P ^ 2, W'.dblZ P ^ 3, addZ P (W'.neg P)] y = -W'.dblZ P ^ 3
state_after: no goals
tactic: rfl
Theorem: PreErgodic.measure_self_or_compl_eq_zero
File: Mathlib/Dynamics/Ergodic/Ergodic.lean

Proof steps:
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s : Set α
μ : Measure α
hf : PreErgodic f μ
hs : MeasurableSet s
hs' : f ⁻¹' s = s
⊢ μ s = 0 ∨ μ sᶜ = 0
state_after: no goals
tactic: simpa using hf.ae_empty_or_univ hs hs'
Theorem: IsLocalization.of_le
File: Mathlib/RingTheory/Localization/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
N : Submonoid R
h₁ : M ≤ N
h₂ : ∀ r ∈ N, IsUnit ((algebraMap R S) r)
x y : R
⊢ (algebraMap R S) x = (algebraMap R S) y → ∃ c, ↑c * x = ↑c * y
state_after: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
N : Submonoid R
h₁ : M ≤ N
h₂ : ∀ r ∈ N, IsUnit ((algebraMap R S) r)
x y : R
⊢ (∃ c, ↑c * x = ↑c * y) → ∃ c, ↑c * x = ↑c * y
tactic: rw [IsLocalization.eq_iff_exists M]
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
N : Submonoid R
h₁ : M ≤ N
h₂ : ∀ r ∈ N, IsUnit ((algebraMap R S) r)
x y : R
⊢ (∃ c, ↑c * x = ↑c * y) → ∃ c, ↑c * x = ↑c * y
state_after: case intro
R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
N : Submonoid R
h₁ : M ≤ N
h₂ : ∀ r ∈ N, IsUnit ((algebraMap R S) r)
x y : R
c : ↥M
hc : ↑c * x = ↑c * y
⊢ ∃ c, ↑c * x = ↑c * y
tactic: rintro ⟨c, hc⟩
state_before: case intro
R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
N : Submonoid R
h₁ : M ≤ N
h₂ : ∀ r ∈ N, IsUnit ((algebraMap R S) r)
x y : R
c : ↥M
hc : ↑c * x = ↑c * y
⊢ ∃ c, ↑c * x = ↑c * y
state_after: no goals
tactic: exact ⟨⟨c, h₁ c.2⟩, hc⟩
Theorem: norm_one'
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ ‖1‖ = 0
state_after: no goals
tactic: rw [← dist_one_right, dist_self]
Theorem: Finset.Colex.toColex_lt_toColex_iff_exists_forall_lt
File: Mathlib/Combinatorics/Colex.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
⊢ { ofColex := s } < { ofColex := t } ↔ ∃ a ∈ t, a ∉ s ∧ ∀ b ∈ s, b ∉ t → b < a
state_after: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
⊢ (∃ x, ¬(x ∈ t → x ∉ s → ∃ b ∈ s, b ∉ t ∧ x ≤ b)) ↔ ∃ a ∈ t, a ∉ s ∧ ∀ b ∈ s, b ∉ t → b < a
tactic: rw [← not_le, toColex_le_toColex, not_forall]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
⊢ (∃ x, ¬(x ∈ t → x ∉ s → ∃ b ∈ s, b ∉ t ∧ x ≤ b)) ↔ ∃ a ∈ t, a ∉ s ∧ ∀ b ∈ s, b ∉ t → b < a
state_after: no goals
tactic: simp only [not_forall, not_exists, not_and, not_le, exists_prop, exists_and_left]
Theorem: Polynomial.toLaurent_C_mul_eq
File: Mathlib/Algebra/Polynomial/Laurent.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Semiring R
r : R
f : R[X]
⊢ toLaurent (Polynomial.C r * f) = C r * toLaurent f
state_after: no goals
tactic: simp only [_root_.map_mul, Polynomial.toLaurent_C]
Theorem: Polynomial.iterate_derivative_X_add_pow
File: Mathlib/Algebra/Polynomial/Derivative.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : CommSemiring R
n k : ℕ
c : R
⊢ (⇑derivative)^[k] ((X + C c) ^ n) = n.descFactorial k • (X + C c) ^ (n - k)
state_after: no goals
tactic: induction k with
  | zero => simp
  | succ k IH =>
      rw [Nat.sub_succ', Function.iterate_succ_apply', IH, derivative_smul,
        derivative_X_add_C_pow, map_natCast, Nat.descFactorial_succ, nsmul_eq_mul, nsmul_eq_mul,
        Nat.cast_mul]
      ring
Theorem: Batteries.RBNode.Ordered.del
File: .lake/packages/batteries/Batteries/Data/RBMap/WF.lean

Proof steps:
state_before: α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
⊢ Ordered cmp (del cut (node c✝ a y b))
state_after: α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
⊢ Ordered cmp
    (match cut y with
    | Ordering.lt =>
      match a.isBlack with
      | black => (del cut a).balLeft y b
      | red => node red (del cut a) y b
    | Ordering.gt =>
      match b.isBlack with
      | black => a.balRight y (del cut b)
      | red => node red a y (del cut b)
    | Ordering.eq => a.append b)
tactic: unfold del
state_before: α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
⊢ Ordered cmp
    (match cut y with
    | Ordering.lt =>
      match a.isBlack with
      | black => (del cut a).balLeft y b
      | red => node red (del cut a) y b
    | Ordering.gt =>
      match b.isBlack with
      | black => a.balRight y (del cut b)
      | red => node red a y (del cut b)
    | Ordering.eq => a.append b)
state_after: case h_1
α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
x✝ : Ordering
heq✝ : cut y = Ordering.lt
⊢ Ordered cmp
    (match a.isBlack with
    | black => (del cut a).balLeft y b
    | red => node red (del cut a) y b)

case h_2
α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
x✝ : Ordering
heq✝ : cut y = Ordering.gt
⊢ Ordered cmp
    (match b.isBlack with
    | black => a.balRight y (del cut b)
    | red => node red a y (del cut b))

case h_3
α : Type u_1
cmp : α → α → Ordering
cut : α → Ordering
c✝ : RBColor
a : RBNode α
y : α
b : RBNode α
ay : All (fun x => cmpLT cmp x y) a
yb : All (fun x => cmpLT cmp y x) b
ha : Ordered cmp a
hb : Ordered cmp b
x✝ : Ordering
heq✝ : cut y = Ordering.eq
⊢ Ordered cmp (a.append b)
tactic: split
Theorem: QuasispectrumRestricts.compactSpace
File: Mathlib/Analysis/Normed/Algebra/Spectrum.lean

Proof steps:
state_before: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : CompactSpace ↑(σₙ S a)
⊢ CompactSpace ↑(σₙ R a)
state_after: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : IsCompact (σₙ S a)
⊢ IsCompact (σₙ R a)
tactic: rw [← isCompact_iff_compactSpace] at h_cpct ⊢
state_before: 𝕜 : Type u_1
A✝ : Type u_2
R : Type u_3
S : Type u_4
A : Type u_5
inst✝¹⁰ : Semifield R
inst✝⁹ : Field S
inst✝⁸ : NonUnitalRing A
inst✝⁷ : Algebra R S
inst✝⁶ : Module R A
inst✝⁵ : Module S A
inst✝⁴ : IsScalarTower S A A
inst✝³ : SMulCommClass S A A
inst✝² : IsScalarTower R S A
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSpace S
a : A
f : C(S, R)
h : QuasispectrumRestricts a ⇑f
h_cpct : IsCompact (σₙ S a)
⊢ IsCompact (σₙ R a)
state_after: no goals
tactic: exact h.image ▸ h_cpct.image (map_continuous f)
Theorem: CategoryTheory.Limits.PreservesKernel.iso_hom
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean

Proof steps:
state_before: C : Type u₁
inst✝⁷ : Category.{v₁, u₁} C
inst✝⁶ : HasZeroMorphisms C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms D
G : C ⥤ D
inst✝³ : G.PreservesZeroMorphisms
X Y Z : C
f : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = 0
inst✝² : HasKernel f
inst✝¹ : HasKernel (G.map f)
inst✝ : PreservesLimit (parallelPair f 0) G
⊢ (iso G f).hom = kernelComparison f G
state_after: C : Type u₁
inst✝⁷ : Category.{v₁, u₁} C
inst✝⁶ : HasZeroMorphisms C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms D
G : C ⥤ D
inst✝³ : G.PreservesZeroMorphisms
X Y Z : C
f : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = 0
inst✝² : HasKernel f
inst✝¹ : HasKernel (G.map f)
inst✝ : PreservesLimit (parallelPair f 0) G
⊢ (iso G f).hom ≫ kernel.ι (G.map f) = kernelComparison f G ≫ kernel.ι (G.map f)
tactic: rw [← cancel_mono (kernel.ι _)]
state_before: C : Type u₁
inst✝⁷ : Category.{v₁, u₁} C
inst✝⁶ : HasZeroMorphisms C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms D
G : C ⥤ D
inst✝³ : G.PreservesZeroMorphisms
X Y Z : C
f : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = 0
inst✝² : HasKernel f
inst✝¹ : HasKernel (G.map f)
inst✝ : PreservesLimit (parallelPair f 0) G
⊢ (iso G f).hom ≫ kernel.ι (G.map f) = kernelComparison f G ≫ kernel.ι (G.map f)
state_after: no goals
tactic: simp [PreservesKernel.iso]
Theorem: Finset.card_image_le
File: Mathlib/Data/Finset/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
inst✝ : DecidableEq β
⊢ (image f s).card ≤ s.card
state_after: no goals
tactic: simpa only [card_map] using (s.1.map f).toFinset_card_le
Theorem: Con.lift_funext
File: Mathlib/GroupTheory/Congruence/Basic.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f g : c.Quotient →* P
h : ∀ (a : M), f ↑a = g ↑a
⊢ f = g
state_after: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f g : c.Quotient →* P
h : ∀ (a : M), f ↑a = g ↑a
⊢ c.lift (f.comp c.mk') ⋯ = c.lift (g.comp c.mk') ⋯
tactic: rw [← lift_apply_mk' f, ← lift_apply_mk' g]
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f g : c.Quotient →* P
h : ∀ (a : M), f ↑a = g ↑a
⊢ c.lift (f.comp c.mk') ⋯ = c.lift (g.comp c.mk') ⋯
state_after: case e_f
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f g : c.Quotient →* P
h : ∀ (a : M), f ↑a = g ↑a
⊢ f.comp c.mk' = g.comp c.mk'
tactic: congr 1
state_before: case e_f
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f g : c.Quotient →* P
h : ∀ (a : M), f ↑a = g ↑a
⊢ f.comp c.mk' = g.comp c.mk'
state_after: no goals
tactic: exact DFunLike.ext_iff.2 h
Theorem: WeierstrassCurve.Affine.CoordinateRing.smul_basis_mul_C
File: Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : Affine R
f : R →+* S
y p q : R[X]
⊢ (p • 1 + q • (mk W) Y) * (mk W) (C y) = (p * y) • 1 + (q * y) • (mk W) Y
state_after: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : Affine R
f : R →+* S
y p q : R[X]
⊢ ((mk W) (C p) * 1 + (mk W) (C q) * (mk W) Y) * (mk W) (C y) =
    (mk W) (C p) * (mk W) (C y) * 1 + (mk W) (C q) * (mk W) (C y) * (mk W) Y
tactic: simp only [smul, _root_.map_mul]
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : Affine R
f : R →+* S
y p q : R[X]
⊢ ((mk W) (C p) * 1 + (mk W) (C q) * (mk W) Y) * (mk W) (C y) =
    (mk W) (C p) * (mk W) (C y) * 1 + (mk W) (C q) * (mk W) (C y) * (mk W) Y
state_after: no goals
tactic: ring1
Theorem: tendsto_integral_peak_smul_of_integrable_of_tendsto
File: Mathlib/MeasureTheory/Integral/PeakFunction.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁴ : TopologicalSpace α
inst✝³ : BorelSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t✝ : Set α
φ : ι → α → ℝ
a : E
inst✝ : CompleteSpace E
t : Set α
ht : MeasurableSet t
h'ts : t ∈ 𝓝 x₀
h't : μ t ≠ ⊤
hnφ : ∀ᶠ (i : ι) in l, ∀ (x : α), 0 ≤ φ i x
hlφ : ∀ (u : Set α), IsOpen u → x₀ ∈ u → TendstoUniformlyOn φ 0 l uᶜ
hiφ : Tendsto (fun i => ∫ (x : α) in t, φ i x ∂μ) l (𝓝 1)
h'iφ : ∀ᶠ (i : ι) in l, AEStronglyMeasurable (φ i) μ
hmg : Integrable g μ
hcg : Tendsto g (𝓝 x₀) (𝓝 a)
⊢ Tendsto (fun i => ∫ (x : α), φ i x • g x ∂μ) l (𝓝 a)
state_after: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁴ : TopologicalSpace α
inst✝³ : BorelSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t✝ : Set α
φ : ι → α → ℝ
a : E
inst✝ : CompleteSpace E
t : Set α
ht : MeasurableSet t
h'ts : t ∈ 𝓝 x₀
h't : μ t ≠ ⊤
hnφ : ∀ᶠ (i : ι) in l, ∀ (x : α), 0 ≤ φ i x
hlφ : ∀ (u : Set α), IsOpen u → x₀ ∈ u → TendstoUniformlyOn φ 0 l uᶜ
hiφ : Tendsto (fun i => ∫ (x : α) in t, φ i x ∂μ) l (𝓝 1)
h'iφ : ∀ᶠ (i : ι) in l, AEStronglyMeasurable (φ i) μ
hmg : Integrable g μ
hcg : Tendsto g (𝓝 x₀) (𝓝 a)
⊢ Tendsto (fun i => ∫ (x : α) in univ, φ i x • g x ∂μ) l (𝓝 a)
tactic: suffices Tendsto (fun i : ι ↦ ∫ x in univ, φ i x • g x ∂μ) l (𝓝 a) by simpa
state_before: α : Type u_1
E : Type u_2
ι : Type u_3
hm : MeasurableSpace α
μ : Measure α
inst✝⁴ : TopologicalSpace α
inst✝³ : BorelSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
g : α → E
l : Filter ι
x₀ : α
s t✝ : Set α
φ : ι → α → ℝ
a : E
inst✝ : CompleteSpace E
t : Set α
ht : MeasurableSet t
h'ts : t ∈ 𝓝 x₀
h't : μ t ≠ ⊤
hnφ : ∀ᶠ (i : ι) in l, ∀ (x : α), 0 ≤ φ i x
hlφ : ∀ (u : Set α), IsOpen u → x₀ ∈ u → TendstoUniformlyOn φ 0 l uᶜ
hiφ : Tendsto (fun i => ∫ (x : α) in t, φ i x ∂μ) l (𝓝 1)
h'iφ : ∀ᶠ (i : ι) in l, AEStronglyMeasurable (φ i) μ
hmg : Integrable g μ
hcg : Tendsto g (𝓝 x₀) (𝓝 a)
⊢ Tendsto (fun i => ∫ (x : α) in univ, φ i x • g x ∂μ) l (𝓝 a)
state_after: no goals
tactic: exact tendsto_setIntegral_peak_smul_of_integrableOn_of_tendsto MeasurableSet.univ ht (x₀ := x₀)
    (subset_univ _) (by simpa [nhdsWithin_univ]) h't (by simpa)
    (by simpa [← compl_eq_univ_diff] using hlφ) hiφ
    (by simpa) (by simpa) (by simpa [nhdsWithin_univ])
Theorem: Real.tan_arcsin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

Proof steps:
state_before: x✝ y x : ℝ
⊢ tan (arcsin x) = x / √(1 - x ^ 2)
state_after: x✝ y x : ℝ
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
tactic: rw [tan_eq_sin_div_cos, cos_arcsin]
state_before: x✝ y x : ℝ
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
state_after: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case neg
x✝ y x : ℝ
hx₁ : ¬-1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
tactic: by_cases hx₁ : -1 ≤ x
state_before: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case neg
x✝ y x : ℝ
hx₁ : ¬-1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
state_after: case neg
x✝ y x : ℝ
hx₁ : ¬-1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
tactic: swap
state_before: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
state_after: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case neg
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : ¬x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
tactic: by_cases hx₂ : x ≤ 1
state_before: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case neg
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : ¬x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
state_after: case neg
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : ¬x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)

case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
tactic: swap
state_before: case pos
x✝ y x : ℝ
hx₁ : -1 ≤ x
hx₂ : x ≤ 1
⊢ sin (arcsin x) / √(1 - x ^ 2) = x / √(1 - x ^ 2)
state_after: no goals
tactic: rw [sin_arcsin hx₁ hx₂]
Theorem: Set.SurjOn.extendDomain
File: Mathlib/Data/Set/Function.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g g₁ g₂ : Perm α
s t : Set α
h : SurjOn (⇑g) s t
⊢ SurjOn (⇑(g.extendDomain f)) (Subtype.val ∘ ⇑f '' s) (Subtype.val ∘ ⇑f '' t)
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g g₁ g₂ : Perm α
s t : Set α
h : SurjOn (⇑g) s t
a : α
ha : a ∈ t
⊢ (Subtype.val ∘ ⇑f) a ∈ ⇑(g.extendDomain f) '' (Subtype.val ∘ ⇑f '' s)
tactic: rintro _ ⟨a, ha, rfl⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g g₁ g₂ : Perm α
s t : Set α
h : SurjOn (⇑g) s t
a : α
ha : a ∈ t
⊢ (Subtype.val ∘ ⇑f) a ∈ ⇑(g.extendDomain f) '' (Subtype.val ∘ ⇑f '' s)
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g g₁ g₂ : Perm α
s t : Set α
h : SurjOn (⇑g) s t
b : α
hb : b ∈ s
ha : g b ∈ t
⊢ (Subtype.val ∘ ⇑f) (g b) ∈ ⇑(g.extendDomain f) '' (Subtype.val ∘ ⇑f '' s)
tactic: obtain ⟨b, hb, rfl⟩ := h ha
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
g g₁ g₂ : Perm α
s t : Set α
h : SurjOn (⇑g) s t
b : α
hb : b ∈ s
ha : g b ∈ t
⊢ (Subtype.val ∘ ⇑f) (g b) ∈ ⇑(g.extendDomain f) '' (Subtype.val ∘ ⇑f '' s)
state_after: no goals
tactic: exact ⟨_, ⟨_, hb, rfl⟩, by simp_rw [Function.comp_apply, extendDomain_apply_image]⟩
Theorem: Real.cos_pi_div_eight
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

Proof steps:
state_before: x : ℝ
⊢ cos (π / 8) = √(2 + √2) / 2
state_after: x : ℝ
⊢ cos (π / 8) = cos (π / 2 ^ 3)

x : ℝ
⊢ cos (π / 2 ^ 3) = √(2 + √2) / 2
tactic: trans cos (π / 2 ^ 3)
Theorem: Complex.sq_abs_sub_sq_re
File: Mathlib/Data/Complex/Abs.lean

Proof steps:
state_before: z : ℂ
⊢ abs z ^ 2 - z.re ^ 2 = z.im ^ 2
state_after: no goals
tactic: rw [sq_abs, normSq_apply, ← sq, ← sq, add_sub_cancel_left]
Theorem: Matrix.blockDiag_diagonal
File: Mathlib/Data/Matrix/Block.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : Zero α
inst✝² : Zero β
inst✝¹ : DecidableEq o
inst✝ : DecidableEq m
d : m × o → α
k : o
i j : m
⊢ (diagonal d).blockDiag k i j = diagonal (fun i => d (i, k)) i j
state_after: case inl
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : Zero α
inst✝² : Zero β
inst✝¹ : DecidableEq o
inst✝ : DecidableEq m
d : m × o → α
k : o
i : m
⊢ (diagonal d).blockDiag k i i = diagonal (fun i => d (i, k)) i i

case inr
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
p : Type u_5
q : Type u_6
m' : o → Type u_7
n' : o → Type u_8
p' : o → Type u_9
R : Type u_10
S : Type u_11
α : Type u_12
β : Type u_13
inst✝³ : Zero α
inst✝² : Zero β
inst✝¹ : DecidableEq o
inst✝ : DecidableEq m
d : m × o → α
k : o
i j : m
hij : i ≠ j
⊢ (diagonal d).blockDiag k i j = diagonal (fun i => d (i, k)) i j
tactic: obtain rfl | hij := Decidable.eq_or_ne i j
Theorem: MeasureTheory.spanningSetsIndex_eq_iff
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
μ : Measure α
inst✝ : SigmaFinite μ
x : α
n : ℕ
⊢ spanningSetsIndex μ x = n ↔ x ∈ disjointed (spanningSets μ) n
state_after: no goals
tactic: convert Set.ext_iff.1 (preimage_spanningSetsIndex_singleton μ n) x
Theorem: Real.fderiv_fourierChar_neg_bilinear_right_apply
File: Mathlib/Analysis/Fourier/FourierTransformDeriv.lean

Proof steps:
state_before: V : Type u_1
W : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
v : V
w y : W
⊢ (fderiv ℝ (fun w => ↑(𝐞 (-(L v) w))) w) y = -2 * ↑π * I * ↑((L v) y) * ↑(𝐞 (-(L v) w))
state_after: V : Type u_1
W : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
v : V
w y : W
⊢ 2 * ↑π * I * ↑(𝐞 (-(L v) w)) * ↑((L v) y) = 2 * ↑π * I * ↑((L v) y) * ↑(𝐞 (-(L v) w))
tactic: simp only [(hasFDerivAt_fourierChar_neg_bilinear_right L v w).fderiv, neg_mul,
    ContinuousLinearMap.coe_smul', ContinuousLinearMap.coe_comp', Pi.smul_apply,
    Function.comp_apply, ofRealCLM_apply, smul_eq_mul, neg_inj]
state_before: V : Type u_1
W : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
v : V
w y : W
⊢ 2 * ↑π * I * ↑(𝐞 (-(L v) w)) * ↑((L v) y) = 2 * ↑π * I * ↑((L v) y) * ↑(𝐞 (-(L v) w))
state_after: no goals
tactic: ring