1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Nat.multiplicity_eq_card_pow_dvd
File: Mathlib/Data/Nat/Multiplicity.lean

tactic: simp
state_before: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
⊢ multiplicity m n = ↑(Ico 1 ((multiplicity m n).get ⋯ + 1)).card
state_after: no goals

tactic: rw [mem_filter, mem_Ico, mem_Ico, Nat.lt_succ_iff, ← @PartENat.coe_le_coe i,
  PartENat.natCast_get, ← pow_dvd_iff_le_multiplicity, and_right_comm]
state_before: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
i : ℕ
⊢ i ∈ Ico 1 ((multiplicity m n).get ⋯ + 1) ↔ i ∈ filter (fun i => m ^ i ∣ n) (Ico 1 b)
state_after: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
i : ℕ
⊢ 1 ≤ i ∧ m ^ i ∣ n ↔ (1 ≤ i ∧ m ^ i ∣ n) ∧ i < b

tactic: refine (and_iff_left_of_imp fun h => lt_of_le_of_lt ?_ hb).symm
state_before: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
i : ℕ
⊢ 1 ≤ i ∧ m ^ i ∣ n ↔ (1 ≤ i ∧ m ^ i ∣ n) ∧ i < b
state_after: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
i : ℕ
h : 1 ≤ i ∧ m ^ i ∣ n
⊢ i ≤ log m n

tactic: cases' m with m
state_before: m n b : ℕ
hm : m ≠ 1
hn : 0 < n
hb : log m n < b
i : ℕ
h : 1 ≤ i ∧ m ^ i ∣ n
⊢ i ≤ log m n
state_after: case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ 0 ^ i ∣ n
⊢ i ≤ log 0 n

case succ
n b : ℕ
hn : 0 < n
i m : ℕ
hm : m + 1 ≠ 1
hb : log (m + 1) n < b
h : 1 ≤ i ∧ (m + 1) ^ i ∣ n
⊢ i ≤ log (m + 1) n

tactic: exact le_log_of_pow_le (one_lt_iff_ne_zero_and_ne_one.2 ⟨m.succ_ne_zero, hm⟩)
    (le_of_dvd hn h.2)
state_before: case succ
n b : ℕ
hn : 0 < n
i m : ℕ
hm : m + 1 ≠ 1
hb : log (m + 1) n < b
h : 1 ≤ i ∧ (m + 1) ^ i ∣ n
⊢ i ≤ log (m + 1) n
state_after: no goals

tactic: rw [zero_pow, zero_dvd_iff] at h
state_before: case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ 0 ^ i ∣ n
⊢ i ≤ log 0 n
state_after: case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ n = 0
⊢ i ≤ log 0 n

case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ 0 ^ i ∣ n
⊢ i ≠ 0

tactic: exacts [(hn.ne' h.2).elim, one_le_iff_ne_zero.1 h.1]
state_before: case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ n = 0
⊢ i ≤ log 0 n

case zero
n b : ℕ
hn : 0 < n
i : ℕ
hm : 0 ≠ 1
hb : log 0 n < b
h : 1 ≤ i ∧ 0 ^ i ∣ n
⊢ i ≠ 0
state_after: no goals
Theorem: Basis.addHaar_eq_iff
File: Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean

tactic: rw [Basis.addHaar_def]
state_before: ι : Type u_1
ι' : Type u_2
E : Type u_3
F : Type u_4
inst✝¹⁰ : Fintype ι
inst✝⁹ : Fintype ι'
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : SecondCountableTopology E
b : Basis ι ℝ E
μ : Measure E
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsAddLeftInvariant
⊢ b.addHaar = μ ↔ μ ↑b.parallelepiped = 1
state_after: ι : Type u_1
ι' : Type u_2
E : Type u_3
F : Type u_4
inst✝¹⁰ : Fintype ι
inst✝⁹ : Fintype ι'
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : SecondCountableTopology E
b : Basis ι ℝ E
μ : Measure E
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsAddLeftInvariant
⊢ addHaarMeasure b.parallelepiped = μ ↔ μ ↑b.parallelepiped = 1

tactic: exact addHaarMeasure_eq_iff b.parallelepiped μ
state_before: ι : Type u_1
ι' : Type u_2
E : Type u_3
F : Type u_4
inst✝¹⁰ : Fintype ι
inst✝⁹ : Fintype ι'
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : MeasurableSpace E
inst✝³ : BorelSpace E
inst✝² : SecondCountableTopology E
b : Basis ι ℝ E
μ : Measure E
inst✝¹ : SigmaFinite μ
inst✝ : μ.IsAddLeftInvariant
⊢ addHaarMeasure b.parallelepiped = μ ↔ μ ↑b.parallelepiped = 1
state_after: no goals
Theorem: continuousAt_clog
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: refine ContinuousAt.add ?_ ?_
state_before: α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt log x
state_after: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => ↑(Real.log (Complex.abs x))) x

case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => ↑x.arg * I) x

tactic: refine continuous_ofReal.continuousAt.comp ?_
state_before: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => ↑(Real.log (Complex.abs x))) x
state_after: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => Real.log (Complex.abs x)) x

tactic: refine (Real.continuousAt_log ?_).comp Complex.continuous_abs.continuousAt
state_before: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => Real.log (Complex.abs x)) x
state_after: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ Complex.abs x ≠ 0

tactic: exact Complex.abs.ne_zero_iff.mpr <| slitPlane_ne_zero h
state_before: case refine_1
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ Complex.abs x ≠ 0
state_after: no goals

tactic: have h_cont_mul : Continuous fun x : ℂ => x * I := continuous_id'.mul continuous_const
state_before: case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
⊢ ContinuousAt (fun x => ↑x.arg * I) x
state_after: case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
h_cont_mul : Continuous fun x => x * I
⊢ ContinuousAt (fun x => ↑x.arg * I) x

tactic: refine h_cont_mul.continuousAt.comp (continuous_ofReal.continuousAt.comp ?_)
state_before: case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
h_cont_mul : Continuous fun x => x * I
⊢ ContinuousAt (fun x => ↑x.arg * I) x
state_after: case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
h_cont_mul : Continuous fun x => x * I
⊢ ContinuousAt arg x

tactic: exact continuousAt_arg h
state_before: case refine_2
α : Type u_1
x : ℂ
h : x ∈ slitPlane
h_cont_mul : Continuous fun x => x * I
⊢ ContinuousAt arg x
state_after: no goals
Theorem: SeparatingDual.t2Space
File: Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean

tactic: apply (t2Space_iff _).2 (fun {x} {y} hxy ↦ ?_)
state_before: R : Type u_1
V : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup V
inst✝⁴ : TopologicalSpace V
inst✝³ : TopologicalSpace R
inst✝² : Module R V
inst✝¹ : SeparatingDual R V
inst✝ : T2Space R
⊢ T2Space V
state_after: R : Type u_1
V : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup V
inst✝⁴ : TopologicalSpace V
inst✝³ : TopologicalSpace R
inst✝² : Module R V
inst✝¹ : SeparatingDual R V
inst✝ : T2Space R
x y : V
hxy : x ≠ y
⊢ ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ Disjoint u v

tactic: rcases exists_separating_of_ne (R := R) hxy with ⟨f, hf⟩
state_before: R : Type u_1
V : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup V
inst✝⁴ : TopologicalSpace V
inst✝³ : TopologicalSpace R
inst✝² : Module R V
inst✝¹ : SeparatingDual R V
inst✝ : T2Space R
x y : V
hxy : x ≠ y
⊢ ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ Disjoint u v
state_after: case intro
R : Type u_1
V : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup V
inst✝⁴ : TopologicalSpace V
inst✝³ : TopologicalSpace R
inst✝² : Module R V
inst✝¹ : SeparatingDual R V
inst✝ : T2Space R
x y : V
hxy : x ≠ y
f : V →L[R] R
hf : f x ≠ f y
⊢ ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ Disjoint u v

tactic: exact separated_by_continuous f.continuous hf
state_before: case intro
R : Type u_1
V : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup V
inst✝⁴ : TopologicalSpace V
inst✝³ : TopologicalSpace R
inst✝² : Module R V
inst✝¹ : SeparatingDual R V
inst✝ : T2Space R
x y : V
hxy : x ≠ y
f : V →L[R] R
hf : f x ≠ f y
⊢ ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ Disjoint u v
state_after: no goals
Theorem: lt_inv_mul_iff_mul_lt
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← mul_lt_mul_iff_left a]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ b < a⁻¹ * c ↔ a * b < c
state_after: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ a * b < a * (a⁻¹ * c) ↔ a * b < c

tactic: simp
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ a * b < a * (a⁻¹ * c) ↔ a * b < c
state_after: no goals
Theorem: Metric.cthickening_empty
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: simp only [cthickening, ENNReal.ofReal_ne_top, setOf_false, infEdist_empty, top_le_iff]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s t : Set α
x : α
δ : ℝ
⊢ cthickening δ ∅ = ∅
state_after: no goals
Theorem: CategoryTheory.Limits.IsColimit.coconePointsIsoOfNatIso_inv_desc
File: Mathlib/CategoryTheory/Limits/IsLimit.lean

tactic: simp
state_before: J : Type u₁
inst✝² : Category.{v₁, u₁} J
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
C : Type u₃
inst✝ : Category.{v₃, u₃} C
F✝ : J ⥤ C
t✝ : Cocone F✝
F G : J ⥤ C
s : Cocone G
r t : Cocone F
P : IsColimit t
Q : IsColimit s
w : F ≅ G
⊢ ∀ (j : J), s.ι.app j ≫ (P.coconePointsIsoOfNatIso Q w).inv ≫ P.desc r = s.ι.app j ≫ Q.map r w.inv
state_after: no goals
Theorem: Equiv.optionCongr_sign
File: Mathlib/GroupTheory/Perm/Option.lean

tactic: refine Perm.swap_induction_on e ?_ ?_
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e : Perm α
⊢ Perm.sign (optionCongr e) = Perm.sign e
state_after: case refine_1
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e : Perm α
⊢ Perm.sign (optionCongr 1) = Perm.sign 1

case refine_2
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e : Perm α
⊢ ∀ (f : Perm α) (x y : α),
    x ≠ y → Perm.sign (optionCongr f) = Perm.sign f → Perm.sign (optionCongr (swap x y * f)) = Perm.sign (swap x y * f)

tactic: simp [Perm.one_def]
state_before: case refine_1
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e : Perm α
⊢ Perm.sign (optionCongr 1) = Perm.sign 1
state_after: no goals

tactic: intro f x y hne h
state_before: case refine_2
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e : Perm α
⊢ ∀ (f : Perm α) (x y : α),
    x ≠ y → Perm.sign (optionCongr f) = Perm.sign f → Perm.sign (optionCongr (swap x y * f)) = Perm.sign (swap x y * f)
state_after: case refine_2
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e f : Perm α
x y : α
hne : x ≠ y
h : Perm.sign (optionCongr f) = Perm.sign f
⊢ Perm.sign (optionCongr (swap x y * f)) = Perm.sign (swap x y * f)

tactic: simp [h, hne, Perm.mul_def, ← Equiv.optionCongr_trans]
state_before: case refine_2
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
e f : Perm α
x y : α
hne : x ≠ y
h : Perm.sign (optionCongr f) = Perm.sign f
⊢ Perm.sign (optionCongr (swap x y * f)) = Perm.sign (swap x y * f)
state_after: no goals
Theorem: Continuous.matrix_det
File: Mathlib/Topology/Instances/Matrix.lean

tactic: simp_rw [Matrix.det_apply]
state_before: X : Type u_1
α : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
p : Type u_6
S : Type u_7
R : Type u_8
m' : l → Type u_9
n' : l → Type u_10
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace R
inst✝³ : Fintype n
inst✝² : DecidableEq n
inst✝¹ : CommRing R
inst✝ : TopologicalRing R
A : X → Matrix n n R
hA : Continuous A
⊢ Continuous fun x => (A x).det
state_after: X : Type u_1
α : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
p : Type u_6
S : Type u_7
R : Type u_8
m' : l → Type u_9
n' : l → Type u_10
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace R
inst✝³ : Fintype n
inst✝² : DecidableEq n
inst✝¹ : CommRing R
inst✝ : TopologicalRing R
A : X → Matrix n n R
hA : Continuous A
⊢ Continuous fun x => ∑ σ : Equiv.Perm n, Equiv.Perm.sign σ • ∏ i : n, A x (σ i) i

tactic: refine continuous_finset_sum _ fun l _ => Continuous.const_smul ?_ _
state_before: X : Type u_1
α : Type u_2
l : Type u_3
m : Type u_4
n : Type u_5
p : Type u_6
S : Type u_7
R : Type u_8
m' : l → Type u_9
n' : l → Type u_10
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace R
inst✝³ : Fintype n
inst✝² : DecidableEq n
inst✝¹ : CommRing R
inst✝ : TopologicalRing R
A : X → Matrix n n R
hA : Continuous A
⊢ Continuous fun x => ∑ σ : Equiv.Perm n, Equiv.Perm.sign σ • ∏ i : n, A x (σ i) i
state_after: X : Type u_1
α : Type u_2
l✝ : Type u_3
m : Type u_4
n : Type u_5
p : Type u_6
S : Type u_7
R : Type u_8
m' : l✝ → Type u_9
n' : l✝ → Type u_10
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace R
inst✝³ : Fintype n
inst✝² : DecidableEq n
inst✝¹ : CommRing R
inst✝ : TopologicalRing R
A : X → Matrix n n R
hA : Continuous A
l : Equiv.Perm n
x✝ : l ∈ Finset.univ
⊢ Continuous fun x => ∏ i : n, A x (l i) i

tactic: exact continuous_finset_prod _ fun l _ => hA.matrix_elem _ _
state_before: X : Type u_1
α : Type u_2
l✝ : Type u_3
m : Type u_4
n : Type u_5
p : Type u_6
S : Type u_7
R : Type u_8
m' : l✝ → Type u_9
n' : l✝ → Type u_10
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace R
inst✝³ : Fintype n
inst✝² : DecidableEq n
inst✝¹ : CommRing R
inst✝ : TopologicalRing R
A : X → Matrix n n R
hA : Continuous A
l : Equiv.Perm n
x✝ : l ∈ Finset.univ
⊢ Continuous fun x => ∏ i : n, A x (l i) i
state_after: no goals
Theorem: ConformalAt.comp
File: Mathlib/Analysis/Calculus/Conformal/NormedSpace.lean

tactic: rcases hf with ⟨f', hf₁, cf⟩
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedAddCommGroup Y
inst✝³ : NormedAddCommGroup Z
inst✝² : NormedSpace ℝ X
inst✝¹ : NormedSpace ℝ Y
inst✝ : NormedSpace ℝ Z
f : X → Y
g : Y → Z
x : X
hg : ConformalAt g (f x)
hf : ConformalAt f x
⊢ ConformalAt (g ∘ f) x
state_after: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedAddCommGroup Y
inst✝³ : NormedAddCommGroup Z
inst✝² : NormedSpace ℝ X
inst✝¹ : NormedSpace ℝ Y
inst✝ : NormedSpace ℝ Z
f : X → Y
g : Y → Z
x : X
hg : ConformalAt g (f x)
f' : X →L[ℝ] Y
hf₁ : HasFDerivAt f f' x
cf : IsConformalMap f'
⊢ ConformalAt (g ∘ f) x

tactic: rcases hg with ⟨g', hg₁, cg⟩
state_before: case intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedAddCommGroup Y
inst✝³ : NormedAddCommGroup Z
inst✝² : NormedSpace ℝ X
inst✝¹ : NormedSpace ℝ Y
inst✝ : NormedSpace ℝ Z
f : X → Y
g : Y → Z
x : X
hg : ConformalAt g (f x)
f' : X →L[ℝ] Y
hf₁ : HasFDerivAt f f' x
cf : IsConformalMap f'
⊢ ConformalAt (g ∘ f) x
state_after: case intro.intro.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedAddCommGroup Y
inst✝³ : NormedAddCommGroup Z
inst✝² : NormedSpace ℝ X
inst✝¹ : NormedSpace ℝ Y
inst✝ : NormedSpace ℝ Z
f : X → Y
g : Y → Z
x : X
f' : X →L[ℝ] Y
hf₁ : HasFDerivAt f f' x
cf : IsConformalMap f'
g' : Y →L[ℝ] Z
hg₁ : HasFDerivAt g g' (f x)
cg : IsConformalMap g'
⊢ ConformalAt (g ∘ f) x

tactic: exact ⟨g'.comp f', hg₁.comp x hf₁, cg.comp cf⟩
state_before: case intro.intro.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
inst✝⁵ : NormedAddCommGroup X
inst✝⁴ : NormedAddCommGroup Y
inst✝³ : NormedAddCommGroup Z
inst✝² : NormedSpace ℝ X
inst✝¹ : NormedSpace ℝ Y
inst✝ : NormedSpace ℝ Z
f : X → Y
g : Y → Z
x : X
f' : X →L[ℝ] Y
hf₁ : HasFDerivAt f f' x
cf : IsConformalMap f'
g' : Y →L[ℝ] Z
hg₁ : HasFDerivAt g g' (f x)
cg : IsConformalMap g'
⊢ ConformalAt (g ∘ f) x
state_after: no goals
Theorem: ModularForm.slash_one
File: Mathlib/NumberTheory/ModularForms/SlashActions.lean

tactic: simp [slash, denom]
state_before: Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f✝ : ℍ → ℂ
k : ℤ
f : ℍ → ℂ
⊢ ∀ (x : ℍ), (f ∣[k]1) x = f x
state_after: no goals
Theorem: deriv_const_add
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simp only [deriv, fderiv_const_add]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
c : F
⊢ deriv (fun y => c + f y) x = deriv f x
state_after: no goals
Theorem: LinearMap.dualAnnihilator_ker_eq_range_flip
File: Mathlib/LinearAlgebra/Dual.lean

tactic: change _ = range (B.dualMap.comp (Module.evalEquiv K V₂).toLinearMap)
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
B : V₁ →ₗ[K] V₂ →ₗ[K] K
inst✝ : IsReflexive K V₂
⊢ (ker B).dualAnnihilator = range B.flip
state_after: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
B : V₁ →ₗ[K] V₂ →ₗ[K] K
inst✝ : IsReflexive K V₂
⊢ (ker B).dualAnnihilator = range (B.dualMap ∘ₗ ↑(evalEquiv K V₂))

tactic: rw [← range_dualMap_eq_dualAnnihilator_ker, range_comp_of_range_eq_top _ (LinearEquiv.range _)]
state_before: K : Type uK
inst✝⁵ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁴ : AddCommGroup V₁
inst✝³ : Module K V₁
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
B : V₁ →ₗ[K] V₂ →ₗ[K] K
inst✝ : IsReflexive K V₂
⊢ (ker B).dualAnnihilator = range (B.dualMap ∘ₗ ↑(evalEquiv K V₂))
state_after: no goals
Theorem: intervalIntegral.integral_hasStrictDerivAt_left
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: simpa only [← integral_symm] using (integral_hasStrictDerivAt_right hf.symm hmeas ha).neg
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
f : ℝ → E
c ca cb : E
l l' la la' lb lb' : Filter ℝ
lt : Filter ι
a b z : ℝ
u v ua ub va vb : ι → ℝ
inst✝¹ : FTCFilter a la la'
inst✝ : FTCFilter b lb lb'
hf : IntervalIntegrable f volume a b
hmeas : StronglyMeasurableAtFilter f (𝓝 a) volume
ha : ContinuousAt f a
⊢ HasStrictDerivAt (fun u => ∫ (x : ℝ) in u..b, f x) (-f a) a
state_after: no goals
Theorem: affinity_unitBall
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: rw [smul_unitBall_of_pos hr, vadd_ball_zero]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
r : ℝ
hr : 0 < r
x : E
⊢ x +ᵥ r • ball 0 1 = ball x r
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.ennrealToMeasure_apply
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [ennrealToMeasure, ofMeasurable_apply _ hs]
state_before: α : Type u_1
β : Type u_2
m✝ m : MeasurableSpace α
v : VectorMeasure α ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ v.ennrealToMeasure s = ↑v s
state_after: no goals
Theorem: Vector.head_ofFn
File: Mathlib/Data/Vector/Basic.lean

tactic: rw [← get_zero, get_ofFn]
state_before: n✝ : ℕ
α : Type u_1
n : ℕ
f : Fin n.succ → α
⊢ (ofFn f).head = f 0
state_after: no goals
Theorem: Finset.filter_inter_filter_neg_eq
File: Mathlib/Data/Finset/Basic.lean

tactic: simpa using (disjoint_filter_filter_neg s t p).eq_bot
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p q : α → Prop
inst✝² : DecidablePred p
inst✝¹ : DecidablePred q
s✝ : Finset α
inst✝ : DecidableEq α
s t : Finset α
⊢ filter p s ∩ filter (fun a => ¬p a) t = ∅
state_after: no goals
Theorem: RCLike.nonpos_iff
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simpa only [map_zero] using le_iff_re_im (z := z) (w := 0)
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w : K
⊢ z ≤ 0 ↔ re z ≤ 0 ∧ im z = 0
state_after: no goals
Theorem: CategoryTheory.ShortComplex.isIso_cyclesMap'_of_isIso_of_mono
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

tactic: refine ⟨h₁.liftK (h₂.i ≫ inv φ.τ₂) ?_, ?_, ?_⟩
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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ IsIso (cyclesMap' φ 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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ (h₂.i ≫ inv φ.τ₂) ≫ S₁.g = 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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ cyclesMap' φ h₁ h₂ ≫ h₁.liftK (h₂.i ≫ inv φ.τ₂) ?refine_1 = 𝟙 h₁.K

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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ h₁.liftK (h₂.i ≫ inv φ.τ₂) ?refine_1 ≫ cyclesMap' φ h₁ h₂ = 𝟙 h₂.K

tactic: simp only [assoc, ← cancel_mono φ.τ₃, zero_comp, ← φ.comm₂₃, IsIso.inv_hom_id_assoc, h₂.wi]
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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ (h₂.i ≫ inv φ.τ₂) ≫ S₁.g = 0
state_after: no goals

tactic: simp only [← cancel_mono h₁.i, assoc, h₁.liftK_i, cyclesMap'_i_assoc,
  IsIso.hom_inv_id, comp_id, id_comp]
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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ cyclesMap' φ h₁ h₂ ≫ h₁.liftK (h₂.i ≫ inv φ.τ₂) ⋯ = 𝟙 h₁.K
state_after: no goals

tactic: simp only [← cancel_mono h₂.i, assoc, cyclesMap'_i, h₁.liftK_i_assoc,
  IsIso.inv_hom_id, comp_id, id_comp]
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₃ : Mono φ.τ₃
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ h₁.liftK (h₂.i ≫ inv φ.τ₂) ⋯ ≫ cyclesMap' φ h₁ h₂ = 𝟙 h₂.K
state_after: no goals
Theorem: Nat.eq_zero_of_double_le
File: Mathlib/Data/Nat/Defs.lean

tactic: omega
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : 2 * n ≤ n
⊢ n = 0
state_after: no goals
Theorem: IsSimpleGroup.derivedSeries_succ
File: Mathlib/GroupTheory/Solvable.lean

tactic: induction' n with n ih
state_before: G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
⊢ derivedSeries G n.succ = _root_.commutator G
state_after: case zero
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
⊢ derivedSeries G (Nat.succ 0) = _root_.commutator G

case succ
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
⊢ derivedSeries G (n + 1).succ = _root_.commutator G

tactic: rw [_root_.derivedSeries_succ, ih, _root_.commutator]
state_before: case succ
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
⊢ derivedSeries G (n + 1).succ = _root_.commutator G
state_after: case succ
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆

tactic: cases' (commutator_normal (⊤ : Subgroup G) (⊤ : Subgroup G)).eq_bot_or_eq_top with h h
state_before: case succ
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆
state_after: case succ.inl
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
h : ⁅⊤, ⊤⁆ = ⊥
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆

case succ.inr
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
h : ⁅⊤, ⊤⁆ = ⊤
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆

tactic: exact derivedSeries_one G
state_before: case zero
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
⊢ derivedSeries G (Nat.succ 0) = _root_.commutator G
state_after: no goals

tactic: rw [h, commutator_bot_left]
state_before: case succ.inl
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
h : ⁅⊤, ⊤⁆ = ⊥
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆
state_after: no goals

tactic: rwa [h]
state_before: case succ.inr
G : Type u_1
G' : Type u_2
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
n : ℕ
ih : derivedSeries G n.succ = _root_.commutator G
h : ⁅⊤, ⊤⁆ = ⊤
⊢ ⁅⁅⊤, ⊤⁆, ⁅⊤, ⊤⁆⁆ = ⁅⊤, ⊤⁆
state_after: no goals