1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.FiniteMeasure.tendsto_zero_of_tendsto_zero_mass
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: rw [tendsto_iff_forall_testAgainstNN_tendsto]
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
⊢ Tendsto μs F (𝓝 0)
state_after: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
⊢ ∀ (f : Ω →ᵇ ℝ≥0), Tendsto (fun i => (μs i).testAgainstNN f) F (𝓝 (testAgainstNN 0 f))

tactic: intro f
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
⊢ ∀ (f : Ω →ᵇ ℝ≥0), Tendsto (fun i => (μs i).testAgainstNN f) F (𝓝 (testAgainstNN 0 f))
state_after: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
f : Ω →ᵇ ℝ≥0
⊢ Tendsto (fun i => (μs i).testAgainstNN f) F (𝓝 (testAgainstNN 0 f))

tactic: convert tendsto_zero_testAgainstNN_of_tendsto_zero_mass mass_lim f
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
f : Ω →ᵇ ℝ≥0
⊢ Tendsto (fun i => (μs i).testAgainstNN f) F (𝓝 (testAgainstNN 0 f))
state_after: case h.e'_5.h.e'_3
Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
f : Ω →ᵇ ℝ≥0
⊢ testAgainstNN 0 f = 0

tactic: rw [zero_testAgainstNN_apply]
state_before: case h.e'_5.h.e'_3
Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
γ : Type u_3
F : Filter γ
μs : γ → FiniteMeasure Ω
mass_lim : Tendsto (fun i => (μs i).mass) F (𝓝 0)
f : Ω →ᵇ ℝ≥0
⊢ testAgainstNN 0 f = 0
state_after: no goals
Theorem: Fin.nonempty_embedding_iff
File: Mathlib/Data/Fin/Basic.lean

tactic: refine ⟨fun h ↦ ?_, fun h ↦ ⟨castLEEmb h⟩⟩
state_before: n m : ℕ
⊢ Nonempty (Fin n ↪ Fin m) ↔ n ≤ m
state_after: n m : ℕ
h : Nonempty (Fin n ↪ Fin m)
⊢ n ≤ m

tactic: induction n generalizing m with
| zero => exact m.zero_le
| succ n ihn =>
  cases' h with e
  rcases exists_eq_succ_of_ne_zero (pos_iff_nonempty.2 (Nonempty.map e inferInstance)).ne'
    with ⟨m, rfl⟩
  refine Nat.succ_le_succ <| ihn ⟨?_⟩
  refine ⟨fun i ↦ (e.setValue 0 0 i.succ).pred (mt e.setValue_eq_iff.1 i.succ_ne_zero),
    fun i j h ↦ ?_⟩
  simpa only [pred_inj, EmbeddingLike.apply_eq_iff_eq, succ_inj] using h
state_before: n m : ℕ
h : Nonempty (Fin n ↪ Fin m)
⊢ n ≤ m
state_after: no goals

tactic: exact m.zero_le
state_before: case zero
m : ℕ
h : Nonempty (Fin 0 ↪ Fin m)
⊢ 0 ≤ m
state_after: no goals

tactic: cases' h with e
state_before: case succ
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
h : Nonempty (Fin (n + 1) ↪ Fin m)
⊢ n + 1 ≤ m
state_after: case succ.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m
⊢ n + 1 ≤ m

tactic: rcases exists_eq_succ_of_ne_zero (pos_iff_nonempty.2 (Nonempty.map e inferInstance)).ne'
  with ⟨m, rfl⟩
state_before: case succ.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m
⊢ n + 1 ≤ m
state_after: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
⊢ n + 1 ≤ m.succ

tactic: refine Nat.succ_le_succ <| ihn ⟨?_⟩
state_before: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
⊢ n + 1 ≤ m.succ
state_after: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
⊢ Fin n ↪ Fin m

tactic: refine ⟨fun i ↦ (e.setValue 0 0 i.succ).pred (mt e.setValue_eq_iff.1 i.succ_ne_zero),
  fun i j h ↦ ?_⟩
state_before: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
⊢ Fin n ↪ Fin m
state_after: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
i j : Fin n
h : (fun i => ((e.setValue 0 0) i.succ).pred ⋯) i = (fun i => ((e.setValue 0 0) i.succ).pred ⋯) j
⊢ i = j

tactic: simpa only [pred_inj, EmbeddingLike.apply_eq_iff_eq, succ_inj] using h
state_before: case succ.intro.intro
n : ℕ
ihn : ∀ {m : ℕ}, Nonempty (Fin n ↪ Fin m) → n ≤ m
m : ℕ
e : Fin (n + 1) ↪ Fin m.succ
i j : Fin n
h : (fun i => ((e.setValue 0 0) i.succ).pred ⋯) i = (fun i => ((e.setValue 0 0) i.succ).pred ⋯) j
⊢ i = j
state_after: no goals
Theorem: Stonean.finiteCoproduct.hom_ext
File: Mathlib/Topology/Category/Stonean/Limits.lean

tactic: ext ⟨a, x⟩
state_before: α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
h : ∀ (a : α), ι X a ≫ f = ι X a ≫ g
⊢ f = g
state_after: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
h : ∀ (a : α), ι X a ≫ f = ι X a ≫ g
a : α
x : CoeSort.coe (X a)
⊢ f ⟨a, x⟩ = g ⟨a, x⟩

tactic: specialize h a
state_before: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
h : ∀ (a : α), ι X a ≫ f = ι X a ≫ g
a : α
x : CoeSort.coe (X a)
⊢ f ⟨a, x⟩ = g ⟨a, x⟩
state_after: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
a : α
x : CoeSort.coe (X a)
h : ι X a ≫ f = ι X a ≫ g
⊢ f ⟨a, x⟩ = g ⟨a, x⟩

tactic: apply_fun (fun q => q x) at h
state_before: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
a : α
x : CoeSort.coe (X a)
h : ι X a ≫ f = ι X a ≫ g
⊢ f ⟨a, x⟩ = g ⟨a, x⟩
state_after: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
a : α
x : CoeSort.coe (X a)
h : (ι X a ≫ f) x = (ι X a ≫ g) x
⊢ f ⟨a, x⟩ = g ⟨a, x⟩

tactic: exact h
state_before: case w.mk
α : Type
inst✝ : Finite α
B✝ : Stonean
X : α → Stonean
B : Stonean
f g : finiteCoproduct X ⟶ B
a : α
x : CoeSort.coe (X a)
h : (ι X a ≫ f) x = (ι X a ≫ g) x
⊢ f ⟨a, x⟩ = g ⟨a, x⟩
state_after: no goals
Theorem: Polynomial.natDegree_C_mul_eq_of_mul_ne_zero
File: Mathlib/Algebra/Polynomial/Degree/Lemmas.lean

tactic: refine eq_natDegree_of_le_mem_support (natDegree_C_mul_le a p) ?_
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a * p.leadingCoeff ≠ 0
⊢ (C a * p).natDegree = p.natDegree
state_after: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a * p.leadingCoeff ≠ 0
⊢ p.natDegree ∈ (C a * p).support

tactic: refine mem_support_iff.mpr ?_
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a * p.leadingCoeff ≠ 0
⊢ p.natDegree ∈ (C a * p).support
state_after: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a * p.leadingCoeff ≠ 0
⊢ (C a * p).coeff p.natDegree ≠ 0

tactic: rwa [coeff_C_mul]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
h : a * p.leadingCoeff ≠ 0
⊢ (C a * p).coeff p.natDegree ≠ 0
state_after: no goals
Theorem: Submonoid.powers_eq_closure
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

tactic: ext
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : Monoid M
a n : M
⊢ powers n = closure {n}
state_after: case h
M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : Monoid M
a n x✝ : M
⊢ x✝ ∈ powers n ↔ x✝ ∈ closure {n}

tactic: exact mem_closure_singleton.symm
state_before: case h
M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : Monoid M
a n x✝ : M
⊢ x✝ ∈ powers n ↔ x✝ ∈ closure {n}
state_after: no goals
Theorem: PadicSeq.norm_neg
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: simp
state_before: p : ℕ
hp : Fact (Nat.Prime p)
a : PadicSeq p
⊢ ∀ (k : ℕ), padicNorm p (↑(-a) k) = padicNorm p (↑a k)
state_after: no goals
Theorem: Set.iUnion₂_inter
File: Mathlib/Data/Set/Lattice.lean

tactic: simp_rw [iUnion_inter]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
s : (i : ι) → κ i → Set α
t : Set α
⊢ (⋃ i, ⋃ j, s i j) ∩ t = ⋃ i, ⋃ j, s i j ∩ t
state_after: no goals
Theorem: FractionalIdeal.mul_le
File: Mathlib/RingTheory/FractionalIdeal/Basic.lean

tactic: simp only [mul_def]
state_before: R : Type u_1
inst✝² : CommRing R
S : Submonoid R
P : Type u_2
inst✝¹ : CommRing P
inst✝ : Algebra R P
loc : IsLocalization S P
I J K : FractionalIdeal S P
⊢ I * J ≤ K ↔ ∀ i ∈ I, ∀ j ∈ J, i * j ∈ K
state_after: R : Type u_1
inst✝² : CommRing R
S : Submonoid R
P : Type u_2
inst✝¹ : CommRing P
inst✝ : Algebra R P
loc : IsLocalization S P
I J K : FractionalIdeal S P
⊢ ⟨↑I * ↑J, ⋯⟩ ≤ K ↔ ∀ i ∈ I, ∀ j ∈ J, i * j ∈ K

tactic: exact Submodule.mul_le
state_before: R : Type u_1
inst✝² : CommRing R
S : Submonoid R
P : Type u_2
inst✝¹ : CommRing P
inst✝ : Algebra R P
loc : IsLocalization S P
I J K : FractionalIdeal S P
⊢ ⟨↑I * ↑J, ⋯⟩ ≤ K ↔ ∀ i ∈ I, ∀ j ∈ J, i * j ∈ K
state_after: no goals
Theorem: CategoryTheory.Discrete.functor_map_id
File: Mathlib/CategoryTheory/DiscreteCategory.lean

tactic: have h : f = 𝟙 j := by aesop_cat
state_before: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
⊢ F.map f = 𝟙 (F.obj j)
state_after: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
h : f = 𝟙 j
⊢ F.map f = 𝟙 (F.obj j)

tactic: rw [h]
state_before: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
h : f = 𝟙 j
⊢ F.map f = 𝟙 (F.obj j)
state_after: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
h : f = 𝟙 j
⊢ F.map (𝟙 j) = 𝟙 (F.obj j)

tactic: simp
state_before: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
h : f = 𝟙 j
⊢ F.map (𝟙 j) = 𝟙 (F.obj j)
state_after: no goals

tactic: aesop_cat
state_before: J : Type v₁
C : Type u₂
inst✝ : Category.{v₂, u₂} C
F : Discrete J ⥤ C
j : Discrete J
f : j ⟶ j
⊢ f = 𝟙 j
state_after: no goals
Theorem: Lagrange.nodal_ne_zero
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rcases s.eq_empty_or_nonempty with (rfl | h)
state_before: R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
⊢ nodal s v ≠ 0
state_after: case inl
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
v : ι → R
inst✝ : Nontrivial R
⊢ nodal ∅ v ≠ 0

case inr
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
h : s.Nonempty
⊢ nodal s v ≠ 0

tactic: exact one_ne_zero
state_before: case inl
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
v : ι → R
inst✝ : Nontrivial R
⊢ nodal ∅ v ≠ 0
state_after: no goals

tactic: apply ne_zero_of_natDegree_gt (n := 0)
state_before: case inr
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
h : s.Nonempty
⊢ nodal s v ≠ 0
state_after: case inr
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
h : s.Nonempty
⊢ 0 < (nodal s v).natDegree

tactic: simp only [natDegree_nodal, h.card_pos]
state_before: case inr
R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : Nontrivial R
h : s.Nonempty
⊢ 0 < (nodal s v).natDegree
state_after: no goals
Theorem: HurwitzZeta.completedHurwitzZetaEven_residue_one
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: have h1 : Tendsto (fun s : ℂ ↦ (s - ↑(1  / 2 : ℝ)) * _) (𝓝[≠] ↑(1  / 2 : ℝ))
  (𝓝 ((1 : ℂ) * (1 : ℂ))) := (hurwitzEvenFEPair a).Λ_residue_k
state_before: a : UnitAddCircle
⊢ Tendsto (fun s => (s - 1) * completedHurwitzZetaEven a s) (𝓝[≠] 1) (𝓝 1)
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => (s - ↑(1 / 2)) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] ↑(1 / 2)) (𝓝 (1 * 1))
⊢ Tendsto (fun s => (s - 1) * completedHurwitzZetaEven a s) (𝓝[≠] 1) (𝓝 1)

tactic: simp only [push_cast, one_mul] at h1
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => (s - ↑(1 / 2)) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] ↑(1 / 2)) (𝓝 (1 * 1))
⊢ Tendsto (fun s => (s - 1) * completedHurwitzZetaEven a s) (𝓝[≠] 1) (𝓝 1)
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] (1 / 2)) (𝓝 1)
⊢ Tendsto (fun s => (s - 1) * completedHurwitzZetaEven a s) (𝓝[≠] 1) (𝓝 1)

tactic: refine (h1.comp <| tendsto_div_two_punctured_nhds 1).congr (fun s ↦ ?_)
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] (1 / 2)) (𝓝 1)
⊢ Tendsto (fun s => (s - 1) * completedHurwitzZetaEven a s) (𝓝[≠] 1) (𝓝 1)
state_after: a : UnitAddCircle
h1 : Tendsto (fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] (1 / 2)) (𝓝 1)
s : ℂ
⊢ ((fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) ∘ fun s => s / 2) s = (s - 1) * completedHurwitzZetaEven a s

tactic: rw [completedHurwitzZetaEven, Function.comp_apply, ← sub_div, div_mul_eq_mul_div, mul_div_assoc]
state_before: a : UnitAddCircle
h1 : Tendsto (fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) (𝓝[≠] (1 / 2)) (𝓝 1)
s : ℂ
⊢ ((fun s => (s - 1 / 2) * (hurwitzEvenFEPair a).Λ s) ∘ fun s => s / 2) s = (s - 1) * completedHurwitzZetaEven a s
state_after: no goals
Theorem: EuclideanDomain.div_dvd_of_dvd
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: by_cases hq : q = 0
state_before: R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
⊢ p / q ∣ p
state_after: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : q = 0
⊢ p / q ∣ p

case neg
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : ¬q = 0
⊢ p / q ∣ p

tactic: use q
state_before: case neg
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : ¬q = 0
⊢ p / q ∣ p
state_after: case h
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : ¬q = 0
⊢ p = p / q * q

tactic: rw [mul_comm, ← EuclideanDomain.mul_div_assoc _ hpq, mul_comm, mul_div_cancel_right₀ _ hq]
state_before: case h
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : ¬q = 0
⊢ p = p / q * q
state_after: no goals

tactic: rw [hq, zero_dvd_iff] at hpq
state_before: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : q ∣ p
hq : q = 0
⊢ p / q ∣ p
state_after: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : p = 0
hq : q = 0
⊢ p / q ∣ p

tactic: rw [hpq]
state_before: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : p = 0
hq : q = 0
⊢ p / q ∣ p
state_after: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : p = 0
hq : q = 0
⊢ 0 / q ∣ 0

tactic: exact dvd_zero _
state_before: case pos
R : Type u
inst✝ : EuclideanDomain R
p q : R
hpq : p = 0
hq : q = 0
⊢ 0 / q ∣ 0
state_after: no goals
Theorem: exists_nonneg_right_iff_sameRay
File: Mathlib/LinearAlgebra/Ray.lean

tactic: rw [SameRay.sameRay_comm]
state_before: R : Type u_1
inst✝² : LinearOrderedField R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
hy : y ≠ 0
⊢ (∃ r, 0 ≤ r ∧ x = r • y) ↔ SameRay R x y
state_after: R : Type u_1
inst✝² : LinearOrderedField R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
hy : y ≠ 0
⊢ (∃ r, 0 ≤ r ∧ x = r • y) ↔ SameRay R y x

tactic: simp_rw [eq_comm (a := x)]
state_before: R : Type u_1
inst✝² : LinearOrderedField R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
hy : y ≠ 0
⊢ (∃ r, 0 ≤ r ∧ x = r • y) ↔ SameRay R y x
state_after: R : Type u_1
inst✝² : LinearOrderedField R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
hy : y ≠ 0
⊢ (∃ r, 0 ≤ r ∧ r • y = x) ↔ SameRay R y x

tactic: exact exists_nonneg_left_iff_sameRay (R := R) hy
state_before: R : Type u_1
inst✝² : LinearOrderedField R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
hy : y ≠ 0
⊢ (∃ r, 0 ≤ r ∧ r • y = x) ↔ SameRay R y x
state_after: no goals
Theorem: smul_iterate_apply
File: Mathlib/Algebra/GroupPower/IterateHom.lean

tactic: rw [smul_iterate]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝¹ : Monoid G
a : G
n : ℕ
inst✝ : MulAction G H
b : H
⊢ (fun x => a • x)^[n] b = a ^ n • b
state_after: no goals
Theorem: LieModuleHom.coe_linear_mk
File: Mathlib/Algebra/Lie/Basic.lean

tactic: rfl
state_before: R : Type u
L : Type v
M : Type w
N : Type w₁
P : Type w₂
inst✝¹⁴ : CommRing R
inst✝¹³ : LieRing L
inst✝¹² : LieAlgebra R L
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : AddCommGroup N
inst✝⁹ : AddCommGroup P
inst✝⁸ : Module R M
inst✝⁷ : Module R N
inst✝⁶ : Module R P
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieRingModule L N
inst✝³ : LieRingModule L P
inst✝² : LieModule R L M
inst✝¹ : LieModule R L N
inst✝ : LieModule R L P
f : M →ₗ[R] N
h : ∀ {x : L} {m : M}, f.toFun ⁅x, m⁆ = ⁅x, f.toFun m⁆
⊢ ↑{ toLinearMap := f, map_lie' := h } = f
state_after: no goals
Theorem: SimpleGraph.Walk.length_map
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
f' : G' →g G''
u v u' v' : V
p : G.Walk u v
⊢ (Walk.map f p).length = p.length
state_after: no goals
Theorem: Euclidean.nhds_basis_closedBall
File: Mathlib/Analysis/InnerProductSpace/EuclideanDist.lean

tactic: rw [toEuclidean.toHomeomorph.nhds_eq_comap x]
state_before: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
⊢ (𝓝 x).HasBasis (fun r => 0 < r) (closedBall x)
state_after: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
⊢ (Filter.comap (⇑toEuclidean.toHomeomorph) (𝓝 (toEuclidean.toHomeomorph x))).HasBasis (fun r => 0 < r) (closedBall x)

tactic: exact Metric.nhds_basis_closedBall.comap _
state_before: E : Type u_1
inst✝⁶ : AddCommGroup E
inst✝⁵ : TopologicalSpace E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : T2Space E
inst✝² : Module ℝ E
inst✝¹ : ContinuousSMul ℝ E
inst✝ : FiniteDimensional ℝ E
x : E
⊢ (Filter.comap (⇑toEuclidean.toHomeomorph) (𝓝 (toEuclidean.toHomeomorph x))).HasBasis (fun r => 0 < r) (closedBall x)
state_after: no goals
Theorem: le_iff_atom_le_imp
File: Mathlib/Order/Atoms.lean

tactic: rw [← sSup_atoms_le_eq a, ← sSup_atoms_le_eq b]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝¹ : CompleteLattice α
inst✝ : IsAtomistic α
a b : α
h : ∀ (c : α), IsAtom c → c ≤ a → c ≤ b
⊢ a ≤ b
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝¹ : CompleteLattice α
inst✝ : IsAtomistic α
a b : α
h : ∀ (c : α), IsAtom c → c ≤ a → c ≤ b
⊢ sSup {a_1 | IsAtom a_1 ∧ a_1 ≤ a} ≤ sSup {a | IsAtom a ∧ a ≤ b}

tactic: exact sSup_le_sSup fun c hc => ⟨hc.1, h c hc.1 hc.2⟩
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
inst✝¹ : CompleteLattice α
inst✝ : IsAtomistic α
a b : α
h : ∀ (c : α), IsAtom c → c ≤ a → c ≤ b
⊢ sSup {a_1 | IsAtom a_1 ∧ a_1 ≤ a} ≤ sSup {a | IsAtom a ∧ a ≤ b}
state_after: no goals
Theorem: toIcoMod_add_right_eq_add
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp_rw [toIcoMod, toIcoDiv_sub_eq_toIcoDiv_add', sub_add_eq_add_sub]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
⊢ toIcoMod hp a (b + c) = toIcoMod hp (a - c) b + c
state_after: no goals
Theorem: Finset.toList_cons
File: Mathlib/Data/Finset/Basic.lean

tactic: simp [h, nodup_toList s]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : α
s : Finset α
h : a ∉ s
⊢ (a :: s.toList).Nodup
state_after: no goals

tactic: simp only [List.mem_cons, Finset.mem_toList, Finset.mem_cons]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : α
s : Finset α
h : a ∉ s
x : α
⊢ x ∈ (cons a s h).toList ↔ x ∈ a :: s.toList
state_after: no goals
Theorem: intervalIntegrable_iff_integrableOn_Ioc_of_le
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff, uIoc_of_le hab]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝ : NormedAddCommGroup E
f : ℝ → E
a b : ℝ
μ : Measure ℝ
hab : a ≤ b
⊢ IntervalIntegrable f μ a b ↔ IntegrableOn f (Ioc a b) μ
state_after: no goals
Theorem: MeasureTheory.L1.SimpleFunc.integral_L1_eq_integral
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp only [integral, L1.integral]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
f : ↥(simpleFunc E 1 μ)
⊢ L1.integral ↑f = integral f
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
f : ↥(simpleFunc E 1 μ)
⊢ L1.integralCLM ↑f = MeasureTheory.SimpleFunc.integral μ (toSimpleFunc f)

tactic: exact setToL1_eq_setToL1SCLM (dominatedFinMeasAdditive_weightedSMul μ) f
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
f : ↥(simpleFunc E 1 μ)
⊢ L1.integralCLM ↑f = MeasureTheory.SimpleFunc.integral μ (toSimpleFunc f)
state_after: no goals
Theorem: Units.mul_right_inj
File: Mathlib/Algebra/Group/Units.lean

tactic: simpa only [inv_mul_cancel_left] using congr_arg (fun x : α => ↑(a⁻¹ : αˣ) * x) h
state_before: α : Type u
inst✝ : Monoid α
a✝ b✝ c✝ u a : αˣ
b c : α
h : ↑a * b = ↑a * c
⊢ b = c
state_after: no goals
Theorem: SimplexCategory.len_le_of_mono
File: Mathlib/AlgebraicTopology/SimplexCategory.lean

tactic: intro hyp_f_mono
state_before: x y : SimplexCategory
f : x ⟶ y
⊢ Mono f → x.len ≤ y.len
state_after: x y : SimplexCategory
f : x ⟶ y
hyp_f_mono : Mono f
⊢ x.len ≤ y.len

tactic: have f_inj : Function.Injective f.toOrderHom.toFun := mono_iff_injective.1 hyp_f_mono
state_before: x y : SimplexCategory
f : x ⟶ y
hyp_f_mono : Mono f
⊢ x.len ≤ y.len
state_after: x y : SimplexCategory
f : x ⟶ y
hyp_f_mono : Mono f
f_inj : Function.Injective (Hom.toOrderHom f).toFun
⊢ x.len ≤ y.len

tactic: simpa using Fintype.card_le_of_injective f.toOrderHom.toFun f_inj
state_before: x y : SimplexCategory
f : x ⟶ y
hyp_f_mono : Mono f
f_inj : Function.Injective (Hom.toOrderHom f).toFun
⊢ x.len ≤ y.len
state_after: no goals