1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PerfectRing.lift_lift
File: Mathlib/FieldTheory/IsPerfectClosure.lean

tactic: refine IsPRadical.injective_comp_of_perfect _ (g.comp i) p ?_
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝¹¹ : CommRing K
inst✝¹⁰ : CommRing L
inst✝⁹ : CommRing M
inst✝⁸ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁷ : ExpChar K p
inst✝⁶ : ExpChar L p
inst✝⁵ : ExpChar M p
inst✝⁴ : ExpChar N p
inst✝³ : PerfectRing M p
inst✝² : IsPRadical i p
inst✝¹ : IsPRadical g p
inst✝ : IsPRadical (g.comp i) p
⊢ lift g (lift i j p) p = lift (g.comp i) j p
state_after: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝¹¹ : CommRing K
inst✝¹⁰ : CommRing L
inst✝⁹ : CommRing M
inst✝⁸ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁷ : ExpChar K p
inst✝⁶ : ExpChar L p
inst✝⁵ : ExpChar M p
inst✝⁴ : ExpChar N p
inst✝³ : PerfectRing M p
inst✝² : IsPRadical i p
inst✝¹ : IsPRadical g p
inst✝ : IsPRadical (g.comp i) p
⊢ (fun f => f.comp (g.comp i)) (lift g (lift i j p) p) = (fun f => f.comp (g.comp i)) (lift (g.comp i) j p)

tactic: simp_rw [← RingHom.comp_assoc _ _ (lift g _ p), lift_comp]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝¹¹ : CommRing K
inst✝¹⁰ : CommRing L
inst✝⁹ : CommRing M
inst✝⁸ : CommRing N
i : K →+* L
j : K →+* M
k : K →+* N
f : L →+* M
g : L →+* N
p : ℕ
inst✝⁷ : ExpChar K p
inst✝⁶ : ExpChar L p
inst✝⁵ : ExpChar M p
inst✝⁴ : ExpChar N p
inst✝³ : PerfectRing M p
inst✝² : IsPRadical i p
inst✝¹ : IsPRadical g p
inst✝ : IsPRadical (g.comp i) p
⊢ (fun f => f.comp (g.comp i)) (lift g (lift i j p) p) = (fun f => f.comp (g.comp i)) (lift (g.comp i) j p)
state_after: no goals
Theorem: Nat.lt_base_pow_length_digits'
File: Mathlib/Data/Nat/Digits.lean

tactic: convert @ofDigits_lt_base_pow_length' b (digits (b + 2) m) fun _ => digits_lt_base'
state_before: n b m : ℕ
⊢ m < (b + 2) ^ ((b + 2).digits m).length
state_after: case h.e'_3
n b m : ℕ
⊢ m = ofDigits (b + 2) ((b + 2).digits m)

tactic: rw [ofDigits_digits (b + 2) m]
state_before: case h.e'_3
n b m : ℕ
⊢ m = ofDigits (b + 2) ((b + 2).digits m)
state_after: no goals
Theorem: LowerSet.coe_iInf₂
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [coe_iInf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (LowerSet α)
s t : LowerSet α
a : α
f : (i : ι) → κ i → LowerSet α
⊢ ↑(⨅ i, ⨅ j, f i j) = ⋂ i, ⋂ j, ↑(f i j)
state_after: no goals
Theorem: Nat.exists_lt_card_finite_nth_eq
File: Mathlib/Data/Nat/Nth.lean

tactic: rwa [← @Set.mem_setOf_eq _ _ p, ← image_nth_Iio_card hf] at h
state_before: p : ℕ → Prop
hf : (setOf p).Finite
x : ℕ
h : p x
⊢ ∃ n < hf.toFinset.card, nth p n = x
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.ι_matrix
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: ext
state_before: J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
⊢ ι f j ≫ matrix m = lift fun k => m j k
state_after: case w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
j✝ : K
⊢ (ι f j ≫ matrix m) ≫ π g j✝ = (lift fun k => m j k) ≫ π g j✝

tactic: simp [biproduct.matrix]
state_before: case w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : (j : J) → (k : K) → f j ⟶ g k
j : J
j✝ : K
⊢ (ι f j ≫ matrix m) ≫ π g j✝ = (lift fun k => m j k) ≫ π g j✝
state_after: no goals
Theorem: norm_deriv_le_of_lipschitzOn
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

tactic: simpa [norm_deriv_eq_norm_fderiv] using norm_fderiv_le_of_lipschitzOn 𝕜 hs hlip
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 L₁ L₂ : Filter 𝕜
f : 𝕜 → F
x₀ : 𝕜
s : Set 𝕜
hs : s ∈ 𝓝 x₀
C : ℝ≥0
hlip : LipschitzOnWith C f s
⊢ ‖deriv f x₀‖ ≤ ↑C
state_after: no goals
Theorem: Complex.arg_of_re_neg_of_im_neg
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: simp only [arg, hx_re.not_le, hx_im.not_le, if_false]
state_before: a x✝ z x : ℂ
hx_re : x.re < 0
hx_im : x.im < 0
⊢ x.arg = Real.arcsin ((-x).im / abs x) - π
state_after: no goals
Theorem: Monoid.PushoutI.NormalWord.summand_smul_def
File: Mathlib/GroupTheory/PushoutI.lean

tactic: dsimp [NormalWord.mulAction, instHSMul, SMul.smul]
state_before: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
g : G i
w : NormalWord d
⊢ (of i) g • w =
    (equivPair i).symm
      (let __src := (equivPair i) w;
      { head := g * ((equivPair i) w).head, tail := __src.tail, fstIdx_ne := ⋯, normalized := ⋯ })
state_after: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
g : G i
w : NormalWord d
⊢ (lift (fun i => MulAction.toEndHom) MulAction.toEndHom ⋯) ((of i) g) w =
    (equivPair i).symm
      { head := g * ((equivPair i) w).head, tail := ((equivPair i) w).tail, fstIdx_ne := ⋯, normalized := ⋯ }

tactic: rw [lift_of]
state_before: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
g : G i
w : NormalWord d
⊢ (lift (fun i => MulAction.toEndHom) MulAction.toEndHom ⋯) ((of i) g) w =
    (equivPair i).symm
      { head := g * ((equivPair i) w).head, tail := ((equivPair i) w).tail, fstIdx_ne := ⋯, normalized := ⋯ }
state_after: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
g : G i
w : NormalWord d
⊢ MulAction.toEndHom g w =
    (equivPair i).symm
      { head := g * ((equivPair i) w).head, tail := ((equivPair i) w).tail, fstIdx_ne := ⋯, normalized := ⋯ }

tactic: rfl
state_before: ι : Type u_1
G : ι → Type u_2
H : Type u_3
K : Type u_4
inst✝⁴ : Monoid K
inst✝³ : (i : ι) → Group (G i)
inst✝² : Group H
φ : (i : ι) → H →* G i
d : Transversal φ
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → DecidableEq (G i)
i : ι
g : G i
w : NormalWord d
⊢ MulAction.toEndHom g w =
    (equivPair i).symm
      { head := g * ((equivPair i) w).head, tail := ((equivPair i) w).tail, fstIdx_ne := ⋯, normalized := ⋯ }
state_after: no goals
Theorem: Algebra.rank_le_of_injective_injective
File: Mathlib/LinearAlgebra/Dimension/Basic.lean

tactic: simpa only [lift_id] using lift_rank_le_of_injective_injective i j hi hj hc
state_before: R✝ : Type u
R'✝ : Type u'
M M₁ : Type v
M' : Type v'
inst✝¹⁸ : Ring R✝
inst✝¹⁷ : Ring R'✝
inst✝¹⁶ : AddCommGroup M
inst✝¹⁵ : AddCommGroup M'
inst✝¹⁴ : AddCommGroup M₁
inst✝¹³ : Module R✝ M
inst✝¹² : Module R✝ M'
inst✝¹¹ : Module R✝ M₁
inst✝¹⁰ : Module R'✝ M'
inst✝⁹ : Module R'✝ M₁
R : Type w
S : Type v
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Algebra R S
R' : Type w'
S'✝ : Type v'
inst✝⁵ : CommRing R'
inst✝⁴ : Ring S'✝
inst✝³ : Algebra R' S'✝
S' : Type v
inst✝² : CommRing R'
inst✝¹ : Ring S'
inst✝ : Algebra R' S'
i : R' →+* R
j : S →+* S'
hi : Injective ⇑i
hj : Injective ⇑j
hc : (j.comp (algebraMap R S)).comp i = algebraMap R' S'
⊢ Module.rank R S ≤ Module.rank R' S'
state_after: no goals
Theorem: Ordinal.range_familyOfBFamily'
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: refine Set.ext fun a => ⟨?_, ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
⊢ range (familyOfBFamily' r ho f) = o.brange f
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
a : α
⊢ a ∈ range (familyOfBFamily' r ho f) → a ∈ o.brange f

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
a : α
⊢ a ∈ o.brange f → a ∈ range (familyOfBFamily' r ho f)

tactic: rintro ⟨b, rfl⟩
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
a : α
⊢ a ∈ range (familyOfBFamily' r ho f) → a ∈ o.brange f
state_after: case refine_1.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
b : ι
⊢ familyOfBFamily' r ho f b ∈ o.brange f

tactic: apply mem_brange_self
state_before: case refine_1.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
b : ι
⊢ familyOfBFamily' r ho f b ∈ o.brange f
state_after: no goals

tactic: rintro ⟨i, hi, rfl⟩
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
a : α
⊢ a ∈ o.brange f → a ∈ range (familyOfBFamily' r ho f)
state_after: case refine_2.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
i : Ordinal.{u}
hi : i < o
⊢ f i hi ∈ range (familyOfBFamily' r ho f)

tactic: exact ⟨_, familyOfBFamily'_enum _ _ _ _ _⟩
state_before: case refine_2.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
r : ι → ι → Prop
inst✝ : IsWellOrder ι r
o : Ordinal.{u}
ho : type r = o
f : (a : Ordinal.{u}) → a < o → α
i : Ordinal.{u}
hi : i < o
⊢ f i hi ∈ range (familyOfBFamily' r ho f)
state_after: no goals
Theorem: Sbtw.angle₃₂₁_eq_pi
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [← h.angle₁₂₃_eq_pi, angle_comm]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p p₀ p₁✝ p₂✝ p₁ p₂ p₃ : P
h : Sbtw ℝ p₁ p₂ p₃
⊢ ∠ p₃ p₂ p₁ = π
state_after: no goals
Theorem: ProbabilityTheory.lintegral_gammaPDF_of_nonpos
File: Mathlib/Probability/Distributions/Gamma.lean

tactic: rw [setLIntegral_congr_fun (g := fun _ ↦ 0) measurableSet_Iio]
state_before: x a r : ℝ
hx : x ≤ 0
⊢ ∫⁻ (y : ℝ) in Iio x, gammaPDF a r y = 0
state_after: x a r : ℝ
hx : x ≤ 0
⊢ ∫⁻ (x : ℝ) in Iio x, 0 = 0

x a r : ℝ
hx : x ≤ 0
⊢ ∀ᵐ (x_1 : ℝ), x_1 ∈ Iio x → gammaPDF a r x_1 = 0

tactic: rw [lintegral_zero, ← ENNReal.ofReal_zero]
state_before: x a r : ℝ
hx : x ≤ 0
⊢ ∫⁻ (x : ℝ) in Iio x, 0 = 0
state_after: no goals

tactic: simp only [gammaPDF_eq, ge_iff_le, ENNReal.ofReal_eq_zero]
state_before: x a r : ℝ
hx : x ≤ 0
⊢ ∀ᵐ (x_1 : ℝ), x_1 ∈ Iio x → gammaPDF a r x_1 = 0
state_after: x a r : ℝ
hx : x ≤ 0
⊢ ∀ᵐ (x_1 : ℝ), x_1 ∈ Iio x → (if 0 ≤ x_1 then r ^ a / Gamma a * x_1 ^ (a - 1) * rexp (-(r * x_1)) else 0) ≤ 0

tactic: filter_upwards with a (_ : a < _)
state_before: x a r : ℝ
hx : x ≤ 0
⊢ ∀ᵐ (x_1 : ℝ), x_1 ∈ Iio x → (if 0 ≤ x_1 then r ^ a / Gamma a * x_1 ^ (a - 1) * rexp (-(r * x_1)) else 0) ≤ 0
state_after: case h
x a✝ r : ℝ
hx : x ≤ 0
a : ℝ
x✝ : a < x
⊢ (if 0 ≤ a then r ^ a✝ / Gamma a✝ * a ^ (a✝ - 1) * rexp (-(r * a)) else 0) ≤ 0

tactic: rw [if_neg (by linarith)]
state_before: case h
x a✝ r : ℝ
hx : x ≤ 0
a : ℝ
x✝ : a < x
⊢ (if 0 ≤ a then r ^ a✝ / Gamma a✝ * a ^ (a✝ - 1) * rexp (-(r * a)) else 0) ≤ 0
state_after: no goals

tactic: linarith
state_before: x a✝ r : ℝ
hx : x ≤ 0
a : ℝ
x✝ : a < x
⊢ ¬0 ≤ a
state_after: no goals
Theorem: Cardinal.cast_toNat_of_lt_aleph0
File: Mathlib/SetTheory/Cardinal/ToNat.lean

tactic: lift c to ℕ using h
state_before: α : Type u
c✝ d : Cardinal.{u}
c : Cardinal.{u_1}
h : c < ℵ₀
⊢ ↑(toNat c) = c
state_after: case intro
α : Type u
c✝ d : Cardinal.{u}
c : ℕ
⊢ ↑(toNat ↑c) = ↑c

tactic: rw [toNat_natCast]
state_before: case intro
α : Type u
c✝ d : Cardinal.{u}
c : ℕ
⊢ ↑(toNat ↑c) = ↑c
state_after: no goals
Theorem: Finset.image₂_union_left
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
⊢ ↑(image₂ f (s ∪ s') t) = ↑(image₂ f s t ∪ image₂ f s' t)
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
⊢ image2 f (↑s ∪ ↑s') ↑t = image2 f ↑s ↑t ∪ image2 f ↑s' ↑t

tactic: exact image2_union_left
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
⊢ image2 f (↑s ∪ ↑s') ↑t = image2 f ↑s ↑t ∪ image2 f ↑s' ↑t
state_after: no goals
Theorem: SchwartzMap.decay_smul_aux
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

tactic: rw [mul_comm ‖c‖, mul_assoc, iteratedFDeriv_const_smul_apply (f.smooth _),
  norm_smul c (iteratedFDeriv ℝ n (⇑f) x)]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
k n : ℕ
f : 𝓢(E, F)
c : 𝕜
x : E
⊢ ‖x‖ ^ k * ‖iteratedFDeriv ℝ n (c • ⇑f) x‖ = ‖c‖ * ‖x‖ ^ k * ‖iteratedFDeriv ℝ n (⇑f) x‖
state_after: no goals
Theorem: CauchySeq.mem_entourage
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: haveI := h.nonempty
state_before: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V
state_after: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this : Nonempty β
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V

tactic: have := h.tendsto_uniformity
state_before: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this : Nonempty β
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V
state_after: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this✝ : Nonempty β
this : Tendsto (Prod.map u u) atTop (𝓤 α)
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V

tactic: rw [← prod_atTop_atTop_eq] at this
state_before: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this✝ : Nonempty β
this : Tendsto (Prod.map u u) atTop (𝓤 α)
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V
state_after: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this✝ : Nonempty β
this : Tendsto (Prod.map u u) (atTop ×ˢ atTop) (𝓤 α)
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V

tactic: simpa [MapsTo] using atTop_basis.prod_self.tendsto_left_iff.1 this V hV
state_before: α : Type u
β✝ : Type v
uniformSpace : UniformSpace α
β : Type u_1
inst✝ : SemilatticeSup β
u : β → α
h : CauchySeq u
V : Set (α × α)
hV : V ∈ 𝓤 α
this✝ : Nonempty β
this : Tendsto (Prod.map u u) (atTop ×ˢ atTop) (𝓤 α)
⊢ ∃ k₀, ∀ (i j : β), k₀ ≤ i → k₀ ≤ j → (u i, u j) ∈ V
state_after: no goals
Theorem: geom_sum_pos'
File: Mathlib/Algebra/GeomSum.lean

tactic: obtain _ | _ | n := n
state_before: α : Type u
β : Type u_1
n : ℕ
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
hn : n ≠ 0
⊢ 0 < ∑ i ∈ range n, x ^ i
state_after: case zero
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
hn : 0 ≠ 0
⊢ 0 < ∑ i ∈ range 0, x ^ i

case succ.zero
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
hn : 0 + 1 ≠ 0
⊢ 0 < ∑ i ∈ range (0 + 1), x ^ i

case succ.succ
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i

tactic: obtain hx' | hx' := lt_or_le x 0
state_before: case succ.succ
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i
state_after: case succ.succ.inl
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
hx' : x < 0
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i

case succ.succ.inr
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
hx' : 0 ≤ x
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i

tactic: cases hn rfl
state_before: case zero
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
hn : 0 ≠ 0
⊢ 0 < ∑ i ∈ range 0, x ^ i
state_after: no goals

tactic: simp only [zero_add, range_one, sum_singleton, pow_zero, zero_lt_one]
state_before: case succ.zero
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
hn : 0 + 1 ≠ 0
⊢ 0 < ∑ i ∈ range (0 + 1), x ^ i
state_after: no goals

tactic: exact (geom_sum_pos_and_lt_one hx' hx n.one_lt_succ_succ).1
state_before: case succ.succ.inl
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
hx' : x < 0
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i
state_after: no goals

tactic: exact geom_sum_pos hx' (by simp only [Nat.succ_ne_zero, Ne, not_false_iff])
state_before: case succ.succ.inr
α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
hx' : 0 ≤ x
⊢ 0 < ∑ i ∈ range (n + 1 + 1), x ^ i
state_after: no goals

tactic: simp only [Nat.succ_ne_zero, Ne, not_false_iff]
state_before: α : Type u
β : Type u_1
x : α
inst✝ : LinearOrderedRing α
hx : 0 < x + 1
n : ℕ
hn : n + 1 + 1 ≠ 0
hx' : 0 ≤ x
⊢ n + 1 + 1 ≠ 0
state_after: no goals
Theorem: biInter_basis_nhds
File: Mathlib/Topology/Separation.lean

tactic: rw [← h.ker, ker_nhds]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
ι : Sort u_3
p : ι → Prop
s : ι → Set X
x : X
h : (𝓝 x).HasBasis p s
⊢ ⋂ i, ⋂ (_ : p i), s i = {x}
state_after: no goals
Theorem: WittVector.coeff_frobeniusFun
File: Mathlib/RingTheory/WittVector/Frobenius.lean

tactic: rw [frobeniusFun, coeff_mk]
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ x.frobeniusFun.coeff n = (aeval x.coeff) (frobeniusPoly p n)
state_after: no goals
Theorem: DirectSum.decompose_of_mem_same
File: Mathlib/Algebra/DirectSum/Decomposition.lean

tactic: rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
state_before: ι : Type u_1
R : Type u_2
M : Type u_3
σ : Type u_4
inst✝⁴ : DecidableEq ι
inst✝³ : AddCommMonoid M
inst✝² : SetLike σ M
inst✝¹ : AddSubmonoidClass σ M
ℳ : ι → σ
inst✝ : Decomposition ℳ
x : M
i : ι
hx : x ∈ ℳ i
⊢ ↑(((decompose ℳ) x) i) = x
state_after: no goals
Theorem: WithLp.prod_nndist_eq_add
File: Mathlib/Analysis/NormedSpace/ProdLp.lean

tactic: push_cast
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp✝ : Fact (1 ≤ p)
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
hp : p ≠ ⊤
x y : WithLp p (α × β)
⊢ ↑(nndist x y) = ↑((nndist x.1 y.1 ^ p.toReal + nndist x.2 y.2 ^ p.toReal) ^ (1 / p.toReal))
state_after: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp✝ : Fact (1 ≤ p)
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
hp : p ≠ ⊤
x y : WithLp p (α × β)
⊢ dist x y = (dist x.1 y.1 ^ p.toReal + dist x.2 y.2 ^ p.toReal) ^ (1 / p.toReal)

tactic: exact prod_dist_eq_add (p.toReal_pos_iff_ne_top.mpr hp) _ _
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp✝ : Fact (1 ≤ p)
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
hp : p ≠ ⊤
x y : WithLp p (α × β)
⊢ dist x y = (dist x.1 y.1 ^ p.toReal + dist x.2 y.2 ^ p.toReal) ^ (1 / p.toReal)
state_after: no goals
Theorem: add_halves'
File: Mathlib/Algebra/CharZero/Lemmas.lean

tactic: rw [← add_div, half_add_self]
state_before: R : Type u_1
inst✝¹ : DivisionRing R
inst✝ : CharZero R
a : R
⊢ a / 2 + a / 2 = a
state_after: no goals
Theorem: IsLocalization.sec_spec'
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: rw [mul_comm, sec_spec]
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
z : S
⊢ (algebraMap R S) (sec M z).1 = (algebraMap R S) ↑(sec M z).2 * z
state_after: no goals
Theorem: List.isRotated_cyclicPermutations_iff
File: Mathlib/Data/List/Rotate.lean

tactic: simp only [IsRotated, ← cyclicPermutations_rotate, cyclicPermutations_inj]
state_before: α : Type u
l✝ l'✝ l l' : List α
⊢ l.cyclicPermutations ~r l'.cyclicPermutations ↔ l ~r l'
state_after: no goals
Theorem: Seminorm.mem_closedBall_self
File: Mathlib/Analysis/Seminorm.lean

tactic: simp [hr]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
hr : 0 ≤ r
⊢ x ∈ p.closedBall x r
state_after: no goals