1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ConvexOn.le_max_of_mem_Icc
File: Mathlib/Analysis/Convex/Jensen.lean

tactic: rw [← segment_eq_Icc (hz.1.trans hz.2)] at hf hz
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f✝ : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x✝ y✝ z✝ : E
f : 𝕜 → β
x y z : 𝕜
hf : ConvexOn 𝕜 (Set.Icc x y) f
hz : z ∈ Set.Icc x y
⊢ f z ≤ max (f x) (f y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f✝ : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x✝ y✝ z✝ : E
f : 𝕜 → β
x y z : 𝕜
hf : ConvexOn 𝕜 [x-[𝕜]y] f
hz : z ∈ [x-[𝕜]y]
⊢ f z ≤ max (f x) (f y)

tactic: exact hf.le_max_of_mem_segment hz
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
ι : Type u_5
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : LinearOrderedAddCommGroup β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f✝ : E → β
t : Finset ι
w : ι → 𝕜
p : ι → E
x✝ y✝ z✝ : E
f : 𝕜 → β
x y z : 𝕜
hf : ConvexOn 𝕜 [x-[𝕜]y] f
hz : z ∈ [x-[𝕜]y]
⊢ f z ≤ max (f x) (f y)
state_after: no goals
Theorem: eq_of_has_deriv_right_eq
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: simp only [← @sub_eq_zero _ _ (f _)] at hi ⊢
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
f' g : ℝ → E
derivf : ∀ x ∈ Ico a b, HasDerivWithinAt f (f' x) (Ici x) x
derivg : ∀ x ∈ Ico a b, HasDerivWithinAt g (f' x) (Ici x) x
fcont : ContinuousOn f (Icc a b)
gcont : ContinuousOn g (Icc a b)
hi : f a = g a
⊢ ∀ y ∈ Icc a b, f y = g y
state_after: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
f' g : ℝ → E
derivf : ∀ x ∈ Ico a b, HasDerivWithinAt f (f' x) (Ici x) x
derivg : ∀ x ∈ Ico a b, HasDerivWithinAt g (f' x) (Ici x) x
fcont : ContinuousOn f (Icc a b)
gcont : ContinuousOn g (Icc a b)
hi : f a - g a = 0
⊢ ∀ y ∈ Icc a b, f y - g y = 0

tactic: exact hi ▸ constant_of_has_deriv_right_zero (fcont.sub gcont) fun y hy => by
  simpa only [sub_self] using (derivf y hy).sub (derivg y hy)
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
f' g : ℝ → E
derivf : ∀ x ∈ Ico a b, HasDerivWithinAt f (f' x) (Ici x) x
derivg : ∀ x ∈ Ico a b, HasDerivWithinAt g (f' x) (Ici x) x
fcont : ContinuousOn f (Icc a b)
gcont : ContinuousOn g (Icc a b)
hi : f a - g a = 0
⊢ ∀ y ∈ Icc a b, f y - g y = 0
state_after: no goals

tactic: simpa only [sub_self] using (derivf y hy).sub (derivg y hy)
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f : ℝ → E
a b : ℝ
f' g : ℝ → E
derivf : ∀ x ∈ Ico a b, HasDerivWithinAt f (f' x) (Ici x) x
derivg : ∀ x ∈ Ico a b, HasDerivWithinAt g (f' x) (Ici x) x
fcont : ContinuousOn f (Icc a b)
gcont : ContinuousOn g (Icc a b)
hi : f a - g a = 0
y : ℝ
hy : y ∈ Ico a b
⊢ HasDerivWithinAt (fun y => f y - g y) 0 (Ici y) y
state_after: no goals
Theorem: Subsemigroup.mem_sup_right
File: Mathlib/Algebra/Group/Subsemigroup/Membership.lean

tactic: have : T ≤ S ⊔ T := le_sup_right
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
⊢ ∀ {x : M}, x ∈ T → x ∈ S ⊔ T
state_after: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
this : T ≤ S ⊔ T
⊢ ∀ {x : M}, x ∈ T → x ∈ S ⊔ T

tactic: tauto
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
this : T ≤ S ⊔ T
⊢ ∀ {x : M}, x ∈ T → x ∈ S ⊔ T
state_after: no goals
Theorem: CategoryTheory.Adjunction.unit_rightAdjointUniq_hom_app
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

tactic: simp only [Functor.id_obj, Functor.comp_obj, rightAdjointUniq, natIsoEquiv_symm_apply_hom,
  Iso.refl_hom, natTransEquiv_symm_apply_app, NatTrans.id_app, Category.id_comp]
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'
x : C
⊢ adj1.unit.app x ≫ (adj1.rightAdjointUniq adj2).hom.app (F.obj x) = adj2.unit.app x
state_after: 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 : C
⊢ adj1.unit.app x ≫ adj2.unit.app (G.obj (F.obj x)) ≫ G'.map (adj1.counit.app (F.obj x)) = adj2.unit.app x

tactic: rw [← adj2.unit_naturality_assoc, ← G'.map_comp]
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'
x : C
⊢ adj1.unit.app x ≫ adj2.unit.app (G.obj (F.obj x)) ≫ G'.map (adj1.counit.app (F.obj x)) = adj2.unit.app x
state_after: 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 : C
⊢ adj2.unit.app x ≫ G'.map (F.map (adj1.unit.app x) ≫ adj1.counit.app (F.obj x)) = adj2.unit.app x

tactic: simp
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'
x : C
⊢ adj2.unit.app x ≫ G'.map (F.map (adj1.unit.app x) ≫ adj1.counit.app (F.obj x)) = adj2.unit.app x
state_after: no goals
Theorem: Submodule.mul_one_div_le_one
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: rw [Submodule.mul_le]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ I * (1 / I) ≤ 1
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ ∀ m ∈ I, ∀ n ∈ 1 / I, m * n ∈ 1

tactic: intro m hm n hn
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
⊢ ∀ m ∈ I, ∀ n ∈ 1 / I, m * n ∈ 1
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : n ∈ 1 / I
⊢ m * n ∈ 1

tactic: rw [Submodule.mem_div_iff_forall_mul_mem] at hn
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : n ∈ 1 / I
⊢ m * n ∈ 1
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : ∀ y ∈ I, n * y ∈ 1
⊢ m * n ∈ 1

tactic: rw [mul_comm]
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : ∀ y ∈ I, n * y ∈ 1
⊢ m * n ∈ 1
state_after: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : ∀ y ∈ I, n * y ∈ 1
⊢ n * m ∈ 1

tactic: exact hn m hm
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m✝ n✝ : A
I : Submodule R A
m : A
hm : m ∈ I
n : A
hn : ∀ y ∈ I, n * y ∈ 1
⊢ n * m ∈ 1
state_after: no goals
Theorem: CircleDeg1Lift.commute_sub_int
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simpa only [sub_eq_add_neg] using
  (f.commute_add_int n).inverses_right (Equiv.addRight _).right_inv (Equiv.addRight _).left_inv
state_before: f g : CircleDeg1Lift
n : ℤ
⊢ Function.Commute ⇑f fun x => x - ↑n
state_after: no goals
Theorem: MeasurableSpace.measurableSet_sInf
File: Mathlib/MeasureTheory/MeasurableSpace/Defs.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort u_6
s✝ t u : Set α
ms : Set (MeasurableSpace α)
s : Set α
⊢ s ∈ ⋂₀ ((fun m => {t | MeasurableSet t}) '' ms) ↔ ∀ m ∈ ms, MeasurableSet s
state_after: no goals
Theorem: Set.preimage_neg_Ico
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ici_inter_Iio, ← Ioi_inter_Iic, inter_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ -Ico a b = Ioc (-b) (-a)
state_after: no goals
Theorem: WithTop.add_lt_add_left
File: Mathlib/Algebra/Order/Monoid/WithTop.lean

tactic: lift a to α using ha
state_before: α : Type u
β : Type v
inst✝² : Add α
a b c d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
ha : a ≠ ⊤
h : b < c
⊢ a + b < a + c
state_after: case intro
α : Type u
β : Type v
inst✝² : Add α
b c d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
h : b < c
a : α
⊢ ↑a + b < ↑a + c

tactic: rcases lt_iff_exists_coe.1 h with ⟨b, rfl, h'⟩
state_before: case intro
α : Type u
β : Type v
inst✝² : Add α
b c d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
h : b < c
a : α
⊢ ↑a + b < ↑a + c
state_after: case intro.intro.intro
α : Type u
β : Type v
inst✝² : Add α
c d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b : α
h' h : ↑b < c
⊢ ↑a + ↑b < ↑a + c

tactic: cases c
state_before: case intro.intro.intro
α : Type u
β : Type v
inst✝² : Add α
c d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b : α
h' h : ↑b < c
⊢ ↑a + ↑b < ↑a + c
state_after: case intro.intro.intro.top
α : Type u
β : Type v
inst✝² : Add α
d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b : α
h' h : ↑b < ⊤
⊢ ↑a + ↑b < ↑a + ⊤

case intro.intro.intro.coe
α : Type u
β : Type v
inst✝² : Add α
d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b a✝ : α
h' h : ↑b < ↑a✝
⊢ ↑a + ↑b < ↑a + ↑a✝

tactic: exact coe_lt_top _
state_before: case intro.intro.intro.top
α : Type u
β : Type v
inst✝² : Add α
d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b : α
h' h : ↑b < ⊤
⊢ ↑a + ↑b < ↑a + ⊤
state_after: no goals

tactic: exact coe_lt_coe.2 (add_lt_add_left (coe_lt_coe.1 h) _)
state_before: case intro.intro.intro.coe
α : Type u
β : Type v
inst✝² : Add α
d : WithTop α
x y : α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a b a✝ : α
h' h : ↑b < ↑a✝
⊢ ↑a + ↑b < ↑a + ↑a✝
state_after: no goals
Theorem: InnerProductGeometry.angle_add_eq_arccos_of_inner_eq_zero
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

tactic: rw [angle, inner_add_right, h, add_zero, real_inner_self_eq_norm_mul_norm]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
⊢ angle x (x + y) = Real.arccos (‖x‖ / ‖x + y‖)
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)

tactic: by_cases hx : ‖x‖ = 0
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)
state_after: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
hx : ‖x‖ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)

case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
hx : ¬‖x‖ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)

tactic: rw [div_mul_eq_div_div, mul_self_div_self]
state_before: case neg
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
hx : ¬‖x‖ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)
state_after: no goals

tactic: simp [hx]
state_before: case pos
V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x y : V
h : ⟪x, y⟫_ℝ = 0
hx : ‖x‖ = 0
⊢ Real.arccos (‖x‖ * ‖x‖ / (‖x‖ * ‖x + y‖)) = Real.arccos (‖x‖ / ‖x + y‖)
state_after: no goals
Theorem: Real.cosh_neg
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp
state_before: x y : ℝ
⊢ ↑(cosh (-x)) = ↑(cosh x)
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.Point.toAffine_of_Z_ne_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rw [toAffine, dif_pos ⟨hP, hPz⟩]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → F
hP : W.Nonsingular P
hPz : P z ≠ 0
⊢ toAffine W P = Affine.Point.some ⋯
state_after: no goals
Theorem: Denumerable.lower_raise
File: Mathlib/Logic/Equiv/List.lean

tactic: rw [raise, lower, Nat.add_sub_cancel_right, lower_raise l]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Denumerable α
inst✝ : Denumerable β
m : ℕ
l : List ℕ
n : ℕ
⊢ lower (raise (m :: l) n) n = m :: l
state_after: no goals
Theorem: FractionalIdeal.count_pow_self
File: Mathlib/RingTheory/DedekindDomain/Factorization.lean

tactic: rw [count_pow, count_self, mul_one]
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
n : ℕ
⊢ count K v (↑v.asIdeal ^ n) = ↑n
state_after: no goals
Theorem: List.exists_of_set
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: rw [set_eq_modifyNth]
state_before: α : Type u_1
n : Nat
a' : α
l : List α
h : n < l.length
⊢ ∃ l₁ a l₂, l = l₁ ++ a :: l₂ ∧ l₁.length = n ∧ l.set n a' = l₁ ++ a' :: l₂
state_after: α : Type u_1
n : Nat
a' : α
l : List α
h : n < l.length
⊢ ∃ l₁ a l₂, l = l₁ ++ a :: l₂ ∧ l₁.length = n ∧ modifyNth (fun x => a') n l = l₁ ++ a' :: l₂

tactic: exact exists_of_modifyNth _ h
state_before: α : Type u_1
n : Nat
a' : α
l : List α
h : n < l.length
⊢ ∃ l₁ a l₂, l = l₁ ++ a :: l₂ ∧ l₁.length = n ∧ modifyNth (fun x => a') n l = l₁ ++ a' :: l₂
state_after: no goals
Theorem: GaussianFourier.integrable_cexp_neg_mul_sq_add_real_mul_I
File: Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

tactic: refine
  ⟨(Complex.continuous_exp.comp
        (continuous_const.mul
          ((continuous_ofReal.add continuous_const).pow 2))).aestronglyMeasurable,
    ?_⟩
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ Integrable (fun x => cexp (-b * (↑x + ↑c * I) ^ 2)) volume
state_after: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun x => cexp (-b * (↑x + ↑c * I) ^ 2)) volume

tactic: rw [← hasFiniteIntegral_norm_iff]
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun x => cexp (-b * (↑x + ↑c * I) ^ 2)) volume
state_after: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun a => ‖cexp (-b * (↑a + ↑c * I) ^ 2)‖) volume

tactic: simp_rw [norm_cexp_neg_mul_sq_add_mul_I' hb.ne', neg_sub _ (c ^ 2 * _),
  sub_eq_add_neg _ (b.re * _), Real.exp_add]
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun a => ‖cexp (-b * (↑a + ↑c * I) ^ 2)‖) volume
state_after: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun a => rexp (c ^ 2 * (b.im ^ 2 / b.re + b.re)) * rexp (-(b.re * (a - b.im * c / b.re) ^ 2)))
    volume

tactic: suffices Integrable fun x : ℝ => exp (-(b.re * x ^ 2)) by
  exact (Integrable.comp_sub_right this (b.im * c / b.re)).hasFiniteIntegral.const_mul _
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ HasFiniteIntegral (fun a => rexp (c ^ 2 * (b.im ^ 2 / b.re + b.re)) * rexp (-(b.re * (a - b.im * c / b.re) ^ 2)))
    volume
state_after: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ Integrable (fun x => rexp (-(b.re * x ^ 2))) volume

tactic: simp_rw [← neg_mul]
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ Integrable (fun x => rexp (-(b.re * x ^ 2))) volume
state_after: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ Integrable (fun x => rexp (-b.re * x ^ 2)) volume

tactic: apply integrable_exp_neg_mul_sq hb
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
⊢ Integrable (fun x => rexp (-b.re * x ^ 2)) volume
state_after: no goals

tactic: exact (Integrable.comp_sub_right this (b.im * c / b.re)).hasFiniteIntegral.const_mul _
state_before: b : ℂ
hb : 0 < b.re
c : ℝ
this : Integrable (fun x => rexp (-(b.re * x ^ 2))) volume
⊢ HasFiniteIntegral (fun a => rexp (c ^ 2 * (b.im ^ 2 / b.re + b.re)) * rexp (-(b.re * (a - b.im * c / b.re) ^ 2)))
    volume
state_after: no goals
Theorem: Set.zero_mul_subset
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simp [subset_def, mem_mul]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : MulZeroClass α
s✝ t s : Set α
⊢ 0 * s ⊆ 0
state_after: no goals
Theorem: Finset.Nonempty.div_zero
File: Mathlib/Data/Finset/Pointwise.lean

tactic: simpa [mem_div] using hs
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : GroupWithZero α
s t : Finset α
hs : s.Nonempty
⊢ 0 ⊆ s / 0
state_after: no goals
Theorem: ProbabilityTheory.IsMeasurableRatCDF.stieltjesFunctionAux_eq
File: Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean

tactic: rw [← hf.iInf_rat_gt_eq a r, IsMeasurableRatCDF.stieltjesFunctionAux]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ stieltjesFunctionAux f a ↑r = f a r
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ ⨅ q, f a ↑q = ⨅ r_1, f a ↑r_1

tactic: refine Equiv.iInf_congr ?_ ?_
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ ⨅ q, f a ↑q = ⨅ r_1, f a ↑r_1
state_after: case refine_1
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ { q' // ↑r < ↑q' } ≃ ↑(Ioi r)

case refine_2
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ ∀ (x : { q' // ↑r < ↑q' }), f a ↑(?refine_1 x) = f a ↑x

tactic: exact
  { toFun := fun t ↦ ⟨t.1, mod_cast t.2⟩
    invFun := fun t ↦ ⟨t.1, mod_cast t.2⟩
    left_inv := fun t ↦ by simp only [Subtype.coe_eta]
    right_inv := fun t ↦ by simp only [Subtype.coe_eta] }
state_before: case refine_1
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ { q' // ↑r < ↑q' } ≃ ↑(Ioi r)
state_after: no goals

tactic: simp only [Subtype.coe_eta]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
t : { q' // ↑r < ↑q' }
⊢ (fun t => ⟨↑t, ⋯⟩) ((fun t => ⟨↑t, ⋯⟩) t) = t
state_after: no goals

tactic: simp only [Subtype.coe_eta]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
t : ↑(Ioi r)
⊢ (fun t => ⟨↑t, ⋯⟩) ((fun t => ⟨↑t, ⋯⟩) t) = t
state_after: no goals

tactic: intro t
state_before: case refine_2
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
⊢ ∀ (x : { q' // ↑r < ↑q' }),
    f a ↑({ toFun := fun t => ⟨↑t, ⋯⟩, invFun := fun t => ⟨↑t, ⋯⟩, left_inv := ⋯, right_inv := ⋯ } x) = f a ↑x
state_after: case refine_2
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
t : { q' // ↑r < ↑q' }
⊢ f a ↑({ toFun := fun t => ⟨↑t, ⋯⟩, invFun := fun t => ⟨↑t, ⋯⟩, left_inv := ⋯, right_inv := ⋯ } t) = f a ↑t

tactic: simp only [Equiv.coe_fn_mk, Subtype.coe_mk]
state_before: case refine_2
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
r : ℚ
t : { q' // ↑r < ↑q' }
⊢ f a ↑({ toFun := fun t => ⟨↑t, ⋯⟩, invFun := fun t => ⟨↑t, ⋯⟩, left_inv := ⋯, right_inv := ⋯ } t) = f a ↑t
state_after: no goals
Theorem: CategoryTheory.eq_conj_eqToHom
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: simp only [Category.id_comp, eqToHom_refl, Category.comp_id]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y : C
f : X ⟶ Y
⊢ f = eqToHom ⋯ ≫ f ≫ eqToHom ⋯
state_after: no goals
Theorem: ProbabilityTheory.cond_mul_eq_inter'
File: Mathlib/Probability/ConditionalProbability.lean

tactic: obtain hcs | hcs := eq_or_ne (μ s) 0
state_before: Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ : Set Ω
hms : MeasurableSet s
hcs' : μ s ≠ ⊤
t : Set Ω
⊢ μ[|s] t * μ s = μ (s ∩ t)
state_after: case inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ : Set Ω
hms : MeasurableSet s
hcs' : μ s ≠ ⊤
t : Set Ω
hcs : μ s = 0
⊢ μ[|s] t * μ s = μ (s ∩ t)

case inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ : Set Ω
hms : MeasurableSet s
hcs' : μ s ≠ ⊤
t : Set Ω
hcs : μ s ≠ 0
⊢ μ[|s] t * μ s = μ (s ∩ t)

tactic: simp [hcs, measure_inter_null_of_null_left]
state_before: case inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ : Set Ω
hms : MeasurableSet s
hcs' : μ s ≠ ⊤
t : Set Ω
hcs : μ s = 0
⊢ μ[|s] t * μ s = μ (s ∩ t)
state_after: no goals

tactic: rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
state_before: case inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t✝ : Set Ω
hms : MeasurableSet s
hcs' : μ s ≠ ⊤
t : Set Ω
hcs : μ s ≠ 0
⊢ μ[|s] t * μ s = μ (s ∩ t)
state_after: no goals
Theorem: Opposite.unop_injective
File: Mathlib/Data/Opposite.lean

tactic: simp
state_before: α : Sort u
x✝¹ x✝ : αᵒᵖ
unop✝¹ unop✝ : α
⊢ { unop := unop✝¹ }.unop = { unop := unop✝ }.unop → { unop := unop✝¹ } = { unop := unop✝ }
state_after: no goals
Theorem: Nat.coprime_sub_mul_floor_rat_div_of_coprime
File: Mathlib/Data/Rat/Floor.lean

tactic: have : (n : ℤ) % d = n - d * ⌊(n : ℚ) / d⌋ := Int.mod_nat_eq_sub_mul_floor_rat_div
state_before: n d : ℕ
n_coprime_d : n.Coprime d
⊢ (↑n - ↑d * ⌊↑n / ↑d⌋).natAbs.Coprime d
state_after: n d : ℕ
n_coprime_d : n.Coprime d
this : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
⊢ (↑n - ↑d * ⌊↑n / ↑d⌋).natAbs.Coprime d

tactic: rw [← this]
state_before: n d : ℕ
n_coprime_d : n.Coprime d
this : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
⊢ (↑n - ↑d * ⌊↑n / ↑d⌋).natAbs.Coprime d
state_after: n d : ℕ
n_coprime_d : n.Coprime d
this : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
⊢ (↑n % ↑d).natAbs.Coprime d

tactic: have : d.Coprime n := n_coprime_d.symm
state_before: n d : ℕ
n_coprime_d : n.Coprime d
this : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
⊢ (↑n % ↑d).natAbs.Coprime d
state_after: n d : ℕ
n_coprime_d : n.Coprime d
this✝ : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
this : d.Coprime n
⊢ (↑n % ↑d).natAbs.Coprime d

tactic: rwa [Nat.Coprime, Nat.gcd_rec] at this
state_before: n d : ℕ
n_coprime_d : n.Coprime d
this✝ : ↑n % ↑d = ↑n - ↑d * ⌊↑n / ↑d⌋
this : d.Coprime n
⊢ (↑n % ↑d).natAbs.Coprime d
state_after: no goals
Theorem: Multiset.card_Iic
File: Mathlib/Data/Multiset/Interval.lean

tactic: simp_rw [Iic_eq_Icc, card_Icc, bot_eq_zero, toFinset_zero, empty_union, count_zero, tsub_zero]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Multiset α
⊢ (Finset.Iic s).card = ∏ i ∈ s.toFinset, (count i s + 1)
state_after: no goals