1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PiTensorProduct.induction_on
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: simp_rw [← tprodCoeff_eq_smul_tprod] at smul_tprod
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (r • (tprod R) f)
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
⊢ motive z
state_after: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (tprodCoeff R r f)
⊢ motive z

tactic: exact PiTensorProduct.induction_on' z smul_tprod add
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
motive : (⨂[R] (i : ι), s i) → Prop
z : ⨂[R] (i : ι), s i
add : ∀ (x y : ⨂[R] (i : ι), s i), motive x → motive y → motive (x + y)
smul_tprod : ∀ (r : R) (f : (i : ι) → s i), motive (tprodCoeff R r f)
⊢ motive z
state_after: no goals
Theorem: ENNReal.toReal_top_mul
File: Mathlib/Data/ENNReal/Real.lean

tactic: rw [mul_comm]
state_before: a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ (⊤ * a).toReal = 0
state_after: a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ (a * ⊤).toReal = 0

tactic: exact toReal_mul_top _
state_before: a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ (a * ⊤).toReal = 0
state_after: no goals
Theorem: List.mk_mem_enumFrom_iff_le_and_get?_sub
File: Mathlib/Data/List/Enum.lean

tactic: if h : n ≤ i then
  rcases Nat.exists_eq_add_of_le h with ⟨i, rfl⟩
  simp [mk_add_mem_enumFrom_iff_get?, Nat.add_sub_cancel_left]
else
  have : ∀ k, n + k ≠ i := by rintro k rfl; simp at h
  simp [h, mem_iff_get?, this]
state_before: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
⊢ (i, x) ∈ enumFrom n l ↔ n ≤ i ∧ l.get? (i - n) = some x
state_after: no goals

tactic: rcases Nat.exists_eq_add_of_le h with ⟨i, rfl⟩
state_before: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
h : n ≤ i
⊢ (i, x) ∈ enumFrom n l ↔ n ≤ i ∧ l.get? (i - n) = some x
state_after: case intro
α : Type u_1
β : Type u_2
n : ℕ
x : α
l : List α
i : ℕ
h : n ≤ n + i
⊢ (n + i, x) ∈ enumFrom n l ↔ n ≤ n + i ∧ l.get? (n + i - n) = some x

tactic: simp [mk_add_mem_enumFrom_iff_get?, Nat.add_sub_cancel_left]
state_before: case intro
α : Type u_1
β : Type u_2
n : ℕ
x : α
l : List α
i : ℕ
h : n ≤ n + i
⊢ (n + i, x) ∈ enumFrom n l ↔ n ≤ n + i ∧ l.get? (n + i - n) = some x
state_after: no goals

tactic: have : ∀ k, n + k ≠ i := by rintro k rfl; simp at h
state_before: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
h : ¬n ≤ i
⊢ (i, x) ∈ enumFrom n l ↔ n ≤ i ∧ l.get? (i - n) = some x
state_after: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
h : ¬n ≤ i
this : ∀ (k : ℕ), n + k ≠ i
⊢ (i, x) ∈ enumFrom n l ↔ n ≤ i ∧ l.get? (i - n) = some x

tactic: simp [h, mem_iff_get?, this]
state_before: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
h : ¬n ≤ i
this : ∀ (k : ℕ), n + k ≠ i
⊢ (i, x) ∈ enumFrom n l ↔ n ≤ i ∧ l.get? (i - n) = some x
state_after: no goals

tactic: rintro k rfl
state_before: α : Type u_1
β : Type u_2
n i : ℕ
x : α
l : List α
h : ¬n ≤ i
⊢ ∀ (k : ℕ), n + k ≠ i
state_after: α : Type u_1
β : Type u_2
n : ℕ
x : α
l : List α
k : ℕ
h : ¬n ≤ n + k
⊢ False

tactic: simp at h
state_before: α : Type u_1
β : Type u_2
n : ℕ
x : α
l : List α
k : ℕ
h : ¬n ≤ n + k
⊢ False
state_after: no goals
Theorem: MeasureTheory.levyProkhorovEDist_self
File: Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean

tactic: rw [← nonpos_iff_eq_zero, ← csInf_Ioo zero_lt_top]
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
⊢ levyProkhorovEDist μ μ = 0
state_after: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
⊢ levyProkhorovEDist μ μ ≤ sInf (Ioo 0 ⊤)

tactic: refine sInf_le_sInf fun ε ⟨hε₀, hε_top⟩ B _ ↦ and_self_iff.2 ?_
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
⊢ levyProkhorovEDist μ μ ≤ sInf (Ioo 0 ⊤)
state_after: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
ε : ℝ≥0∞
x✝¹ : ε ∈ Ioo 0 ⊤
B : Set Ω
x✝ : MeasurableSet B
hε₀ : 0 < ε
hε_top : ε < ⊤
⊢ μ B ≤ μ (thickening ε.toReal B) + ε

tactic: refine le_add_right <| measure_mono <| self_subset_thickening ?_ _
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
ε : ℝ≥0∞
x✝¹ : ε ∈ Ioo 0 ⊤
B : Set Ω
x✝ : MeasurableSet B
hε₀ : 0 < ε
hε_top : ε < ⊤
⊢ μ B ≤ μ (thickening ε.toReal B) + ε
state_after: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
ε : ℝ≥0∞
x✝¹ : ε ∈ Ioo 0 ⊤
B : Set Ω
x✝ : MeasurableSet B
hε₀ : 0 < ε
hε_top : ε < ⊤
⊢ 0 < ε.toReal

tactic: exact ENNReal.toReal_pos hε₀.ne' hε_top.ne
state_before: ι : Type u_1
Ω : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : PseudoEMetricSpace Ω
μ : Measure Ω
ε : ℝ≥0∞
x✝¹ : ε ∈ Ioo 0 ⊤
B : Set Ω
x✝ : MeasurableSet B
hε₀ : 0 < ε
hε_top : ε < ⊤
⊢ 0 < ε.toReal
state_after: no goals
Theorem: Set.preimage_mul
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: rw [image_mul, image_preimage_eq_iff.2 hs, image_preimage_eq_iff.2 ht,
  image_preimage_eq_iff.2 (mul_subset_range m hs ht)]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : Mul α
inst✝² : Mul β
inst✝¹ : FunLike F α β
inst✝ : MulHomClass F α β
m : F
s✝ t✝ : Set α
hm : Injective ⇑m
s t : Set β
hs : s ⊆ range ⇑m
ht : t ⊆ range ⇑m
⊢ ⇑m '' (⇑m ⁻¹' (s * t)) = ⇑m '' (⇑m ⁻¹' s * ⇑m ⁻¹' t)
state_after: no goals
Theorem: HomologicalComplex.extend.d_none_eq_zero
File: Mathlib/Algebra/Homology/Embedding/Extend.lean

tactic: subst hi
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝² : Category.{u_4, u_3} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
K : HomologicalComplex C c
e : c.Embedding c'
i j : Option ι
hi : i = none
⊢ d K i j = 0
state_after: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝² : Category.{u_4, u_3} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
K : HomologicalComplex C c
e : c.Embedding c'
j : Option ι
⊢ d K none j = 0

tactic: rfl
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝² : Category.{u_4, u_3} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
K : HomologicalComplex C c
e : c.Embedding c'
j : Option ι
⊢ d K none j = 0
state_after: no goals
Theorem: norm_div_le_norm_div_add_norm_div
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa only [dist_eq_norm_div] using dist_triangle a b c
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₂ : ℝ
a b c : E
⊢ ‖a / c‖ ≤ ‖a / b‖ + ‖b / c‖
state_after: no goals
Theorem: CategoryTheory.ShortComplex.isIso_opcyclesMap'_of_isIso_of_epi
File: Mathlib/Algebra/Homology/ShortComplex/RightHomology.lean

tactic: refine ⟨h₂.descQ (inv φ.τ₂ ≫ h₁.p) ?_, ?_, ?_⟩
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ IsIso (opcyclesMap' φ h₁ h₂)
state_after: case refine_1
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ S₂.f ≫ inv φ.τ₂ ≫ h₁.p = 0

case refine_2
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ opcyclesMap' φ h₁ h₂ ≫ h₂.descQ (inv φ.τ₂ ≫ h₁.p) ?refine_1 = 𝟙 h₁.Q

case refine_3
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ h₂.descQ (inv φ.τ₂ ≫ h₁.p) ?refine_1 ≫ opcyclesMap' φ h₁ h₂ = 𝟙 h₂.Q

tactic: simp only [← cancel_epi φ.τ₁, comp_zero, φ.comm₁₂_assoc, IsIso.hom_inv_id_assoc, h₁.wp]
state_before: case refine_1
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ S₂.f ≫ inv φ.τ₂ ≫ h₁.p = 0
state_after: no goals

tactic: simp only [← cancel_epi h₁.p, p_opcyclesMap'_assoc, h₂.p_descQ,
  IsIso.hom_inv_id_assoc, comp_id]
state_before: case refine_2
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ opcyclesMap' φ h₁ h₂ ≫ h₂.descQ (inv φ.τ₂ ≫ h₁.p) ⋯ = 𝟙 h₁.Q
state_after: no goals

tactic: simp only [← cancel_epi h₂.p, h₂.p_descQ_assoc, assoc, p_opcyclesMap',
  IsIso.inv_hom_id_assoc, comp_id]
state_before: case refine_3
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
φ : S₁ ⟶ S₂
h₂✝ : IsIso φ.τ₂
h₁✝ : Epi φ.τ₁
h₁ : S₁.RightHomologyData
h₂ : S₂.RightHomologyData
⊢ h₂.descQ (inv φ.τ₂ ≫ h₁.p) ⋯ ≫ opcyclesMap' φ h₁ h₂ = 𝟙 h₂.Q
state_after: no goals
Theorem: CategoryTheory.ShortComplex.HomologyMapData.comm
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: simp only [← cancel_epi h₁.left.π, ← cancel_mono h₂.right.ι, assoc,
  LeftHomologyMapData.commπ_assoc, HomologyData.comm, LeftHomologyMapData.commi_assoc,
  RightHomologyMapData.commι, HomologyData.comm_assoc, RightHomologyMapData.commp]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
h : HomologyMapData φ h₁ h₂
⊢ h.left.φH ≫ h₂.iso.hom = h₁.iso.hom ≫ h.right.φH
state_after: no goals
Theorem: Set.subsingleton_of_preimage
File: Mathlib/Data/Set/Image.lean

tactic: rcases hf fx, hf fy with ⟨⟨x, rfl⟩, ⟨y, rfl⟩⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
s✝ : Set α
f : α → β
hf : Surjective f
s : Set β
hs : (f ⁻¹' s).Subsingleton
fx : β
hx : fx ∈ s
fy : β
hy : fy ∈ s
⊢ fx = fy
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
s✝ : Set α
f : α → β
hf : Surjective f
s : Set β
hs : (f ⁻¹' s).Subsingleton
x : α
hx : f x ∈ s
y : α
hy : f y ∈ s
⊢ f x = f y

tactic: exact congr_arg f (hs hx hy)
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
s✝ : Set α
f : α → β
hf : Surjective f
s : Set β
hs : (f ⁻¹' s).Subsingleton
x : α
hx : f x ∈ s
y : α
hy : f y ∈ s
⊢ f x = f y
state_after: no goals
Theorem: Set.Iic.disjoint_iff
File: Mathlib/Order/LatticeIntervals.lean

tactic: simp [_root_.disjoint_iff, Subtype.ext_iff]
state_before: α : Type u_1
a : α
inst✝¹ : SemilatticeInf α
inst✝ : OrderBot α
x y : ↑(Iic a)
⊢ Disjoint x y ↔ Disjoint ↑x ↑y
state_after: no goals
Theorem: PathConnectedSpace.exists_path_through_family
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: have : IsPathConnected (univ : Set X) := pathConnectedSpace_iff_univ.mp (by infer_instance)
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
⊢ ∃ γ, ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
this : IsPathConnected univ
⊢ ∃ γ, ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ

tactic: rcases this.exists_path_through_family p fun _i => True.intro with ⟨γ, -, h⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
this : IsPathConnected univ
⊢ ∃ γ, ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ
state_after: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
this : IsPathConnected univ
γ : Path (p 0) (p ↑n)
h : ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ
⊢ ∃ γ, ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ

tactic: exact ⟨γ, h⟩
state_before: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
this : IsPathConnected univ
γ : Path (p 0) (p ↑n)
h : ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ
⊢ ∃ γ, ∀ (i : Fin (n + 1)), p i ∈ range ⇑γ
state_after: no goals

tactic: infer_instance
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : PathConnectedSpace X
n : ℕ
p : Fin (n + 1) → X
⊢ PathConnectedSpace X
state_after: no goals
Theorem: ProbabilityTheory.gammaCDFReal_eq_lintegral
File: Mathlib/Probability/Distributions/Gamma.lean

tactic: have : IsProbabilityMeasure (gammaMeasure a r) := isProbabilityMeasureGamma ha hr
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
⊢ ↑(gammaCDFReal a r) x = (∫⁻ (x : ℝ) in Iic x, gammaPDF a r x).toReal
state_after: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ↑(gammaCDFReal a r) x = (∫⁻ (x : ℝ) in Iic x, gammaPDF a r x).toReal

tactic: simp only [gammaPDF, gammaCDFReal, cdf_eq_toReal]
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ↑(gammaCDFReal a r) x = (∫⁻ (x : ℝ) in Iic x, gammaPDF a r x).toReal
state_after: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ((gammaMeasure a r) (Iic x)).toReal = (∫⁻ (x : ℝ) in Iic x, ENNReal.ofReal (gammaPDFReal a r x)).toReal

tactic: simp only [gammaMeasure, measurableSet_Iic, withDensity_apply, gammaPDF]
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ((gammaMeasure a r) (Iic x)).toReal = (∫⁻ (x : ℝ) in Iic x, ENNReal.ofReal (gammaPDFReal a r x)).toReal
state_after: no goals
Theorem: Polynomial.cyclotomic.irreducible
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean

tactic: rw [cyclotomic_eq_minpoly (isPrimitiveRoot_exp n hpos.ne') hpos]
state_before: R : Type u_1
inst✝ : CommRing R
n✝ n : ℕ
hpos : 0 < n
⊢ Irreducible (cyclotomic n ℤ)
state_after: R : Type u_1
inst✝ : CommRing R
n✝ n : ℕ
hpos : 0 < n
⊢ Irreducible (minpoly ℤ (cexp (2 * ↑Real.pi * I / ↑n)))

tactic: apply minpoly.irreducible
state_before: R : Type u_1
inst✝ : CommRing R
n✝ n : ℕ
hpos : 0 < n
⊢ Irreducible (minpoly ℤ (cexp (2 * ↑Real.pi * I / ↑n)))
state_after: case hx
R : Type u_1
inst✝ : CommRing R
n✝ n : ℕ
hpos : 0 < n
⊢ IsIntegral ℤ (cexp (2 * ↑Real.pi * I / ↑n))

tactic: exact (isPrimitiveRoot_exp n hpos.ne').isIntegral hpos
state_before: case hx
R : Type u_1
inst✝ : CommRing R
n✝ n : ℕ
hpos : 0 < n
⊢ IsIntegral ℤ (cexp (2 * ↑Real.pi * I / ↑n))
state_after: no goals
Theorem: circleIntegral.integral_smul
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp only [circleIntegral, ← smul_comm a (_ : ℂ) (_ : E), intervalIntegral.integral_smul]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
inst✝³ : CompleteSpace E
𝕜 : Type u_2
inst✝² : RCLike 𝕜
inst✝¹ : NormedSpace 𝕜 E
inst✝ : SMulCommClass 𝕜 ℂ E
a : 𝕜
f : ℂ → E
c : ℂ
R : ℝ
⊢ (∮ (z : ℂ) in C(c, R), a • f z) = a • ∮ (z : ℂ) in C(c, R), f z
state_after: no goals
Theorem: Path.truncate_range
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: rw [← γ.extend_range]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ✝ : Path x y
a b : X
γ : Path a b
t₀ t₁ : ℝ
⊢ range ⇑(γ.truncate t₀ t₁) ⊆ range ⇑γ
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ✝ : Path x y
a b : X
γ : Path a b
t₀ t₁ : ℝ
⊢ range ⇑(γ.truncate t₀ t₁) ⊆ range γ.extend

tactic: simp only [range_subset_iff, SetCoe.exists, SetCoe.forall]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ✝ : Path x y
a b : X
γ : Path a b
t₀ t₁ : ℝ
⊢ range ⇑(γ.truncate t₀ t₁) ⊆ range γ.extend
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ✝ : Path x y
a b : X
γ : Path a b
t₀ t₁ : ℝ
⊢ ∀ (x : ℝ) (h : x ∈ I), (γ.truncate t₀ t₁) ⟨x, h⟩ ∈ range γ.extend

tactic: intro x _hx
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
γ✝ : Path x y
a b : X
γ : Path a b
t₀ t₁ : ℝ
⊢ ∀ (x : ℝ) (h : x ∈ I), (γ.truncate t₀ t₁) ⟨x, h⟩ ∈ range γ.extend
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type u_3
γ✝ : Path x✝ y
a b : X
γ : Path a b
t₀ t₁ x : ℝ
_hx : x ∈ I
⊢ (γ.truncate t₀ t₁) ⟨x, _hx⟩ ∈ range γ.extend

tactic: simp only [DFunLike.coe, Path.truncate, mem_range_self]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type u_3
γ✝ : Path x✝ y
a b : X
γ : Path a b
t₀ t₁ x : ℝ
_hx : x ∈ I
⊢ (γ.truncate t₀ t₁) ⟨x, _hx⟩ ∈ range γ.extend
state_after: no goals
Theorem: Set.Icc_inter_Icc_eq_singleton
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [Icc_inter_Icc, sup_of_le_right hab, inf_of_le_left hbc, Icc_self]
state_before: α : Type u_1
β : Type u_2
inst✝ : Lattice α
a b c a₁ a₂ b₁ b₂ : α
hab : a ≤ b
hbc : b ≤ c
⊢ Icc a b ∩ Icc b c = {b}
state_after: no goals
Theorem: CategoryTheory.Limits.HasZeroObject.zeroIsoInitial_hom
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: ext
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : HasZeroObject C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasInitial C
⊢ zeroIsoInitial.hom = 0
state_after: no goals
Theorem: Filter.HasBasis.nhds'
File: Mathlib/Topology/Filter.lean

tactic: simpa only [Iic_principal] using h.nhds
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l : Filter α
p : ι → Prop
s : ι → Set α
h : l.HasBasis p s
⊢ (𝓝 l).HasBasis p fun i => {l' | s i ∈ l'}
state_after: no goals
Theorem: Matrix.inv_pow'
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: induction' n with n ih
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
n : ℕ
⊢ A⁻¹ ^ n = (A ^ n)⁻¹
state_after: case zero
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
⊢ A⁻¹ ^ 0 = (A ^ 0)⁻¹

case succ
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
n : ℕ
ih : A⁻¹ ^ n = (A ^ n)⁻¹
⊢ A⁻¹ ^ (n + 1) = (A ^ (n + 1))⁻¹

tactic: simp
state_before: case zero
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
⊢ A⁻¹ ^ 0 = (A ^ 0)⁻¹
state_after: no goals

tactic: rw [pow_succ A, mul_inv_rev, ← ih, ← pow_succ']
state_before: case succ
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
n : ℕ
ih : A⁻¹ ^ n = (A ^ n)⁻¹
⊢ A⁻¹ ^ (n + 1) = (A ^ (n + 1))⁻¹
state_after: no goals
Theorem: Tree.coe_treesOfNumNodesEq
File: Mathlib/Combinatorics/Enumerative/Catalan.lean

tactic: simp
state_before: n : ℕ
⊢ ∀ (x : Tree Unit), x ∈ ↑(treesOfNumNodesEq n) ↔ x ∈ {x | x.numNodes = n}
state_after: no goals
Theorem: LinearMap.map_smul_inv
File: Mathlib/Algebra/Module/LinearMap/Defs.lean

tactic: simp
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
S : Type u_6
S₃ : Type u_7
T : Type u_8
M : Type u_9
M₁ : Type u_10
M₂ : Type u_11
M₃ : Type u_12
N₁ : Type u_13
N₂ : Type u_14
N₃ : Type u_15
ι : Type u_16
inst✝¹² : Semiring R
inst✝¹¹ : Semiring S
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : AddCommMonoid M₁
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid N₁
inst✝⁵ : AddCommMonoid N₂
inst✝⁴ : AddCommMonoid N₃
inst✝³ : Module R M
inst✝² : Module R M₂
inst✝¹ : Module S M₃
σ : R →+* S
fₗ gₗ : M →ₗ[R] M₂
f g : M →ₛₗ[σ] M₃
σ' : S →+* R
inst✝ : RingHomInvPair σ σ'
c : S
x : M
⊢ c • f x = f (σ' c • x)
state_after: no goals
Theorem: NonUnitalSubsemiring.coe_closure_eq
File: Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean

tactic: simp [← Subsemigroup.nonUnitalSubsemiringClosure_toAddSubmonoid,
  Subsemigroup.nonUnitalSubsemiringClosure_eq_closure]
state_before: R : Type u
S : Type v
T : Type w
inst✝² : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝¹ : NonUnitalNonAssocSemiring S
inst✝ : NonUnitalNonAssocSemiring T
s : Set R
⊢ ↑(closure s) = ↑(AddSubmonoid.closure ↑(Subsemigroup.closure s))
state_after: no goals
Theorem: List.sum_int_mod
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: induction l <;> simp [Int.add_emod, *]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
l : List ℤ
n : ℤ
⊢ l.sum % n = (map (fun x => x % n) l).sum % n
state_after: no goals
Theorem: AffineSubspace.coe_direction_eq_vsub_set_left
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: ext v
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
⊢ ↑s.direction = (fun x => p -ᵥ x) '' ↑s
state_after: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ ↑s.direction ↔ v ∈ (fun x => p -ᵥ x) '' ↑s

tactic: rw [SetLike.mem_coe, ← Submodule.neg_mem_iff, ← SetLike.mem_coe,
  coe_direction_eq_vsub_set_right hp, Set.mem_image, Set.mem_image]
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ ↑s.direction ↔ v ∈ (fun x => p -ᵥ x) '' ↑s
state_after: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ (∃ x ∈ ↑s, x -ᵥ p = -v) ↔ ∃ x ∈ ↑s, p -ᵥ x = v

tactic: conv_lhs =>
  congr
  ext
  rw [← neg_vsub_eq_vsub_rev, neg_inj]
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ (∃ x ∈ ↑s, x -ᵥ p = -v) ↔ ∃ x ∈ ↑s, p -ᵥ x = v
state_after: no goals