1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PiTensorProduct.injectiveSeminorm_apply
File: Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean

tactic: simp [injectiveSeminorm]
state_before: ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x : ⨂[𝕜] (i : ι), E i
⊢ injectiveSeminorm x = ⨆ p, ↑p x
state_after: ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x : ⨂[𝕜] (i : ι), E i
⊢ (sSup
        {p |
          ∃ G x x_1,
            p = (normSeminorm 𝕜 (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G)).comp (toDualContinuousMultilinearMap G)})
      x =
    ⨆ p, ↑p x

tactic: exact Seminorm.sSup_apply dualSeminorms_bounded
state_before: ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x : ⨂[𝕜] (i : ι), E i
⊢ (sSup
        {p |
          ∃ G x x_1,
            p = (normSeminorm 𝕜 (ContinuousMultilinearMap 𝕜 E G →L[𝕜] G)).comp (toDualContinuousMultilinearMap G)})
      x =
    ⨆ p, ↑p x
state_after: no goals
Theorem: SetTheory.PGame.inv_eq_of_pos
File: Mathlib/SetTheory/Game/Basic.lean

tactic: classical exact (if_neg h.lf.not_equiv').trans (if_pos h)
state_before: x : PGame
h : 0 < x
⊢ x⁻¹ = x.inv'
state_after: no goals

tactic: exact (if_neg h.lf.not_equiv').trans (if_pos h)
state_before: x : PGame
h : 0 < x
⊢ x⁻¹ = x.inv'
state_after: no goals
Theorem: Filter.HasBasis.disjoint_iff_left
File: Mathlib/Order/Filter/Bases.lean

tactic: simp only [h.disjoint_iff l'.basis_sets, id, ← disjoint_principal_left,
  (hasBasis_principal _).disjoint_iff l'.basis_sets, true_and, Unique.exists_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
h : l.HasBasis p s
⊢ Disjoint l l' ↔ ∃ i, p i ∧ (s i)ᶜ ∈ l'
state_after: no goals
Theorem: lebesgue_number_lemma_of_metric
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simpa only [ball, UniformSpace.ball, preimage_setOf_eq, dist_comm]
  using uniformity_basis_dist.lebesgue_number_lemma hs hc₁ hc₂
state_before: α : Type u
β : Type v
X : Type u_1
ι✝ : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
ι : Sort u_3
c : ι → Set α
hs : IsCompact s
hc₁ : ∀ (i : ι), IsOpen (c i)
hc₂ : s ⊆ ⋃ i, c i
⊢ ∃ δ > 0, ∀ x ∈ s, ∃ i, ball x δ ⊆ c i
state_after: no goals
Theorem: Real.rpow_eq_nhds_of_neg
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

tactic: suffices ∀ᶠ x : ℝ × ℝ in 𝓝 p, x.1 < 0 from
  this.mono fun x hx ↦ by
    dsimp only
    rw [rpow_def_of_neg hx]
state_before: p : ℝ × ℝ
hp_fst : p.1 < 0
⊢ (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => rexp (log x.1 * x.2) * cos (x.2 * π)
state_after: p : ℝ × ℝ
hp_fst : p.1 < 0
⊢ ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, x.1 < 0

tactic: exact IsOpen.eventually_mem (isOpen_lt continuous_fst continuous_const) hp_fst
state_before: p : ℝ × ℝ
hp_fst : p.1 < 0
⊢ ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, x.1 < 0
state_after: no goals

tactic: dsimp only
state_before: p : ℝ × ℝ
hp_fst : p.1 < 0
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, x.1 < 0
x : ℝ × ℝ
hx : x.1 < 0
⊢ (fun x => x.1 ^ x.2) x = (fun x => rexp (log x.1 * x.2) * cos (x.2 * π)) x
state_after: p : ℝ × ℝ
hp_fst : p.1 < 0
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, x.1 < 0
x : ℝ × ℝ
hx : x.1 < 0
⊢ x.1 ^ x.2 = rexp (log x.1 * x.2) * cos (x.2 * π)

tactic: rw [rpow_def_of_neg hx]
state_before: p : ℝ × ℝ
hp_fst : p.1 < 0
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, x.1 < 0
x : ℝ × ℝ
hx : x.1 < 0
⊢ x.1 ^ x.2 = rexp (log x.1 * x.2) * cos (x.2 * π)
state_after: no goals
Theorem: EisensteinSeries.eisSummand_SL2_apply
File: Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.lean

tactic: simp only [eisSummand, specialLinearGroup_apply, algebraMap_int_eq, eq_intCast, ofReal_intCast,
  one_div, vecMul, vec2_dotProduct, Int.cast_add, Int.cast_mul]
state_before: N : ℕ
a : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
⊢ eisSummand k i (A • z) = denom (↑A) z ^ k * eisSummand k (i ᵥ* ↑A) z
state_after: N : ℕ
a : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
⊢ ((↑(i 0) * ↑(UpperHalfPlane.mk ((↑(↑↑A 0 0) * ↑z + ↑(↑↑A 0 1)) / (↑(↑↑A 1 0) * ↑z + ↑(↑↑A 1 1))) ⋯) + ↑(i 1)) ^ k)⁻¹ =
    denom (↑A) z ^ k *
      (((↑(i 0) * ↑(↑A 0 0) + ↑(i 1) * ↑(↑A 1 0)) * ↑z + (↑(i 0) * ↑(↑A 0 1) + ↑(i 1) * ↑(↑A 1 1))) ^ k)⁻¹

tactic: have h (a b c d u v : ℂ) (hc : c * z + d ≠ 0) : ((u * ((a * z + b) / (c * z + d)) + v) ^ k)⁻¹ =
    (c * z + d) ^ k * (((u * a + v * c) * z + (u * b + v * d)) ^ k)⁻¹ := by
  field_simp [hc]
  ring_nf
state_before: N : ℕ
a : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
⊢ ((↑(i 0) * ↑(UpperHalfPlane.mk ((↑(↑↑A 0 0) * ↑z + ↑(↑↑A 0 1)) / (↑(↑↑A 1 0) * ↑z + ↑(↑↑A 1 1))) ⋯) + ↑(i 1)) ^ k)⁻¹ =
    denom (↑A) z ^ k *
      (((↑(i 0) * ↑(↑A 0 0) + ↑(i 1) * ↑(↑A 1 0)) * ↑z + (↑(i 0) * ↑(↑A 0 1) + ↑(i 1) * ↑(↑A 1 1))) ^ k)⁻¹
state_after: N : ℕ
a : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
h :
  ∀ (a b c d u v : ℂ),
    c * ↑z + d ≠ 0 →
      ((u * ((a * ↑z + b) / (c * ↑z + d)) + v) ^ k)⁻¹ =
        (c * ↑z + d) ^ k * (((u * a + v * c) * ↑z + (u * b + v * d)) ^ k)⁻¹
⊢ ((↑(i 0) * ↑(UpperHalfPlane.mk ((↑(↑↑A 0 0) * ↑z + ↑(↑↑A 0 1)) / (↑(↑↑A 1 0) * ↑z + ↑(↑↑A 1 1))) ⋯) + ↑(i 1)) ^ k)⁻¹ =
    denom (↑A) z ^ k *
      (((↑(i 0) * ↑(↑A 0 0) + ↑(i 1) * ↑(↑A 1 0)) * ↑z + (↑(i 0) * ↑(↑A 0 1) + ↑(i 1) * ↑(↑A 1 1))) ^ k)⁻¹

tactic: apply h (hc := z.denom_ne_zero A)
state_before: N : ℕ
a : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
h :
  ∀ (a b c d u v : ℂ),
    c * ↑z + d ≠ 0 →
      ((u * ((a * ↑z + b) / (c * ↑z + d)) + v) ^ k)⁻¹ =
        (c * ↑z + d) ^ k * (((u * a + v * c) * ↑z + (u * b + v * d)) ^ k)⁻¹
⊢ ((↑(i 0) * ↑(UpperHalfPlane.mk ((↑(↑↑A 0 0) * ↑z + ↑(↑↑A 0 1)) / (↑(↑↑A 1 0) * ↑z + ↑(↑↑A 1 1))) ⋯) + ↑(i 1)) ^ k)⁻¹ =
    denom (↑A) z ^ k *
      (((↑(i 0) * ↑(↑A 0 0) + ↑(i 1) * ↑(↑A 1 0)) * ↑z + (↑(i 0) * ↑(↑A 0 1) + ↑(i 1) * ↑(↑A 1 1))) ^ k)⁻¹
state_after: no goals

tactic: field_simp [hc]
state_before: N : ℕ
a✝ : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
a b c d u v : ℂ
hc : c * ↑z + d ≠ 0
⊢ ((u * ((a * ↑z + b) / (c * ↑z + d)) + v) ^ k)⁻¹ = (c * ↑z + d) ^ k * (((u * a + v * c) * ↑z + (u * b + v * d)) ^ k)⁻¹
state_after: N : ℕ
a✝ : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
a b c d u v : ℂ
hc : c * ↑z + d ≠ 0
⊢ (c * ↑z + d) ^ k / (u * (a * ↑z + b) + v * (c * ↑z + d)) ^ k =
    (c * ↑z + d) ^ k / ((u * a + v * c) * ↑z + (u * b + v * d)) ^ k

tactic: ring_nf
state_before: N : ℕ
a✝ : Fin 2 → ZMod N
k : ℤ
i : Fin 2 → ℤ
A : SL(2, ℤ)
z : ℍ
a b c d u v : ℂ
hc : c * ↑z + d ≠ 0
⊢ (c * ↑z + d) ^ k / (u * (a * ↑z + b) + v * (c * ↑z + d)) ^ k =
    (c * ↑z + d) ^ k / ((u * a + v * c) * ↑z + (u * b + v * d)) ^ k
state_after: no goals
Theorem: xInTermsOfW_aux
File: Mathlib/RingTheory/WittVector/WittPolynomial.lean

tactic: rw [xInTermsOfW_eq, mul_assoc, ← C_mul, ← mul_pow, invOf_mul_self,
  one_pow, C_1, mul_one]
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
inst✝ : Invertible ↑p
n : ℕ
⊢ xInTermsOfW p R n * C (↑p ^ n) = X n - ∑ i ∈ range n, C (↑p ^ i) * xInTermsOfW p R i ^ p ^ (n - i)
state_after: no goals
Theorem: Matrix.updateRow_conjTranspose
File: Mathlib/Data/Matrix/RowCol.lean

tactic: rw [conjTranspose, conjTranspose, transpose_map, transpose_map, updateRow_transpose,
  map_updateColumn]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq n
inst✝ : Star α
⊢ Mᴴ.updateRow j (star c) = (M.updateColumn j c)ᴴ
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq n
inst✝ : Star α
⊢ ((M.map star).updateColumn j (star c))ᵀ = ((M.map star).updateColumn j (star ∘ c))ᵀ

tactic: rfl
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq n
inst✝ : Star α
⊢ ((M.map star).updateColumn j (star c))ᵀ = ((M.map star).updateColumn j (star ∘ c))ᵀ
state_after: no goals
Theorem: Ultrafilter.eq_pure_of_finite_mem
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: rw [← biUnion_of_singleton s] at h'
state_before: α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s t : Set α
p q : α → Prop
h : s.Finite
h' : s ∈ f
⊢ ∃ x ∈ s, f = pure x
state_after: α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s t : Set α
p q : α → Prop
h : s.Finite
h' : ⋃ x ∈ s, {x} ∈ f
⊢ ∃ x ∈ s, f = pure x

tactic: rcases (Ultrafilter.finite_biUnion_mem_iff h).mp h' with ⟨a, has, haf⟩
state_before: α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s t : Set α
p q : α → Prop
h : s.Finite
h' : ⋃ x ∈ s, {x} ∈ f
⊢ ∃ x ∈ s, f = pure x
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s t : Set α
p q : α → Prop
h : s.Finite
h' : ⋃ x ∈ s, {x} ∈ f
a : α
has : a ∈ s
haf : {a} ∈ f
⊢ ∃ x ∈ s, f = pure x

tactic: exact ⟨a, has, eq_of_le (Filter.le_pure_iff.2 haf)⟩
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s t : Set α
p q : α → Prop
h : s.Finite
h' : ⋃ x ∈ s, {x} ∈ f
a : α
has : a ∈ s
haf : {a} ∈ f
⊢ ∃ x ∈ s, f = pure x
state_after: no goals
Theorem: Pi.image_update_segment
File: Mathlib/Analysis/Convex/Segment.lean

tactic: rw [segment_eq_image₂, segment_eq_image₂, image_image]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : OrderedSemiring 𝕜
inst✝² : (i : ι) → AddCommMonoid (π i)
inst✝¹ : (i : ι) → Module 𝕜 (π i)
s : Set ι
inst✝ : DecidableEq ι
i : ι
x₁ x₂ : π i
y : (i : ι) → π i
⊢ update y i '' [x₁-[𝕜]x₂] = [update y i x₁-[𝕜]update y i x₂]
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : OrderedSemiring 𝕜
inst✝² : (i : ι) → AddCommMonoid (π i)
inst✝¹ : (i : ι) → Module 𝕜 (π i)
s : Set ι
inst✝ : DecidableEq ι
i : ι
x₁ x₂ : π i
y : (i : ι) → π i
⊢ (fun x => update y i (x.1 • x₁ + x.2 • x₂)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1} =
    (fun p => p.1 • update y i x₁ + p.2 • update y i x₂) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}

tactic: refine EqOn.image_eq fun a ha ↦ ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : OrderedSemiring 𝕜
inst✝² : (i : ι) → AddCommMonoid (π i)
inst✝¹ : (i : ι) → Module 𝕜 (π i)
s : Set ι
inst✝ : DecidableEq ι
i : ι
x₁ x₂ : π i
y : (i : ι) → π i
⊢ (fun x => update y i (x.1 • x₁ + x.2 • x₂)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1} =
    (fun p => p.1 • update y i x₁ + p.2 • update y i x₂) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : OrderedSemiring 𝕜
inst✝² : (i : ι) → AddCommMonoid (π i)
inst✝¹ : (i : ι) → Module 𝕜 (π i)
s : Set ι
inst✝ : DecidableEq ι
i : ι
x₁ x₂ : π i
y : (i : ι) → π i
a : 𝕜 × 𝕜
ha : a ∈ {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
⊢ update y i (a.1 • x₁ + a.2 • x₂) = a.1 • update y i x₁ + a.2 • update y i x₂

tactic: simp only [← update_smul, ← update_add, Convex.combo_self ha.2.2]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : OrderedSemiring 𝕜
inst✝² : (i : ι) → AddCommMonoid (π i)
inst✝¹ : (i : ι) → Module 𝕜 (π i)
s : Set ι
inst✝ : DecidableEq ι
i : ι
x₁ x₂ : π i
y : (i : ι) → π i
a : 𝕜 × 𝕜
ha : a ∈ {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
⊢ update y i (a.1 • x₁ + a.2 • x₂) = a.1 • update y i x₁ + a.2 • update y i x₂
state_after: no goals
Theorem: Fintype.card_of_finset'
File: Mathlib/Data/Fintype/Card.lean

tactic: rw [← card_ofFinset s H]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p : Set α
s : Finset α
H : ∀ (x : α), x ∈ s ↔ x ∈ p
inst✝ : Fintype ↑p
⊢ card ↑p = s.card
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
p : Set α
s : Finset α
H : ∀ (x : α), x ∈ s ↔ x ∈ p
inst✝ : Fintype ↑p
⊢ card ↑p = card ↑p

tactic: congr
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p : Set α
s : Finset α
H : ∀ (x : α), x ∈ s ↔ x ∈ p
inst✝ : Fintype ↑p
⊢ card ↑p = card ↑p
state_after: case h.e_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
p : Set α
s : Finset α
H : ∀ (x : α), x ∈ s ↔ x ∈ p
inst✝ : Fintype ↑p
⊢ inst✝ = ofFinset s H

tactic: apply Subsingleton.elim
state_before: case h.e_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
p : Set α
s : Finset α
H : ∀ (x : α), x ∈ s ↔ x ∈ p
inst✝ : Fintype ↑p
⊢ inst✝ = ofFinset s H
state_after: no goals
Theorem: Ideal.map_eq_bot_iff_le_ker
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: rw [RingHom.ker, eq_bot_iff, map_le_iff_le_comap]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
inst✝² : Semiring R
inst✝¹ : Semiring S
inst✝ : FunLike F R S
rc : RingHomClass F R S
I : Ideal R
f : F
⊢ map f I = ⊥ ↔ I ≤ RingHom.ker f
state_after: no goals
Theorem: MvPowerSeries.coeff_mul_monomial
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: classical
have :
  ∀ p ∈ antidiagonal m,
    coeff R (p : (σ →₀ ℕ) × (σ →₀ ℕ)).1 φ * coeff R p.2 (monomial R n a) ≠ 0 → p.2 = n :=
  fun p _ hp => eq_of_coeff_monomial_ne_zero (right_ne_zero_of_mul hp)
rw [coeff_mul, ← Finset.sum_filter_of_ne this, Finset.filter_snd_eq_antidiagonal _ n,
  Finset.sum_ite_index]
simp only [Finset.sum_singleton, coeff_monomial_same, Finset.sum_empty]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
⊢ (coeff R m) (φ * (monomial R n) a) = if n ≤ m then (coeff R (m - n)) φ * a else 0
state_after: no goals

tactic: have :
  ∀ p ∈ antidiagonal m,
    coeff R (p : (σ →₀ ℕ) × (σ →₀ ℕ)).1 φ * coeff R p.2 (monomial R n a) ≠ 0 → p.2 = n :=
  fun p _ hp => eq_of_coeff_monomial_ne_zero (right_ne_zero_of_mul hp)
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
⊢ (coeff R m) (φ * (monomial R n) a) = if n ≤ m then (coeff R (m - n)) φ * a else 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
this : ∀ p ∈ antidiagonal m, (coeff R p.1) φ * (coeff R p.2) ((monomial R n) a) ≠ 0 → p.2 = n
⊢ (coeff R m) (φ * (monomial R n) a) = if n ≤ m then (coeff R (m - n)) φ * a else 0

tactic: rw [coeff_mul, ← Finset.sum_filter_of_ne this, Finset.filter_snd_eq_antidiagonal _ n,
  Finset.sum_ite_index]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
this : ∀ p ∈ antidiagonal m, (coeff R p.1) φ * (coeff R p.2) ((monomial R n) a) ≠ 0 → p.2 = n
⊢ (coeff R m) (φ * (monomial R n) a) = if n ≤ m then (coeff R (m - n)) φ * a else 0
state_after: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
this : ∀ p ∈ antidiagonal m, (coeff R p.1) φ * (coeff R p.2) ((monomial R n) a) ≠ 0 → p.2 = n
⊢ (if n ≤ m then ∑ x ∈ {(m - n, n)}, (coeff R x.1) φ * (coeff R x.2) ((monomial R n) a)
    else ∑ x ∈ ∅, (coeff R x.1) φ * (coeff R x.2) ((monomial R n) a)) =
    if n ≤ m then (coeff R (m - n)) φ * a else 0

tactic: simp only [Finset.sum_singleton, coeff_monomial_same, Finset.sum_empty]
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
a : R
this : ∀ p ∈ antidiagonal m, (coeff R p.1) φ * (coeff R p.2) ((monomial R n) a) ≠ 0 → p.2 = n
⊢ (if n ≤ m then ∑ x ∈ {(m - n, n)}, (coeff R x.1) φ * (coeff R x.2) ((monomial R n) a)
    else ∑ x ∈ ∅, (coeff R x.1) φ * (coeff R x.2) ((monomial R n) a)) =
    if n ≤ m then (coeff R (m - n)) φ * a else 0
state_after: no goals
Theorem: SimpleGraph.induceHom_injective
File: Mathlib/Combinatorics/SimpleGraph/Maps.lean

tactic: erw [Set.MapsTo.restrict_inj] <;> assumption
state_before: V : Type u_1
W : Type u_2
X : Type u_3
G : SimpleGraph V
G' : SimpleGraph W
u v : V
G'' : SimpleGraph X
s : Set V
t : Set W
r : Set X
φ : G →g G'
φst : Set.MapsTo (⇑φ) s t
ψ : G' →g G''
ψtr : Set.MapsTo (⇑ψ) t r
hi : Set.InjOn (⇑φ) s
⊢ Injective ⇑(induceHom φ φst)
state_after: no goals
Theorem: leOnePart_eq_inv_inf_one
File: Mathlib/Algebra/Order/Group/PosPart.lean

tactic: rw [leOnePart, ← inv_inj, inv_sup, inv_inv, inv_inv, inv_one]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Lattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ a : α
⊢ a⁻ᵐ = (a ⊓ 1)⁻¹
state_after: no goals
Theorem: Complex.norm_natCast_cpow_le_norm_natCast_cpow_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: simp_rw [norm_natCast_cpow_of_pos (Nat.zero_lt_of_lt hn),
  Real.rpow_le_rpow_left_iff (Nat.one_lt_cast.mpr hn)]
state_before: n : ℕ
hn : 1 < n
w z : ℂ
⊢ ‖↑n ^ w‖ ≤ ‖↑n ^ z‖ ↔ w.re ≤ z.re
state_after: no goals
Theorem: TruncatedWittVector.zmodEquivTrunc_apply
File: Mathlib/RingTheory/WittVector/Compare.lean

tactic: rfl
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : ZMod (p ^ n)
⊢ ?m.7413 ∣ p ^ n
state_after: no goals
Theorem: Complex.norm_deriv_le_aux
File: Mathlib/Analysis/Complex/Liouville.lean

tactic: have : ∀ z ∈ sphere c R, ‖(z - c) ^ (-2 : ℤ) • f z‖ ≤ C / (R * R) :=
  fun z (hz : abs (z - c) = R) => by
  simpa [-mul_inv_rev, norm_smul, hz, zpow_two, ← div_eq_inv_mul] using
    (div_le_div_right (mul_pos hR hR)).2 (hC z hz)
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ z ∈ sphere c R, ‖f z‖ ≤ C
⊢ ‖deriv f c‖ ≤ C / R
state_after: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ z ∈ sphere c R, ‖f z‖ ≤ C
this : ∀ z ∈ sphere c R, ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
⊢ ‖deriv f c‖ ≤ C / R

tactic: calc
  ‖deriv f c‖ = ‖(2 * π * I : ℂ)⁻¹ • ∮ z in C(c, R), (z - c) ^ (-2 : ℤ) • f z‖ :=
    congr_arg norm (deriv_eq_smul_circleIntegral hR hf)
  _ ≤ R * (C / (R * R)) :=
    (circleIntegral.norm_two_pi_i_inv_smul_integral_le_of_norm_le_const hR.le this)
  _ = C / R := by rw [mul_div_left_comm, div_self_mul_self', div_eq_mul_inv]
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ z ∈ sphere c R, ‖f z‖ ≤ C
this : ∀ z ∈ sphere c R, ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
⊢ ‖deriv f c‖ ≤ C / R
state_after: no goals

tactic: simpa [-mul_inv_rev, norm_smul, hz, zpow_two, ← div_eq_inv_mul] using
  (div_le_div_right (mul_pos hR hR)).2 (hC z hz)
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ z ∈ sphere c R, ‖f z‖ ≤ C
z : ℂ
hz : abs (z - c) = R
⊢ ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
state_after: no goals

tactic: rw [mul_div_left_comm, div_self_mul_self', div_eq_mul_inv]
state_before: E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℂ E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℂ F
inst✝ : CompleteSpace F
c : ℂ
R C : ℝ
f : ℂ → F
hR : 0 < R
hf : DiffContOnCl ℂ f (ball c R)
hC : ∀ z ∈ sphere c R, ‖f z‖ ≤ C
this : ∀ z ∈ sphere c R, ‖(z - c) ^ (-2) • f z‖ ≤ C / (R * R)
⊢ R * (C / (R * R)) = C / R
state_after: no goals
Theorem: Real.sqrt_le_sqrt_iff'
File: Mathlib/Data/Real/Sqrt.lean

tactic: obtain hy | hy := le_total y 0
state_before: x y : ℝ
hx : 0 < x
⊢ √x ≤ √y ↔ x ≤ y
state_after: case inl
x y : ℝ
hx : 0 < x
hy : y ≤ 0
⊢ √x ≤ √y ↔ x ≤ y

case inr
x y : ℝ
hx : 0 < x
hy : 0 ≤ y
⊢ √x ≤ √y ↔ x ≤ y

tactic: exact iff_of_false ((sqrt_eq_zero_of_nonpos hy).trans_lt $ sqrt_pos.2 hx).not_le
  (hy.trans_lt hx).not_le
state_before: case inl
x y : ℝ
hx : 0 < x
hy : y ≤ 0
⊢ √x ≤ √y ↔ x ≤ y
state_after: no goals

tactic: exact sqrt_le_sqrt_iff hy
state_before: case inr
x y : ℝ
hx : 0 < x
hy : 0 ≤ y
⊢ √x ≤ √y ↔ x ≤ y
state_after: no goals
Theorem: PFun.id_comp
File: Mathlib/Data/PFun.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ι : Type u_6
f✝ f : α →. β
x✝¹ : α
x✝ : β
⊢ x✝ ∈ (PFun.id β).comp f x✝¹ ↔ x✝ ∈ f x✝¹
state_after: no goals
Theorem: AffineSubspace.comap_span
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← map_symm, map_span, AffineEquiv.coe_coe, f.image_symm]
state_before: k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
V₃ : Type u_6
P₃ : Type u_7
inst✝⁹ : Ring k
inst✝⁸ : AddCommGroup V₁
inst✝⁷ : Module k V₁
inst✝⁶ : AffineSpace V₁ P₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module k V₂
inst✝³ : AffineSpace V₂ P₂
inst✝² : AddCommGroup V₃
inst✝¹ : Module k V₃
inst✝ : AffineSpace V₃ P₃
f : P₁ ≃ᵃ[k] P₂
s : Set P₂
⊢ comap (↑f) (affineSpan k s) = affineSpan k (⇑f ⁻¹' s)
state_after: no goals
Theorem: Subgroup.card_subgroup_dvd_card
File: Mathlib/GroupTheory/Coset.lean

tactic: classical simp [card_eq_card_quotient_mul_card_subgroup s, @dvd_mul_left ℕ]
state_before: α : Type u_1
inst✝ : Group α
s✝ t s : Subgroup α
⊢ Nat.card ↥s ∣ Nat.card α
state_after: no goals

tactic: simp [card_eq_card_quotient_mul_card_subgroup s, @dvd_mul_left ℕ]
state_before: α : Type u_1
inst✝ : Group α
s✝ t s : Subgroup α
⊢ Nat.card ↥s ∣ Nat.card α
state_after: no goals
Theorem: modelProd_range_prod_id
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: rw [prod_range_univ_eq]
state_before: H✝ : Type u
H'✝ : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
H : Type u_5
H' : Type u_6
α : Type u_7
f : H → α
⊢ (range fun p => (f p.1, p.2)) = range f ×ˢ univ
state_after: H✝ : Type u
H'✝ : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
H : Type u_5
H' : Type u_6
α : Type u_7
f : H → α
⊢ (range fun p => (f p.1, p.2)) = range fun p => (f p.1, p.2)

tactic: rfl
state_before: H✝ : Type u
H'✝ : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
H : Type u_5
H' : Type u_6
α : Type u_7
f : H → α
⊢ (range fun p => (f p.1, p.2)) = range fun p => (f p.1, p.2)
state_after: no goals
Theorem: Algebra.coe_iInf
File: Mathlib/Algebra/Algebra/Subalgebra/Basic.lean

tactic: simp [iInf]
state_before: R : Type u
A : Type v
B : Type w
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
inst✝¹ : Semiring B
inst✝ : Algebra R B
ι : Sort u_1
S : ι → Subalgebra R A
⊢ ↑(⨅ i, S i) = ⋂ i, ↑(S i)
state_after: no goals
Theorem: CommRing.ext_iff
File: Mathlib/Algebra/Ring/Ext.lean

tactic: rintro rfl
state_before: R : Type u
inst₁ inst₂ : CommRing R
⊢ inst₁ = inst₂ → HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
state_after: R : Type u
inst₁ : CommRing R
⊢ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul

tactic: constructor <;> rfl
state_before: R : Type u
inst₁ : CommRing R
⊢ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.leftUnitor_tensor'
File: Mathlib/CategoryTheory/Monoidal/CoherenceLemmas.lean

tactic: coherence
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : MonoidalCategory C
X Y : C
⊢ (λ_ (X ⊗ Y)).hom = (α_ (𝟙_ C) X Y).inv ≫ ((λ_ X).hom ⊗ 𝟙 Y)
state_after: no goals