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

tactic: induction' n with nn nih
state_before: n : ℕ
⊢ ∀ (k : ℕ), hyperoperation (n + 3) 1 k = 1
state_after: case zero

⊢ ∀ (k : ℕ), hyperoperation (0 + 3) 1 k = 1

case succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
⊢ ∀ (k : ℕ), hyperoperation (nn + 1 + 3) 1 k = 1

tactic: intro k
state_before: case zero

⊢ ∀ (k : ℕ), hyperoperation (0 + 3) 1 k = 1
state_after: case zero
k : ℕ
⊢ hyperoperation (0 + 3) 1 k = 1

tactic: rw [hyperoperation_three]
state_before: case zero
k : ℕ
⊢ hyperoperation (0 + 3) 1 k = 1
state_after: case zero
k : ℕ
⊢ (fun x x_1 => x ^ x_1) 1 k = 1

tactic: dsimp
state_before: case zero
k : ℕ
⊢ (fun x x_1 => x ^ x_1) 1 k = 1
state_after: case zero
k : ℕ
⊢ 1 ^ k = 1

tactic: rw [one_pow]
state_before: case zero
k : ℕ
⊢ 1 ^ k = 1
state_after: no goals

tactic: intro k
state_before: case succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
⊢ ∀ (k : ℕ), hyperoperation (nn + 1 + 3) 1 k = 1
state_after: case succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
k : ℕ
⊢ hyperoperation (nn + 1 + 3) 1 k = 1

tactic: cases k
state_before: case succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
k : ℕ
⊢ hyperoperation (nn + 1 + 3) 1 k = 1
state_after: case succ.zero
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
⊢ hyperoperation (nn + 1 + 3) 1 0 = 1

case succ.succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
n✝ : ℕ
⊢ hyperoperation (nn + 1 + 3) 1 (n✝ + 1) = 1

tactic: rw [hyperoperation_ge_three_eq_one]
state_before: case succ.zero
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
⊢ hyperoperation (nn + 1 + 3) 1 0 = 1
state_after: no goals

tactic: rw [hyperoperation_recursion, nih]
state_before: case succ.succ
nn : ℕ
nih : ∀ (k : ℕ), hyperoperation (nn + 3) 1 k = 1
n✝ : ℕ
⊢ hyperoperation (nn + 1 + 3) 1 (n✝ + 1) = 1
state_after: no goals
Theorem: Num.zneg_toZNum
File: Mathlib/Data/Num/Lemmas.lean

tactic: cases n <;> rfl
state_before: α : Type u_1
n : Num
⊢ -n.toZNum = n.toZNumNeg
state_after: no goals
Theorem: Batteries.RBNode.Path.insertNew_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: simp [insertNew]
state_before: α : Type u_1
v : α
p : Path α
⊢ (p.insertNew v).toList = p.withList [v]
state_after: no goals
Theorem: AlgHom.apply_mem_spectrum
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: have h : ↑ₐ (φ a) - a ∈ RingHom.ker (φ : A →+* R) := by
  simp only [RingHom.mem_ker, map_sub, RingHom.coe_coe, AlgHomClass.commutes,
    Algebra.id.map_eq_id, RingHom.id_apply, sub_self]
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : Ring A
inst✝⁵ : Algebra R A
inst✝⁴ : Ring B
inst✝³ : Algebra R B
inst✝² : FunLike F A R
inst✝¹ : AlgHomClass F R A R
inst✝ : Nontrivial R
φ : F
a : A
⊢ φ a ∈ σ a
state_after: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : Ring A
inst✝⁵ : Algebra R A
inst✝⁴ : Ring B
inst✝³ : Algebra R B
inst✝² : FunLike F A R
inst✝¹ : AlgHomClass F R A R
inst✝ : Nontrivial R
φ : F
a : A
h : ↑ₐ (φ a) - a ∈ RingHom.ker ↑φ
⊢ φ a ∈ σ a

tactic: simp only [spectrum.mem_iff, ← mem_nonunits_iff,
  coe_subset_nonunits (RingHom.ker_ne_top (φ : A →+* R)) h]
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : Ring A
inst✝⁵ : Algebra R A
inst✝⁴ : Ring B
inst✝³ : Algebra R B
inst✝² : FunLike F A R
inst✝¹ : AlgHomClass F R A R
inst✝ : Nontrivial R
φ : F
a : A
h : ↑ₐ (φ a) - a ∈ RingHom.ker ↑φ
⊢ φ a ∈ σ a
state_after: no goals

tactic: simp only [RingHom.mem_ker, map_sub, RingHom.coe_coe, AlgHomClass.commutes,
  Algebra.id.map_eq_id, RingHom.id_apply, sub_self]
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : Ring A
inst✝⁵ : Algebra R A
inst✝⁴ : Ring B
inst✝³ : Algebra R B
inst✝² : FunLike F A R
inst✝¹ : AlgHomClass F R A R
inst✝ : Nontrivial R
φ : F
a : A
⊢ ↑ₐ (φ a) - a ∈ RingHom.ker ↑φ
state_after: no goals
Theorem: mem_closedBall_iff_norm''
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [mem_closedBall, dist_eq_norm_div]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ b ∈ closedBall a r ↔ ‖b / a‖ ≤ r
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.map_comp
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: ext p q hpq
state_before: C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
⊢ (z₁.comp z₂ h).map Φ = (z₁.map Φ).comp (z₂.map Φ) h
state_after: case h
C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
p q : ℤ
hpq : p + n₁₂ = q
⊢ ((z₁.comp z₂ h).map Φ).v p q hpq = ((z₁.map Φ).comp (z₂.map Φ) h).v p q hpq

tactic: dsimp
state_before: case h
C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
p q : ℤ
hpq : p + n₁₂ = q
⊢ ((z₁.comp z₂ h).map Φ).v p q hpq = ((z₁.map Φ).comp (z₂.map Φ) h).v p q hpq
state_after: case h
C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
p q : ℤ
hpq : p + n₁₂ = q
⊢ Φ.map ((z₁.comp z₂ h).v p q hpq) = ((z₁.map Φ).comp (z₂.map Φ) h).v p q hpq

tactic: simp only [map_v, comp_v _ _ h p _ q rfl (by omega), Φ.map_comp]
state_before: case h
C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
p q : ℤ
hpq : p + n₁₂ = q
⊢ Φ.map ((z₁.comp z₂ h).v p q hpq) = ((z₁.map Φ).comp (z₂.map Φ) h).v p q hpq
state_after: no goals

tactic: omega
state_before: C : Type u
inst✝⁷ : Category.{v, u} C
inst✝⁶ : Preadditive C
R : Type u_1
inst✝⁵ : Ring R
inst✝⁴ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
D : Type u_2
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive D
z z' : Cochain K L n
f : K ⟶ L
Φ✝ : C ⥤ D
inst✝¹ : Φ✝.Additive
n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
Φ : C ⥤ D
inst✝ : Φ.Additive
p q : ℤ
hpq : p + n₁₂ = q
⊢ p + n₁ + n₂ = q
state_after: no goals
Theorem: Polynomial.X_pow_comp
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: induction' k with k ih
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
k : ℕ
⊢ (X ^ k).comp p = p ^ k
state_after: case zero
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ (X ^ 0).comp p = p ^ 0

case succ
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
k : ℕ
ih : (X ^ k).comp p = p ^ k
⊢ (X ^ (k + 1)).comp p = p ^ (k + 1)

tactic: simp
state_before: case zero
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ (X ^ 0).comp p = p ^ 0
state_after: no goals

tactic: simp [pow_succ, mul_X_comp, ih]
state_before: case succ
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
k : ℕ
ih : (X ^ k).comp p = p ^ k
⊢ (X ^ (k + 1)).comp p = p ^ (k + 1)
state_after: no goals
Theorem: BoxIntegral.Box.upper_sub_lower_splitCenterBox
File: Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean

tactic: by_cases i ∈ s <;> field_simp [splitCenterBox] <;> field_simp [mul_two, two_mul]
state_before: ι : Type u_1
I✝ J I : Box ι
s : Set ι
i : ι
⊢ (I.splitCenterBox s).upper i - (I.splitCenterBox s).lower i = (I.upper i - I.lower i) / 2
state_after: no goals
Theorem: Nat.count_succ_eq_succ_count_iff
File: Mathlib/Data/Nat/Count.lean

tactic: by_cases h : p n <;> simp [h, count_succ]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ count p (n + 1) = count p n + 1 ↔ p n
state_after: no goals
Theorem: CategoryTheory.Limits.pullbackDiagonalMapIdIso_inv_snd_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean

tactic: rw [Iso.inv_comp_eq]
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
X Y Z : C
inst✝⁴ : HasPullbacks C
S T : C
f : X ⟶ T
g : Y ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f g
inst✝¹ : HasPullback (f ≫ i) (g ≫ i)
inst✝ : HasPullback (diagonal i) (map (f ≫ i) (g ≫ i) i i f g (𝟙 S) ⋯ ⋯)
⊢ (pullbackDiagonalMapIdIso f g i).inv ≫ snd ≫ fst = fst
state_after: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
X Y Z : C
inst✝⁴ : HasPullbacks C
S T : C
f : X ⟶ T
g : Y ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f g
inst✝¹ : HasPullback (f ≫ i) (g ≫ i)
inst✝ : HasPullback (diagonal i) (map (f ≫ i) (g ≫ i) i i f g (𝟙 S) ⋯ ⋯)
⊢ snd ≫ fst = (pullbackDiagonalMapIdIso f g i).hom ≫ fst

tactic: simp
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
X Y Z : C
inst✝⁴ : HasPullbacks C
S T : C
f : X ⟶ T
g : Y ⟶ T
i : T ⟶ S
inst✝³ : HasPullback i i
inst✝² : HasPullback f g
inst✝¹ : HasPullback (f ≫ i) (g ≫ i)
inst✝ : HasPullback (diagonal i) (map (f ≫ i) (g ≫ i) i i f g (𝟙 S) ⋯ ⋯)
⊢ snd ≫ fst = (pullbackDiagonalMapIdIso f g i).hom ≫ fst
state_after: no goals
Theorem: CategoryTheory.IsHomLift.eqToHom_codomain_lift_id
File: Mathlib/CategoryTheory/FiberedCategory/HomLift.lean

tactic: subst hS hab
state_before: 𝒮 : Type u₁
𝒳 : Type u₂
inst✝¹ : Category.{v₁, u₂} 𝒳
inst✝ : Category.{v₂, u₁} 𝒮
p✝ p : 𝒳 ⥤ 𝒮
a b : 𝒳
hab : a = b
S : 𝒮
hS : p.obj b = S
⊢ p.IsHomLift (𝟙 S) (eqToHom hab)
state_after: 𝒮 : Type u₁
𝒳 : Type u₂
inst✝¹ : Category.{v₁, u₂} 𝒳
inst✝ : Category.{v₂, u₁} 𝒮
p✝ p : 𝒳 ⥤ 𝒮
a : 𝒳
⊢ p.IsHomLift (𝟙 (p.obj a)) (eqToHom ⋯)

tactic: simp
state_before: 𝒮 : Type u₁
𝒳 : Type u₂
inst✝¹ : Category.{v₁, u₂} 𝒳
inst✝ : Category.{v₂, u₁} 𝒮
p✝ p : 𝒳 ⥤ 𝒮
a : 𝒳
⊢ p.IsHomLift (𝟙 (p.obj a)) (eqToHom ⋯)
state_after: no goals
Theorem: EuclideanGeometry.tan_oangle_left_mul_dist_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (∡ p₃ p₁ p₂).sign = 1 := by rw [← oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₃ p₁ p₂).tan * dist p₁ p₂ = dist p₃ p₂
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₃ p₁ p₂).sign = 1
⊢ (∡ p₃ p₁ p₂).tan * dist p₁ p₂ = dist p₃ p₂

tactic: rw [oangle_eq_angle_of_sign_eq_one hs, angle_comm, Real.Angle.tan_coe,
  tan_angle_mul_dist_of_angle_eq_pi_div_two (angle_rev_eq_pi_div_two_of_oangle_eq_pi_div_two h)
    (Or.inr (left_ne_of_oangle_eq_pi_div_two h))]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₃ p₁ p₂).sign = 1
⊢ (∡ p₃ p₁ p₂).tan * dist p₁ p₂ = dist p₃ p₂
state_after: no goals

tactic: rw [← oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₃ p₁ p₂).sign = 1
state_after: no goals
Theorem: abs_sub_map_le_div
File: Mathlib/Algebra/Order/Hom/Basic.lean

tactic: rw [abs_sub_le_iff, sub_le_iff_le_add', sub_le_iff_le_add']
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ |f x - f y| ≤ f (x / y)
state_after: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f x ≤ f y + f (x / y) ∧ f y ≤ f x + f (x / y)

tactic: exact ⟨le_map_add_map_div _ _ _, le_map_add_map_div' _ _ _⟩
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : LinearOrderedAddCommGroup β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f x ≤ f y + f (x / y) ∧ f y ≤ f x + f (x / y)
state_after: no goals
Theorem: List.length_join'
File: Mathlib/Data/List/Join.lean

tactic: induction L <;> [rfl; simp only [*, join, map, Nat.sum_cons, length_append]]
state_before: α : Type u_1
β : Type u_2
L : List (List α)
⊢ L.join.length = Nat.sum (map length L)
state_after: no goals
Theorem: EMetric.tendsto_nhdsWithin_nhdsWithin
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: simp
state_before: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x✝² y z : α
ε✝ ε₁ ε₂ : ℝ≥0∞
s t✝ : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
t : Set β
a : α
b : β
ε : ℝ≥0∞
x✝¹ : 0 < ε
δ : ℝ≥0∞
x✝ : 0 < δ
x : α
⊢ x ∈ ball a δ ∩ s → f x ∈ ball b ε ∩ t ↔ x ∈ s → edist x a < δ → f x ∈ t ∧ edist (f x) b < ε
state_after: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x✝² y z : α
ε✝ ε₁ ε₂ : ℝ≥0∞
s t✝ : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
t : Set β
a : α
b : β
ε : ℝ≥0∞
x✝¹ : 0 < ε
δ : ℝ≥0∞
x✝ : 0 < δ
x : α
⊢ edist x a < δ → x ∈ s → edist (f x) b < ε ∧ f x ∈ t ↔ x ∈ s → edist x a < δ → f x ∈ t ∧ edist (f x) b < ε

tactic: tauto
state_before: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x✝² y z : α
ε✝ ε₁ ε₂ : ℝ≥0∞
s t✝ : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
t : Set β
a : α
b : β
ε : ℝ≥0∞
x✝¹ : 0 < ε
δ : ℝ≥0∞
x✝ : 0 < δ
x : α
⊢ edist x a < δ → x ∈ s → edist (f x) b < ε ∧ f x ∈ t ↔ x ∈ s → edist x a < δ → f x ∈ t ∧ edist (f x) b < ε
state_after: no goals
Theorem: HasFDerivWithinAt.of_nhdsWithin_eq_bot
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: rw [← hasFDerivWithinAt_diff_singleton x, HasFDerivWithinAt, h, hasFDerivAtFilter_iff_isLittleO]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : 𝓝[s \ {x}] x = ⊥
⊢ HasFDerivWithinAt f f' s x
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : 𝓝[s \ {x}] x = ⊥
⊢ (fun x' => f x' - f x - f' (x' - x)) =o[⊥] fun x' => x' - x

tactic: apply isLittleO_bot
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : 𝓝[s \ {x}] x = ⊥
⊢ (fun x' => f x' - f x - f' (x' - x)) =o[⊥] fun x' => x' - x
state_after: no goals
Theorem: Polynomial.X_pow_sub_one_separable_iff
File: Mathlib/FieldTheory/Separable.lean

tactic: refine ⟨?_, fun h => separable_X_pow_sub_C_unit 1 (IsUnit.mk0 (↑n) h)⟩
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
⊢ (X ^ n - 1).Separable ↔ ↑n ≠ 0
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
⊢ (X ^ n - 1).Separable → ↑n ≠ 0

tactic: rw [separable_def', derivative_sub, derivative_X_pow, derivative_one, sub_zero]
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
⊢ (X ^ n - 1).Separable → ↑n ≠ 0
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
⊢ (∃ a b, a * (X ^ n - 1) + b * (C ↑n * X ^ (n - 1)) = 1) → ↑n ≠ 0

tactic: rintro (h : IsCoprime _ _) hn'
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
⊢ (∃ a b, a * (X ^ n - 1) + b * (C ↑n * X ^ (n - 1)) = 1) → ↑n ≠ 0
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
h : IsCoprime (X ^ n - 1) (C ↑n * X ^ (n - 1))
hn' : ↑n = 0
⊢ False

tactic: rw [hn', C_0, zero_mul, isCoprime_zero_right] at h
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
h : IsCoprime (X ^ n - 1) (C ↑n * X ^ (n - 1))
hn' : ↑n = 0
⊢ False
state_after: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
h : IsUnit (X ^ n - 1)
hn' : ↑n = 0
⊢ False

tactic: exact not_isUnit_X_pow_sub_one F n h
state_before: F : Type u
inst✝¹ : Field F
K : Type v
inst✝ : Field K
n : ℕ
h : IsUnit (X ^ n - 1)
hn' : ↑n = 0
⊢ False
state_after: no goals
Theorem: IsSemisimpleModule.sSup_simples_eq_top
File: Mathlib/RingTheory/SimpleModule.lean

tactic: simpa only [isSimpleModule_iff_isAtom] using sSup_atoms_eq_top
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSemisimpleModule R M
⊢ sSup {m | IsSimpleModule R ↥m} = ⊤
state_after: no goals
Theorem: MeasureTheory.Measure.singularPart_eq_zero_of_ac
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [← MutuallySingular.self_iff]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
h : μ ≪ ν
⊢ μ.singularPart ν = 0
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
h : μ ≪ ν
⊢ μ.singularPart ν ⟂ₘ μ.singularPart ν

tactic: exact MutuallySingular.mono_ac (mutuallySingular_singularPart _ _)
  AbsolutelyContinuous.rfl ((absolutelyContinuous_of_le (singularPart_le _ _)).trans h)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
h : μ ≪ ν
⊢ μ.singularPart ν ⟂ₘ μ.singularPart ν
state_after: no goals
Theorem: finprod_mem_comm
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: lift s to Finset α using hs
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ s : Set α
t : Set β
f : α → β → M
hs : s.Finite
ht : t.Finite
⊢ ∏ᶠ (i : α) (_ : i ∈ s) (j : β) (_ : j ∈ t), f i j = ∏ᶠ (j : β) (_ : j ∈ t) (i : α) (_ : i ∈ s), f i j
state_after: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
t : Set β
f : α → β → M
ht : t.Finite
s : Finset α
⊢ ∏ᶠ (i : α) (_ : i ∈ ↑s) (j : β) (_ : j ∈ t), f i j = ∏ᶠ (j : β) (_ : j ∈ t) (i : α) (_ : i ∈ ↑s), f i j

tactic: lift t to Finset β using ht
state_before: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
t : Set β
f : α → β → M
ht : t.Finite
s : Finset α
⊢ ∏ᶠ (i : α) (_ : i ∈ ↑s) (j : β) (_ : j ∈ t), f i j = ∏ᶠ (j : β) (_ : j ∈ t) (i : α) (_ : i ∈ ↑s), f i j
state_after: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
f : α → β → M
s : Finset α
t : Finset β
⊢ ∏ᶠ (i : α) (_ : i ∈ ↑s) (j : β) (_ : j ∈ ↑t), f i j = ∏ᶠ (j : β) (_ : j ∈ ↑t) (i : α) (_ : i ∈ ↑s), f i j

tactic: simp only [finprod_mem_coe_finset]
state_before: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
f : α → β → M
s : Finset α
t : Finset β
⊢ ∏ᶠ (i : α) (_ : i ∈ ↑s) (j : β) (_ : j ∈ ↑t), f i j = ∏ᶠ (j : β) (_ : j ∈ ↑t) (i : α) (_ : i ∈ ↑s), f i j
state_after: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
f : α → β → M
s : Finset α
t : Finset β
⊢ ∏ i ∈ s, ∏ i_1 ∈ t, f i i_1 = ∏ i ∈ t, ∏ i_1 ∈ s, f i_1 i

tactic: exact Finset.prod_comm
state_before: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f✝ g : α → M
a b : α
s✝ t✝ : Set α
f : α → β → M
s : Finset α
t : Finset β
⊢ ∏ i ∈ s, ∏ i_1 ∈ t, f i i_1 = ∏ i ∈ t, ∏ i_1 ∈ s, f i_1 i
state_after: no goals
Theorem: RCLike.toOrderedSMul
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: replace hab := hab.le
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hab : a < b
hr : 0 < r
⊢ r • a ≤ r • b
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : a ≤ b
⊢ r • a ≤ r • b

tactic: rw [RCLike.le_iff_re_im] at hab
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : a ≤ b
⊢ r • a ≤ r • b
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : re a ≤ re b ∧ im a = im b
⊢ r • a ≤ r • b

tactic: rw [RCLike.le_iff_re_im, smul_re, smul_re, smul_im, smul_im]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : re a ≤ re b ∧ im a = im b
⊢ r • a ≤ r • b
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : re a ≤ re b ∧ im a = im b
⊢ r * re a ≤ r * re b ∧ r * im a = r * im b

tactic: exact hab.imp (fun h => mul_le_mul_of_nonneg_left h hr.le) (congr_arg _)
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z w a b : K
r : ℝ
hr : 0 < r
hab : re a ≤ re b ∧ im a = im b
⊢ r * re a ≤ r * re b ∧ r * im a = r * im b
state_after: no goals
Theorem: String.Iterator.ValidFor.pos_eq_zero
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [h.pos, Pos.ext_iff]
state_before: l r : List Char
it : Iterator
h : ValidFor l r it
⊢ it.i = 0 ↔ l = []
state_after: no goals
Theorem: MulChar.map_ringChar
File: Mathlib/NumberTheory/MulChar/Basic.lean

tactic: rw [ringChar.Nat.cast_ringChar, χ.map_zero]
state_before: R✝ : Type u_1
inst✝³ : CommMonoid R✝
R' : Type u_2
inst✝² : CommMonoidWithZero R'
R : Type u_3
inst✝¹ : CommRing R
inst✝ : Nontrivial R
χ : MulChar R R'
⊢ χ ↑(ringChar R) = 0
state_after: no goals