ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Submonoid.LocalizationMap.lift_of_comp
File: Mathlib/GroupTheory/MonoidLocalization/Basic.lean

Proof steps:
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
⊢ f.lift ⋯ = j
state_after: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ (f.lift ⋯) x✝ = j x✝
tactic: ext
state_before: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ (f.lift ⋯) x✝ = j x✝
state_after: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ (j.comp f.toMap) (f.sec x✝).1 = (j.comp f.toMap) ↑(f.sec x✝).2 * j x✝
tactic: rw [lift_spec]
state_before: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ (j.comp f.toMap) (f.sec x✝).1 = (j.comp f.toMap) ↑(f.sec x✝).2 * j x✝
state_after: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ j (f.toMap (f.sec x✝).1) = j (f.toMap ↑(f.sec x✝).2) * j x✝
tactic: show j _ = j _ * _
state_before: case h
M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
g : M →* P
hg : ∀ (y : ↥S), IsUnit (g ↑y)
j : N →* P
x✝ : N
⊢ j (f.toMap (f.sec x✝).1) = j (f.toMap ↑(f.sec x✝).2) * j x✝
state_after: no goals
tactic: erw [← j.map_mul, sec_spec']
Theorem: Int.neg_log_inv_eq_clog
File: Mathlib/Data/Int/Log.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
r : R
⊢ -log b r⁻¹ = clog b r
state_after: no goals
tactic: rw [log_inv, neg_neg]
Theorem: Path.delayReflLeft_one
File: Mathlib/Topology/Homotopy/HSpaces.lean

Proof steps:
state_before: X : Type u
inst✝ : TopologicalSpace X
x y : X
γ : Path x y
⊢ delayReflLeft 1 γ = γ
state_after: no goals
tactic: simp only [delayReflLeft, delayReflRight_one, Path.symm_symm]
Theorem: Nat.pow_le_of_le_log
File: Mathlib/Data/Nat/Log.lean

Proof steps:
state_before: b x y : ℕ
hy : y ≠ 0
h : x ≤ log b y
⊢ b ^ x ≤ y
state_after: b x y : ℕ
hy : y ≠ 0
h : x ≤ log b y
hb : b ≤ 1
⊢ b ^ x ≤ y
tactic: refine (le_or_lt b 1).elim (fun hb => ?_) fun hb => (pow_le_iff_le_log hb hy).2 h
state_before: b x y : ℕ
hy : y ≠ 0
h : x ≤ log b y
hb : b ≤ 1
⊢ b ^ x ≤ y
state_after: b x y : ℕ
hy : y ≠ 0
h : x = 0
hb : b ≤ 1
⊢ b ^ x ≤ y
tactic: rw [log_of_left_le_one hb, Nat.le_zero] at h
state_before: b x y : ℕ
hy : y ≠ 0
h : x = 0
hb : b ≤ 1
⊢ b ^ x ≤ y
state_after: no goals
tactic: rwa [h, Nat.pow_zero, one_le_iff_ne_zero]
Theorem: LieSubalgebra.exists_nested_lieIdeal_ofLe_normalizer
File: Mathlib/Algebra/Lie/Normalizer.lean

Proof steps:
state_before: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
H K : LieSubalgebra R L
h₁ : H ≤ K
h₂ : K ≤ H.normalizer
⊢ ∃ I, lieIdealSubalgebra R (↥K) I = ofLe h₁
state_after: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
H K : LieSubalgebra R L
h₁ : H ≤ K
h₂ : K ≤ H.normalizer
⊢ ∀ (x y : L), x ∈ K → y ∈ H → ⁅x, y⁆ ∈ H
tactic: rw [exists_nested_lieIdeal_coe_eq_iff]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
M' : Type u_4
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
H K : LieSubalgebra R L
h₁ : H ≤ K
h₂ : K ≤ H.normalizer
⊢ ∀ (x y : L), x ∈ K → y ∈ H → ⁅x, y⁆ ∈ H
state_after: no goals
tactic: exact fun x y hx hy => ideal_in_normalizer (h₂ hx) hy
Theorem: EMetric.mem_iff_infEdist_zero_of_closed
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
h : IsClosed s
⊢ x ∈ s ↔ infEdist x s = 0
state_after: no goals
tactic: rw [← mem_closure_iff_infEdist_zero, h.closure_eq]
Theorem: AlgebraicGeometry.Scheme.empty_ext
File: Mathlib/AlgebraicGeometry/Limits.lean

Proof steps:
state_before: X : Scheme
f g : ∅ ⟶ X
⊢ f.val.base = g.val.base
state_after: case w
X : Scheme
f g : ∅ ⟶ X
a : (forget TopCat).obj ↑∅.toPresheafedSpace
⊢ f.val.base a = g.val.base a
tactic: ext a
state_before: case w
X : Scheme
f g : ∅ ⟶ X
a : (forget TopCat).obj ↑∅.toPresheafedSpace
⊢ f.val.base a = g.val.base a
state_after: no goals
tactic: exact PEmpty.elim a
state_before: X : Scheme
f g : ∅ ⟶ X
a : (TopologicalSpace.Opens ↑↑X.toPresheafedSpace)ᵒᵖ
⊢ (f.val.c ≫ whiskerRight (eqToHom ⋯) ∅.presheaf).app a = g.val.c.app a
state_after: no goals
tactic: aesop_cat
Theorem: hasStrictDerivAt_zpow
File: Mathlib/Analysis/Calculus/Deriv/ZPow.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝² : NontriviallyNormedField 𝕜
E : Type v
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
x✝ : 𝕜
s : Set 𝕜
m✝ m : ℤ
x : 𝕜
h : x ≠ 0 ∨ 0 ≤ m
this : ∀ (m : ℤ), 0 < m → HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
⊢ HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
state_after: case inl
𝕜 : Type u
inst✝² : NontriviallyNormedField 𝕜
E : Type v
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
x✝ : 𝕜
s : Set 𝕜
m✝ m : ℤ
x : 𝕜
h : x ≠ 0 ∨ 0 ≤ m
this : ∀ (m : ℤ), 0 < m → HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
hm : m < 0
⊢ HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x

case inr.inl
𝕜 : Type u
inst✝² : NontriviallyNormedField 𝕜
E : Type v
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
x✝ : 𝕜
s : Set 𝕜
m✝ m : ℤ
x : 𝕜
h : x ≠ 0 ∨ 0 ≤ m
this : ∀ (m : ℤ), 0 < m → HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
hm : m = 0
⊢ HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x

case inr.inr
𝕜 : Type u
inst✝² : NontriviallyNormedField 𝕜
E : Type v
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
x✝ : 𝕜
s : Set 𝕜
m✝ m : ℤ
x : 𝕜
h : x ≠ 0 ∨ 0 ≤ m
this : ∀ (m : ℤ), 0 < m → HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
hm : 0 < m
⊢ HasStrictDerivAt (fun x => x ^ m) (↑m * x ^ (m - 1)) x
tactic: rcases lt_trichotomy m 0 with (hm | hm | hm)
Theorem: Real.integral_rpow_mul_exp_neg_mul_Ioi
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

Proof steps:
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
⊢ ∫ (t : ℝ) in Ioi 0, t ^ (a - 1) * rexp (-(r * t)) = (1 / r) ^ a * Gamma a
state_after: a r : ℝ
ha : 0 < a
hr : 0 < r
⊢ ↑(∫ (t : ℝ) in Ioi 0, t ^ (a - 1) * rexp (-(r * t))) = (↑1 / ↑r) ^ ↑a * Complex.Gamma ↑a
tactic: rw [← ofReal_inj, ofReal_mul, ← Gamma_ofReal, ofReal_cpow (by positivity), ofReal_div]
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
⊢ ↑(∫ (t : ℝ) in Ioi 0, t ^ (a - 1) * rexp (-(r * t))) = (↑1 / ↑r) ^ ↑a * Complex.Gamma ↑a
state_after: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
⊢ ↑(∫ (t : ℝ) in Ioi 0, t ^ (a - 1) * rexp (-(r * t))) = ∫ (t : ℝ) in Ioi 0, ↑t ^ (↑a - 1) * cexp (-(↑r * ↑t))
tactic: convert integral_cpow_mul_exp_neg_mul_Ioi (by rwa [ofReal_re] : 0 < (a : ℂ).re) hr
state_before: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
⊢ ↑(∫ (t : ℝ) in Ioi 0, t ^ (a - 1) * rexp (-(r * t))) = ∫ (t : ℝ) in Ioi 0, ↑t ^ (↑a - 1) * cexp (-(↑r * ↑t))
state_after: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1) * rexp (-(r * t))) = ↑t ^ (↑a - 1) * cexp (-(↑r * ↑t))
tactic: refine _root_.integral_ofReal.symm.trans <| setIntegral_congr measurableSet_Ioi (fun t ht ↦ ?_)
state_before: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1) * rexp (-(r * t))) = ↑t ^ (↑a - 1) * cexp (-(↑r * ↑t))
state_after: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1) * rexp (-(r * t))) = ↑t ^ ↑(a - 1) * ↑(rexp (-(r * t)))
tactic: norm_cast
state_before: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1) * rexp (-(r * t))) = ↑t ^ ↑(a - 1) * ↑(rexp (-(r * t)))
state_after: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1)) * ↑(rexp (-(r * t))) = ↑(t ^ (a - 1)) * ↑(rexp (-(r * t)))
tactic: rw [← ofReal_cpow (le_of_lt ht), RCLike.ofReal_mul]
state_before: case h.e'_2
a r : ℝ
ha : 0 < a
hr : 0 < r
t : ℝ
ht : t ∈ Ioi 0
⊢ ↑(t ^ (a - 1)) * ↑(rexp (-(r * t))) = ↑(t ^ (a - 1)) * ↑(rexp (-(r * t)))
state_after: no goals
tactic: rfl
Theorem: Real.totallyBounded_ball
File: Mathlib/Topology/Instances/Real.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (ball x ε)
state_after: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (Ioo (x - ε) (x + ε))
tactic: rw [Real.ball_eq_Ioo]
state_before: α : Type u
β : Type v
γ : Type w
x ε : ℝ
⊢ TotallyBounded (Ioo (x - ε) (x + ε))
state_after: no goals
tactic: apply totallyBounded_Ioo
Theorem: MulChar.apply_mem_algebraAdjoin_of_pow_eq_one
File: Mathlib/NumberTheory/MulChar/Lemmas.lean

Proof steps:
state_before: F : Type u_1
inst✝³ : Field F
inst✝² : Finite F
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
χ : MulChar F R
n : ℕ
hn : n ≠ 0
hχ : χ ^ n = 1
μ : R
hμ : IsPrimitiveRoot μ n
a : F
⊢ χ a ∈ Algebra.adjoin ℤ {μ}
state_after: case inl
F : Type u_1
inst✝³ : Field F
inst✝² : Finite F
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
χ : MulChar F R
n : ℕ
hn : n ≠ 0
hχ : χ ^ n = 1
μ : R
hμ : IsPrimitiveRoot μ n
⊢ χ 0 ∈ Algebra.adjoin ℤ {μ}

case inr
F : Type u_1
inst✝³ : Field F
inst✝² : Finite F
R : Type u_2
inst✝¹ : CommRing R
inst✝ : IsDomain R
χ : MulChar F R
n : ℕ
hn : n ≠ 0
hχ : χ ^ n = 1
μ : R
hμ : IsPrimitiveRoot μ n
a : F
h : a ≠ 0
⊢ χ a ∈ Algebra.adjoin ℤ {μ}
tactic: rcases eq_or_ne a 0 with rfl | h
Theorem: Nat.Prime.factorization
File: Mathlib/Data/Nat/Factorization/Defs.lean

Proof steps:
state_before: a b m n p✝ p : ℕ
hp : Prime p
⊢ p.factorization = single p 1
state_after: case h
a b m n p✝ p : ℕ
hp : Prime p
q : ℕ
⊢ p.factorization q = (single p 1) q
tactic: ext q
state_before: case h
a b m n p✝ p : ℕ
hp : Prime p
q : ℕ
⊢ p.factorization q = (single p 1) q
state_after: no goals
tactic: rw [← primeFactorsList_count_eq, primeFactorsList_prime hp, single_apply, count_singleton',
    if_congr eq_comm] <;> rfl
Theorem: CharP.char_is_prime_of_two_le
File: Mathlib/Algebra/CharP/Defs.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * e
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
⊢ 0 < p
state_after: no goals
tactic: omega
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * e
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = 1 * p
state_after: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = 1 * p
tactic: rw [‹e = p›] at hmul
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = 1 * p
state_after: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = p
tactic: rw [one_mul]
state_before: R : Type u_1
inst✝¹ : NonAssocSemiring R
inst✝ : NoZeroDivisors R
p : ℕ
hc : CharP R p
hp : 2 ≤ p
d : ℕ
hdvd : ∃ e, p = d * e
e : ℕ
hmul : p = d * p
this✝³ : ↑p = 0
this✝² : ↑d * ↑e = 0
he : ↑e = 0
this✝¹ : p ∣ e
this✝ : e ∣ p
this : e = p
h₀ : 0 < p
⊢ d * p = p
state_after: no goals
tactic: exact Eq.symm hmul
Theorem: FirstOrder.Language.Substructure.CG.map
File: Mathlib/ModelTheory/FinitelyGenerated.lean

Proof steps:
state_before: L : Language
M : Type u_1
inst✝¹ : L.Structure M
N : Type u_2
inst✝ : L.Structure N
f : M →[L] N
s : L.Substructure M
hs : s.CG
t : Set M
ht : t.Countable ∧ (closure L).toFun t = s
⊢ (closure L).toFun (⇑f '' t) = Substructure.map f s
state_after: no goals
tactic: rw [closure_image, ht.2]
Theorem: Matroid.Basis.subset_closure
File: Mathlib/Data/Matroid/Closure.lean

Proof steps:
state_before: ι✝ : Type u_1
α : Type u_2
M : Matroid α
F X Y : Set α
e : α
ι : Sort u_3
I J B : Set α
f x y : α
h : M.Basis I X
⊢ X ⊆ M.closure I
state_after: no goals
tactic: rw [← closure_subset_closure_iff_subset_closure, h.closure_eq_closure]
Theorem: _private.Mathlib.NumberTheory.Padics.Hensel.0.soln_dist_to_a_lt_deriv
File: Mathlib/NumberTheory/Padics/Hensel.lean

Proof steps:
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
⊢ ‖soln - a‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖
state_after: no goals
tactic: rw [soln_dist_to_a, div_lt_iff (deriv_norm_pos _), ← sq] <;> assumption
Theorem: MeromorphicOn.congr
File: Mathlib/Analysis/Analytic/Meromorphic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s t : 𝕜 → 𝕜
f g : 𝕜 → E
U : Set 𝕜
hs : MeromorphicOn s U
ht : MeromorphicOn t U
hf : MeromorphicOn f U
hg : MeromorphicOn g U
h_eq : Set.EqOn f g U
hu : IsOpen U
⊢ MeromorphicOn g U
state_after: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s t : 𝕜 → 𝕜
f g : 𝕜 → E
U : Set 𝕜
hs : MeromorphicOn s U
ht : MeromorphicOn t U
hf : MeromorphicOn f U
hg : MeromorphicOn g U
h_eq : Set.EqOn f g U
hu : IsOpen U
x : 𝕜
hx : x ∈ U
⊢ f =ᶠ[𝓝 x] g
tactic: refine fun x hx ↦ (hf x hx).congr (EventuallyEq.filter_mono ?_ nhdsWithin_le_nhds)
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s t : 𝕜 → 𝕜
f g : 𝕜 → E
U : Set 𝕜
hs : MeromorphicOn s U
ht : MeromorphicOn t U
hf : MeromorphicOn f U
hg : MeromorphicOn g U
h_eq : Set.EqOn f g U
hu : IsOpen U
x : 𝕜
hx : x ∈ U
⊢ f =ᶠ[𝓝 x] g
state_after: no goals
tactic: exact eventually_of_mem (hu.mem_nhds hx) h_eq
Theorem: HasFPowerSeriesWithinAt.mono
File: Mathlib/Analysis/Analytic/Within.lean

Proof steps:
state_before: α : Type u_1
𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
f : E → F
p : FormalMultilinearSeries 𝕜 E F
s t : Set E
x : E
h : HasFPowerSeriesWithinAt f p t x
hs : s ⊆ t
⊢ HasFPowerSeriesWithinAt f p s x
state_after: case intro
α : Type u_1
𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
f : E → F
p : FormalMultilinearSeries 𝕜 E F
s t : Set E
x : E
hs : s ⊆ t
r : ℝ≥0∞
hr : HasFPowerSeriesWithinOnBall f p t x r
⊢ HasFPowerSeriesWithinAt f p s x
tactic: rcases h with ⟨r, hr⟩
state_before: case intro
α : Type u_1
𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_3
F : Type u_4
G : Type u_5
H : Type u_6
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
f : E → F
p : FormalMultilinearSeries 𝕜 E F
s t : Set E
x : E
hs : s ⊆ t
r : ℝ≥0∞
hr : HasFPowerSeriesWithinOnBall f p t x r
⊢ HasFPowerSeriesWithinAt f p s x
state_after: no goals
tactic: exact ⟨r, hr.mono hs⟩
Theorem: List.foldr_sup_eq_sup_toFinset
File: Mathlib/Data/Finset/Lattice.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
s s₁ s₂ : Finset β
f g : β → α
a : α
inst✝ : DecidableEq α
l : List α
⊢ List.foldr (fun x x_1 => x ⊔ x_1) ⊥ l = l.toFinset.sup id
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
s s₁ s₂ : Finset β
f g : β → α
a : α
inst✝ : DecidableEq α
l : List α
⊢ Multiset.fold (fun x x_1 => x ⊔ x_1) ⊥ (↑l).dedup = (↑l).dedup.sup
tactic: rw [← coe_fold_r, ← Multiset.fold_dedup_idem, sup_def, ← List.toFinset_coe, toFinset_val,
    Multiset.map_id]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
s s₁ s₂ : Finset β
f g : β → α
a : α
inst✝ : DecidableEq α
l : List α
⊢ Multiset.fold (fun x x_1 => x ⊔ x_1) ⊥ (↑l).dedup = (↑l).dedup.sup
state_after: no goals
tactic: rfl
Theorem: MvPolynomial.supportedEquivMvPolynomial_symm_X
File: Mathlib/Algebra/MvPolynomial/Supported.lean

Proof steps:
state_before: σ : Type u_1
τ : Type u_2
R : Type u
S : Type v
r : R
e : ℕ
n m : σ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s : Set σ
i : ↑s
⊢ ↑((supportedEquivMvPolynomial s).symm (X i)) = X ↑i
state_after: no goals
tactic: simp [supportedEquivMvPolynomial]
Theorem: nhdsWithin_compl_singleton_le
File: Mathlib/Topology/Separation.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
x y : X
⊢ 𝓝[≠] x ≤ 𝓝[{y}ᶜ] x
state_after: case inl
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
x : X
⊢ 𝓝[≠] x ≤ 𝓝[≠] x

case inr
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
x y : X
hy : x ≠ y
⊢ 𝓝[≠] x ≤ 𝓝[{y}ᶜ] x
tactic: rcases eq_or_ne x y with rfl|hy
Theorem: Ideal.mem_quotient_iff_mem
File: Mathlib/RingTheory/Ideal/QuotientOperations.lean

Proof steps:
state_before: R : Type u
S : Type v
F : Type w
inst✝¹ : CommRing R
inst✝ : Semiring S
I J : Ideal R
hIJ : I ≤ J
x : R
⊢ (Quotient.mk I) x ∈ map (Quotient.mk I) J ↔ x ∈ J
state_after: no goals
tactic: rw [mem_quotient_iff_mem_sup, sup_eq_left.mpr hIJ]
Theorem: CategoryTheory.Limits.limitOpIsoOpColimit_inv_comp_π
File: Mathlib/CategoryTheory/Limits/IndYoneda.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
I : Type v₁
inst✝¹ : Category.{v₂, v₁} I
F : I ⥤ C
inst✝ : HasColimit F
i : I
⊢ (limitOpIsoOpColimit F).inv ≫ limit.π F.op (op i) = (colimit.ι F i).op
state_after: no goals
tactic: simp [limitOpIsoOpColimit]
Theorem: AffineSubspace.wSameSide_of_left_mem
File: Mathlib/Analysis/Convex/Side.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
hx : x ∈ s
⊢ s.WSameSide x y
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
hx : x ∈ s
⊢ SameRay R (x -ᵥ x) (y -ᵥ x)
tactic: refine ⟨x, hx, x, hx, ?_⟩
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
hx : x ∈ s
⊢ SameRay R (x -ᵥ x) (y -ᵥ x)
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
hx : x ∈ s
⊢ SameRay R 0 (y -ᵥ x)
tactic: rw [vsub_self]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
hx : x ∈ s
⊢ SameRay R 0 (y -ᵥ x)
state_after: no goals
tactic: apply SameRay.zero_left
Theorem: LSeriesSummable.le_const_mul_rpow
File: Mathlib/NumberTheory/LSeries/Basic.lean

Proof steps:
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re
state_after: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re
tactic: replace h := h.norm
state_before: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re
state_after: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
⊢ False
tactic: by_contra! H
state_before: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
⊢ False
tactic: obtain ⟨n, hn₀, hn⟩ := H (tsum fun n ↦ ‖term f s n‖)
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖term f s n‖ ≤ ∑' (i : ℕ), ‖term f s i‖
⊢ False
tactic: have := le_tsum h n fun _ _ ↦ norm_nonneg _
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖term f s n‖ ≤ ∑' (i : ℕ), ‖term f s i‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖f n‖ ≤ (∑' (i : ℕ), ‖term f s i‖) * ↑n ^ s.re
⊢ False
tactic: rw [norm_term_eq, if_neg hn₀,
    div_le_iff <| Real.rpow_pos_of_pos (Nat.cast_pos.mpr <| Nat.pos_of_ne_zero hn₀) _] at this
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖f n‖ ≤ (∑' (i : ℕ), ‖term f s i‖) * ↑n ^ s.re
⊢ False
state_after: no goals
tactic: exact (this.trans_lt hn).false.elim