1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: HomologicalComplex.extend.d_none_eq_zero'
File: Mathlib/Algebra/Homology/Embedding/Extend.lean

tactic: subst hj
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 ι
hj : j = 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'
i : Option ι
⊢ d K i none = 0

tactic: cases i <;> 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'
i : Option ι
⊢ d K i none = 0
state_after: no goals
Theorem: Submodule.exists_dual_map_eq_bot_of_nmem
File: Mathlib/LinearAlgebra/Dual.lean

tactic: suffices ∃ f : Dual R (M ⧸ p), f (p.mkQ x) ≠ 0 by
  obtain ⟨f, hf⟩ := this; exact ⟨f.comp p.mkQ, hf, by simp [Submodule.map_comp]⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
⊢ ∃ f, f x ≠ 0 ∧ map f p = ⊥
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
⊢ ∃ f, f (p.mkQ x) ≠ 0

tactic: rwa [← Submodule.Quotient.mk_eq_zero, ← Submodule.mkQ_apply,
  ← forall_dual_apply_eq_zero_iff (K := R), not_forall] at hx
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
⊢ ∃ f, f (p.mkQ x) ≠ 0
state_after: no goals

tactic: obtain ⟨f, hf⟩ := this
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
this : ∃ f, f (p.mkQ x) ≠ 0
⊢ ∃ f, f x ≠ 0 ∧ map f p = ⊥
state_after: case intro
R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
f : Dual R (M ⧸ p)
hf : f (p.mkQ x) ≠ 0
⊢ ∃ f, f x ≠ 0 ∧ map f p = ⊥

tactic: exact ⟨f.comp p.mkQ, hf, by simp [Submodule.map_comp]⟩
state_before: case intro
R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
f : Dual R (M ⧸ p)
hf : f (p.mkQ x) ≠ 0
⊢ ∃ f, f x ≠ 0 ∧ map f p = ⊥
state_after: no goals

tactic: simp [Submodule.map_comp]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
p : Submodule R M
x : M
hx : x ∉ p
hp' : Free R (M ⧸ p)
f : Dual R (M ⧸ p)
hf : f (p.mkQ x) ≠ 0
⊢ map (f ∘ₗ p.mkQ) p = ⊥
state_after: no goals
Theorem: IsOpenMap.isOpen_range
File: Mathlib/Topology/Maps.lean

tactic: rw [← image_univ]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : IsOpenMap f
⊢ IsOpen (range f)
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : IsOpenMap f
⊢ IsOpen (f '' univ)

tactic: exact hf _ isOpen_univ
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : IsOpenMap f
⊢ IsOpen (f '' univ)
state_after: no goals
Theorem: PMF.integral_eq_sum
File: Mathlib/Probability/ProbabilityMassFunction/Integrals.lean

tactic: rw [integral_fintype _ (.of_finite _ f)]
state_before: α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
⊢ ∫ (a : α), f a ∂p.toMeasure = ∑ a : α, (p a).toReal • f a
state_after: α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
⊢ ∑ x : α, (p.toMeasure {x}).toReal • f x = ∑ a : α, (p a).toReal • f a

tactic: congr with x
state_before: α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
⊢ ∑ x : α, (p.toMeasure {x}).toReal • f x = ∑ a : α, (p a).toReal • f a
state_after: case e_f.h
α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
x : α
⊢ (p.toMeasure {x}).toReal • f x = (p x).toReal • f x

tactic: congr 2
state_before: case e_f.h
α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
x : α
⊢ (p.toMeasure {x}).toReal • f x = (p x).toReal • f x
state_after: case e_f.h.e_a.e_a
α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
x : α
⊢ p.toMeasure {x} = p x

tactic: exact PMF.toMeasure_apply_singleton p x (MeasurableSet.singleton _)
state_before: case e_f.h.e_a.e_a
α : Type u_1
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MeasurableSingletonClass α
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : Fintype α
p : PMF α
f : α → E
x : α
⊢ p.toMeasure {x} = p x
state_after: no goals
Theorem: ProbabilityTheory.kernel.withDensity_congr_ae
File: Mathlib/Probability/Kernel/WithDensity.lean

tactic: ext a
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f✝ : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
f g : α → β → ℝ≥0∞
hf : Measurable (Function.uncurry f)
hg : Measurable (Function.uncurry g)
hfg : ∀ (a : α), f a =ᶠ[ae (κ a)] g a
⊢ withDensity κ f = withDensity κ g
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f✝ : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
f g : α → β → ℝ≥0∞
hf : Measurable (Function.uncurry f)
hg : Measurable (Function.uncurry g)
hfg : ∀ (a : α), f a =ᶠ[ae (κ a)] g a
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ((withDensity κ f) a) s✝ = ((withDensity κ g) a) s✝

tactic: rw [kernel.withDensity_apply _ hf,kernel.withDensity_apply _ hg, withDensity_congr_ae (hfg a)]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ✝ : ↥(kernel α β)
f✝ : α → β → ℝ≥0∞
κ : ↥(kernel α β)
inst✝ : IsSFiniteKernel κ
f g : α → β → ℝ≥0∞
hf : Measurable (Function.uncurry f)
hg : Measurable (Function.uncurry g)
hfg : ∀ (a : α), f a =ᶠ[ae (κ a)] g a
a : α
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ((withDensity κ f) a) s✝ = ((withDensity κ g) a) s✝
state_after: no goals
Theorem: MeasureTheory.hasPDF_of_map_eq_withDensity
File: Mathlib/Probability/Density.lean

tactic: refine ⟨hX, ?_, ?_⟩ <;> rw [h]
state_before: Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ HasPDF X ℙ μ
state_after: case refine_1
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ (μ.withDensity f).HaveLebesgueDecomposition μ

case refine_2
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ μ.withDensity f ≪ μ

tactic: rw [withDensity_congr_ae hf.ae_eq_mk]
state_before: case refine_1
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ (μ.withDensity f).HaveLebesgueDecomposition μ
state_after: case refine_1
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ (μ.withDensity (AEMeasurable.mk f hf)).HaveLebesgueDecomposition μ

tactic: exact haveLebesgueDecomposition_withDensity μ hf.measurable_mk
state_before: case refine_1
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ (μ.withDensity (AEMeasurable.mk f hf)).HaveLebesgueDecomposition μ
state_after: no goals

tactic: exact withDensity_absolutelyContinuous μ f
state_before: case refine_2
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
x✝ : MeasurableSpace Ω
X : Ω → E
ℙ : Measure Ω
μ : Measure E
hX : AEMeasurable X ℙ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
h : map X ℙ = μ.withDensity f
⊢ μ.withDensity f ≪ μ
state_after: no goals
Theorem: Batteries.AssocList.foldlM_eq
File: .lake/packages/batteries/Batteries/Data/AssocList.lean

tactic: induction l generalizing init <;> simp [*, foldlM]
state_before: m : Type u_1 → Type u_2
δ : Type u_1
α : Type u_3
β : Type u_4
inst✝ : Monad m
f : δ → α → β → m δ
init : δ
l : AssocList α β
⊢ foldlM f init l =
    List.foldlM
      (fun d x =>
        match x with
        | (a, b) => f d a b)
      init l.toList
state_after: no goals
Theorem: Filter.prod_map_left
File: Mathlib/Order/Filter/Prod.lean

tactic: rw [← prod_map_map_eq', map_id]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f✝ : Filter α
g : Filter β
f : α → β
F : Filter α
G : Filter γ
⊢ map f F ×ˢ G = map (Prod.map f id) (F ×ˢ G)
state_after: no goals
Theorem: Units.divp_sub_divp
File: Mathlib/Algebra/Ring/Units.lean

tactic: simp only [sub_eq_add_neg, neg_divp, divp_add_divp, mul_neg]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : CommRing α
a b : α
u₁ u₂ : αˣ
⊢ a /ₚ u₁ - b /ₚ u₂ = (a * ↑u₂ - ↑u₁ * b) /ₚ (u₁ * u₂)
state_after: no goals
Theorem: Int.add_modEq_left
File: Mathlib/Data/Int/ModEq.lean

tactic: simp
state_before: m n a b c d : ℤ
⊢ n ∣ n + a - a
state_after: no goals
Theorem: Lagrange.X_sub_C_dvd_nodal
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: classical exact nodal_eq_mul_nodal_erase hi
state_before: R : Type u_1
inst✝ : CommRing R
ι : Type u_2
s : Finset ι
v✝ v : ι → R
i : ι
hi : i ∈ s
⊢ nodal s v = (X - C (v i)) * ?m.117004
state_after: no goals

tactic: exact nodal_eq_mul_nodal_erase hi
state_before: R : Type u_1
inst✝ : CommRing R
ι : Type u_2
s : Finset ι
v✝ v : ι → R
i : ι
hi : i ∈ s
⊢ nodal s v = (X - C (v i)) * ?m.117004
state_after: no goals
Theorem: MeasureTheory.toReal_laverage
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: rw [average_eq, laverage_eq, smul_eq_mul, toReal_div, div_eq_inv_mul, ←
  integral_toReal hf (hf'.mono fun _ => lt_top_iff_ne_top.2)]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s t : Set α
f : α → ℝ≥0∞
hf : AEMeasurable f μ
hf' : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
⊢ (⨍⁻ (x : α), f x ∂μ).toReal = ⨍ (x : α), (f x).toReal ∂μ
state_after: no goals
Theorem: mul_le_of_nonneg_of_le_div
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: obtain rfl | hc := hc.eq_or_lt
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ c
h : a ≤ b / c
⊢ a * c ≤ b
state_after: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ 0
h : a ≤ b / 0
⊢ a * 0 ≤ b

case inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc✝ : 0 ≤ c
h : a ≤ b / c
hc : 0 < c
⊢ a * c ≤ b

tactic: simpa using hb
state_before: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b d e : α
m n : ℤ
hb : 0 ≤ b
hc : 0 ≤ 0
h : a ≤ b / 0
⊢ a * 0 ≤ b
state_after: no goals

tactic: rwa [le_div_iff hc] at h
state_before: case inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
hb : 0 ≤ b
hc✝ : 0 ≤ c
h : a ≤ b / c
hc : 0 < c
⊢ a * c ≤ b
state_after: no goals
Theorem: PowerSeries.nat_le_order
File: Mathlib/RingTheory/PowerSeries/Order.lean

tactic: by_contra H
state_before: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
⊢ ↑n ≤ φ.order
state_after: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : ¬↑n ≤ φ.order
⊢ False

tactic: rw [not_le] at H
state_before: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : ¬↑n ≤ φ.order
⊢ False
state_after: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : φ.order < ↑n
⊢ False

tactic: have : (order φ).Dom := PartENat.dom_of_le_natCast H.le
state_before: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : φ.order < ↑n
⊢ False
state_after: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : φ.order < ↑n
this : φ.order.Dom
⊢ False

tactic: rw [← PartENat.natCast_get this, PartENat.coe_lt_coe] at H
state_before: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
H : φ.order < ↑n
this : φ.order.Dom
⊢ False
state_after: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
this : φ.order.Dom
H : φ.order.get this < n
⊢ False

tactic: exact coeff_order this (h _ H)
state_before: R : Type u_1
inst✝ : Semiring R
φ✝ φ : R⟦X⟧
n : ℕ
h : ∀ i < n, (coeff R i) φ = 0
this : φ.order.Dom
H : φ.order.get this < n
⊢ False
state_after: no goals
Theorem: CochainComplex.mappingCone.inl_desc
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: simp
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
α : Cochain F K (-1)
β : G ⟶ K
eq : δ (-1) 0 α = Cochain.ofHom (φ ≫ β)
⊢ (inl φ).comp (Cochain.ofHom (desc φ α β eq)) ⋯ = α
state_after: no goals
Theorem: pow_dvd_pow_of_dvd
File: Mathlib/Algebra/Divisibility/Basic.lean

tactic: rw [pow_zero, pow_zero]
state_before: α : Type u_1
inst✝ : CommMonoid α
a b : α
h : a ∣ b
⊢ a ^ 0 ∣ b ^ 0
state_after: no goals

tactic: rw [pow_succ, pow_succ]
state_before: α : Type u_1
inst✝ : CommMonoid α
a b : α
h : a ∣ b
n : ℕ
⊢ a ^ (n + 1) ∣ b ^ (n + 1)
state_after: α : Type u_1
inst✝ : CommMonoid α
a b : α
h : a ∣ b
n : ℕ
⊢ a ^ n * a ∣ b ^ n * b

tactic: exact mul_dvd_mul (pow_dvd_pow_of_dvd h n) h
state_before: α : Type u_1
inst✝ : CommMonoid α
a b : α
h : a ∣ b
n : ℕ
⊢ a ^ n * a ∣ b ^ n * b
state_after: no goals
Theorem: range_circleMap
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp (config := { unfoldPartialApp := true }) only [← image_vadd, ← image_smul, ← range_comp,
  vadd_eq_add, circleMap, Function.comp_def, real_smul]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
⊢ range (circleMap c R) = c +ᵥ R • range fun θ => cexp (↑θ * I)
state_after: no goals

tactic: rw [Complex.range_exp_mul_I, smul_sphere R 0 zero_le_one]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
⊢ (c +ᵥ R • range fun θ => cexp (↑θ * I)) = sphere c |R|
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
⊢ c +ᵥ sphere (R • 0) (‖R‖ * 1) = sphere c |R|

tactic: simp
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
⊢ c +ᵥ sphere (R • 0) (‖R‖ * 1) = sphere c |R|
state_after: no goals
Theorem: tendstoLocallyUniformly_iff_filter
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simpa [← tendstoLocallyUniformlyOn_univ, ← nhdsWithin_univ] using
  @tendstoLocallyUniformlyOn_iff_filter _ _ _ _ F f univ p _
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 α
⊢ TendstoLocallyUniformly F f p ↔ ∀ (x : α), TendstoUniformlyOnFilter F f p (𝓝 x)
state_after: no goals
Theorem: SimpleGraph.Walk.getVert_append
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p generalizing i with
| nil => simp
| cons h p ih => cases i <;> simp [getVert, ih, Nat.succ_lt_succ_iff]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : G.Walk u v
q : G.Walk v w
i : ℕ
⊢ (p.append q).getVert i = if i < p.length then p.getVert i else q.getVert (i - p.length)
state_after: no goals

tactic: simp
state_before: case nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w u✝ : V
q : G.Walk u✝ w
i : ℕ
⊢ (nil.append q).getVert i = if i < nil.length then nil.getVert i else q.getVert (i - nil.length)
state_after: no goals

tactic: cases i <;> simp [getVert, ih, Nat.succ_lt_succ_iff]
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w u✝ v✝ w✝ : V
h : G.Adj u✝ v✝
p : G.Walk v✝ w✝
ih :
  ∀ (q : G.Walk w✝ w) (i : ℕ), (p.append q).getVert i = if i < p.length then p.getVert i else q.getVert (i - p.length)
q : G.Walk w✝ w
i : ℕ
⊢ ((cons h p).append q).getVert i =
    if i < (cons h p).length then (cons h p).getVert i else q.getVert (i - (cons h p).length)
state_after: no goals
Theorem: disjoint_compl_compl_right_iff
File: Mathlib/Order/Heyting/Basic.lean

tactic: simp_rw [← le_compl_iff_disjoint_right, compl_compl_compl]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a b c : α
⊢ Disjoint a bᶜᶜ ↔ Disjoint a b
state_after: no goals
Theorem: Option.map_comm
File: Mathlib/Data/Option/Basic.lean

tactic: rw [map_map, h, ← map_map]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f₁ : α → β
f₂ : α → γ
g₁ : β → δ
g₂ : γ → δ
h : g₁ ∘ f₁ = g₂ ∘ f₂
a : α
⊢ Option.map g₁ (Option.map f₁ (some a)) = Option.map g₂ (Option.map f₂ (some a))
state_after: no goals
Theorem: Real.borel_eq_generateFrom_Iio_rat
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean

tactic: rw [borel_eq_generateFrom_Iio]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ borel ℝ = generateFrom (⋃ a, {Iio ↑a})
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ generateFrom (range Iio) = generateFrom (⋃ a, {Iio ↑a})

tactic: refine le_antisymm
  (generateFrom_le ?_)
  (generateFrom_mono <| iUnion_subset fun q ↦ singleton_subset_iff.mpr <| mem_range_self _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ generateFrom (range Iio) = generateFrom (⋃ a, {Iio ↑a})
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ ∀ t ∈ range Iio, MeasurableSet t

tactic: rintro _ ⟨a, rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
⊢ ∀ t ∈ range Iio, MeasurableSet t
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
⊢ MeasurableSet (Iio a)

tactic: have : IsLUB (range ((↑) : ℚ → ℝ) ∩ Iio a) a := by
  simp [isLUB_iff_le_iff, mem_upperBounds, ← le_iff_forall_rat_lt_imp_le]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
⊢ MeasurableSet (Iio a)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
this : IsLUB (range Rat.cast ∩ Iio a) a
⊢ MeasurableSet (Iio a)

tactic: rw [← this.biUnion_Iio_eq, ← image_univ, ← image_inter_preimage, univ_inter, biUnion_image]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
this : IsLUB (range Rat.cast ∩ Iio a) a
⊢ MeasurableSet (Iio a)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
this : IsLUB (range Rat.cast ∩ Iio a) a
⊢ MeasurableSet (⋃ y ∈ Rat.cast ⁻¹' Iio a, Iio ↑y)

tactic: exact MeasurableSet.biUnion (to_countable _)
  fun b _ => GenerateMeasurable.basic (Iio (b : ℝ)) (by simp)
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
this : IsLUB (range Rat.cast ∩ Iio a) a
⊢ MeasurableSet (⋃ y ∈ Rat.cast ⁻¹' Iio a, Iio ↑y)
state_after: no goals

tactic: simp [isLUB_iff_le_iff, mem_upperBounds, ← le_iff_forall_rat_lt_imp_le]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
⊢ IsLUB (range Rat.cast ∩ Iio a) a
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α
a : ℝ
this : IsLUB (range Rat.cast ∩ Iio a) a
b : ℚ
x✝ : b ∈ Rat.cast ⁻¹' Iio a
⊢ Iio ↑b ∈ ⋃ a, {Iio ↑a}
state_after: no goals
Theorem: AddSubmonoid.closure_pow
File: Mathlib/Algebra/Group/Submonoid/Pointwise.lean

tactic: rw [pow_zero, pow_zero, one_eq_closure_one_set]
state_before: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : Semiring R
s : Set R
⊢ closure s ^ 0 = closure (s ^ 0)
state_after: no goals

tactic: rw [pow_succ, pow_succ, closure_pow s n, closure_mul_closure]
state_before: α : Type u_1
G : Type u_2
M : Type u_3
R : Type u_4
A : Type u_5
inst✝² : Monoid M
inst✝¹ : AddMonoid A
inst✝ : Semiring R
s : Set R
n : ℕ
⊢ closure s ^ (n + 1) = closure (s ^ (n + 1))
state_after: no goals
Theorem: Int.natAbs_le_self_sq
File: Mathlib/Algebra/Order/Group/Int.lean

tactic: rw [← Int.natAbs_sq a, sq]
state_before: a : ℤ
⊢ ↑a.natAbs ≤ a ^ 2
state_after: a : ℤ
⊢ ↑a.natAbs ≤ ↑a.natAbs * ↑a.natAbs

tactic: norm_cast
state_before: a : ℤ
⊢ ↑a.natAbs ≤ ↑a.natAbs * ↑a.natAbs
state_after: a : ℤ
⊢ a.natAbs ≤ a.natAbs * a.natAbs

tactic: apply Nat.le_mul_self
state_before: a : ℤ
⊢ a.natAbs ≤ a.natAbs * a.natAbs
state_after: no goals