1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Real.infinite_rat_abs_sub_lt_one_div_den_sq_of_irrational
File: Mathlib/NumberTheory/DiophantineApproximation.lean

tactic: refine Or.resolve_left (Set.finite_or_infinite _) fun h => ?_
state_before: ξ : ℝ
hξ : Irrational ξ
⊢ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Infinite
state_after: ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
⊢ False

tactic: obtain ⟨q, _, hq⟩ :=
  exists_min_image {q : ℚ | |ξ - q| < 1 / (q.den : ℝ) ^ 2} (fun q => |ξ - q|) h
    ⟨⌊ξ⌋, by simp [abs_of_nonneg, Int.fract_lt_one]⟩
state_before: ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
⊢ False
state_after: case intro.intro
ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
q : ℚ
left✝ : q ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}
hq : ∀ b ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}, |ξ - ↑q| ≤ |ξ - ↑b|
⊢ False

tactic: obtain ⟨q', hmem, hbetter⟩ := exists_rat_abs_sub_lt_and_lt_of_irrational hξ q
state_before: case intro.intro
ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
q : ℚ
left✝ : q ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}
hq : ∀ b ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}, |ξ - ↑q| ≤ |ξ - ↑b|
⊢ False
state_after: case intro.intro.intro.intro
ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
q : ℚ
left✝ : q ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}
hq : ∀ b ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}, |ξ - ↑q| ≤ |ξ - ↑b|
q' : ℚ
hmem : |ξ - ↑q'| < 1 / ↑q'.den ^ 2
hbetter : |ξ - ↑q'| < |ξ - ↑q|
⊢ False

tactic: exact lt_irrefl _ (lt_of_le_of_lt (hq q' hmem) hbetter)
state_before: case intro.intro.intro.intro
ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
q : ℚ
left✝ : q ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}
hq : ∀ b ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}, |ξ - ↑q| ≤ |ξ - ↑b|
q' : ℚ
hmem : |ξ - ↑q'| < 1 / ↑q'.den ^ 2
hbetter : |ξ - ↑q'| < |ξ - ↑q|
⊢ False
state_after: no goals

tactic: simp [abs_of_nonneg, Int.fract_lt_one]
state_before: ξ : ℝ
hξ : Irrational ξ
h : {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}.Finite
⊢ ↑⌊ξ⌋ ∈ {q | |ξ - ↑q| < 1 / ↑q.den ^ 2}
state_after: no goals
Theorem: Submodule.mem_dualAnnihilator
File: Mathlib/LinearAlgebra/Dual.lean

tactic: refine LinearMap.mem_ker.trans ?_
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
φ : Module.Dual R M
⊢ φ ∈ W.dualAnnihilator ↔ ∀ w ∈ W, φ w = 0
state_after: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
φ : Module.Dual R M
⊢ W.dualRestrict φ = 0 ↔ ∀ w ∈ W, φ w = 0

tactic: simp_rw [LinearMap.ext_iff, dualRestrict_apply]
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
φ : Module.Dual R M
⊢ W.dualRestrict φ = 0 ↔ ∀ w ∈ W, φ w = 0
state_after: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
φ : Module.Dual R M
⊢ (∀ (x : ↥W), φ ↑x = 0 x) ↔ ∀ w ∈ W, φ w = 0

tactic: exact ⟨fun h w hw => h ⟨w, hw⟩, fun h w => h w.1 w.2⟩
state_before: R : Type u
M : Type v
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
W : Submodule R M
φ : Module.Dual R M
⊢ (∀ (x : ↥W), φ ↑x = 0 x) ↔ ∀ w ∈ W, φ w = 0
state_after: no goals
Theorem: Range.isSubmonoid
File: Mathlib/Deprecated/Submonoid.lean

tactic: rw [← Set.image_univ]
state_before: M : Type u_1
inst✝² : Monoid M
s : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
γ : Type u_3
inst✝ : Monoid γ
f : M → γ
hf : IsMonoidHom f
⊢ IsSubmonoid (Set.range f)
state_after: M : Type u_1
inst✝² : Monoid M
s : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
γ : Type u_3
inst✝ : Monoid γ
f : M → γ
hf : IsMonoidHom f
⊢ IsSubmonoid (f '' Set.univ)

tactic: exact Univ.isSubmonoid.image hf
state_before: M : Type u_1
inst✝² : Monoid M
s : Set M
A : Type u_2
inst✝¹ : AddMonoid A
t : Set A
γ : Type u_3
inst✝ : Monoid γ
f : M → γ
hf : IsMonoidHom f
⊢ IsSubmonoid (f '' Set.univ)
state_after: no goals
Theorem: cfc_real_eq_complex
File: Mathlib/Analysis/NormedSpace/Star/ContinuousFunctionalCalculus/Instances.lean

tactic: have := UniqueContinuousFunctionalCalculus.compactSpace_spectrum a (R := ℂ)
state_before: A : Type u_1
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : Algebra ℂ A
inst✝⁴ : StarModule ℂ A
inst✝³ : ContinuousFunctionalCalculus ℂ IsStarNormal
inst✝² : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : UniqueContinuousFunctionalCalculus ℂ A
a : A
f : ℝ → ℝ
ha : autoParam (IsSelfAdjoint a) _auto✝
⊢ cfc f a = cfc (fun x => ↑(f x.re)) a
state_after: A : Type u_1
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : Algebra ℂ A
inst✝⁴ : StarModule ℂ A
inst✝³ : ContinuousFunctionalCalculus ℂ IsStarNormal
inst✝² : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : UniqueContinuousFunctionalCalculus ℂ A
a : A
f : ℝ → ℝ
ha : autoParam (IsSelfAdjoint a) _auto✝
this : CompactSpace ↑(σ ℂ a)
⊢ cfc f a = cfc (fun x => ↑(f x.re)) a

tactic: replace ha : IsSelfAdjoint a := ha
state_before: A : Type u_1
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : Algebra ℂ A
inst✝⁴ : StarModule ℂ A
inst✝³ : ContinuousFunctionalCalculus ℂ IsStarNormal
inst✝² : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : UniqueContinuousFunctionalCalculus ℂ A
a : A
f : ℝ → ℝ
ha : autoParam (IsSelfAdjoint a) _auto✝
this : CompactSpace ↑(σ ℂ a)
⊢ cfc f a = cfc (fun x => ↑(f x.re)) a
state_after: A : Type u_1
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : Algebra ℂ A
inst✝⁴ : StarModule ℂ A
inst✝³ : ContinuousFunctionalCalculus ℂ IsStarNormal
inst✝² : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : UniqueContinuousFunctionalCalculus ℂ A
a : A
f : ℝ → ℝ
this : CompactSpace ↑(σ ℂ a)
ha : IsSelfAdjoint a
⊢ cfc f a = cfc (fun x => ↑(f x.re)) a

tactic: exact ha.spectrumRestricts.cfc_eq_restrict (f := Complex.reCLM)
  Complex.isometry_ofReal.uniformEmbedding ha ha.isStarNormal f
state_before: A : Type u_1
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : Algebra ℂ A
inst✝⁴ : StarModule ℂ A
inst✝³ : ContinuousFunctionalCalculus ℂ IsStarNormal
inst✝² : ContinuousFunctionalCalculus ℝ IsSelfAdjoint
inst✝¹ : UniqueContinuousFunctionalCalculus ℝ A
inst✝ : UniqueContinuousFunctionalCalculus ℂ A
a : A
f : ℝ → ℝ
this : CompactSpace ↑(σ ℂ a)
ha : IsSelfAdjoint a
⊢ cfc f a = cfc (fun x => ↑(f x.re)) a
state_after: no goals
Theorem: PerfectClosure.mul_aux_left
File: Mathlib/FieldTheory/PerfectClosure.lean

tactic: rw [← iterate_succ_apply, iterate_succ_apply', iterate_succ_apply', ← frobenius_mul,
  Nat.succ_add]
state_before: K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
x1 x2 y : ℕ × K
H : R K p x1 x2
n : ℕ
x : K
⊢ R K p ((n, x).1 + y.1, (⇑(frobenius K p))^[y.1] (n, x).2 * (⇑(frobenius K p))^[(n, x).1] y.2)
    ((n + 1, (frobenius K p) x).1 + y.1,
      (⇑(frobenius K p))^[y.1] (n + 1, (frobenius K p) x).2 * (⇑(frobenius K p))^[(n + 1, (frobenius K p) x).1] y.2)
state_after: K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
x1 x2 y : ℕ × K
H : R K p x1 x2
n : ℕ
x : K
⊢ R K p ((n, x).1 + y.1, (⇑(frobenius K p))^[y.1] (n, x).2 * (⇑(frobenius K p))^[(n, x).1] y.2)
    ((n + y.1).succ, (frobenius K p) ((⇑(frobenius K p))^[y.1] x * (⇑(frobenius K p))^[n] y.2))

tactic: apply R.intro
state_before: K : Type u
inst✝² : CommRing K
p : ℕ
inst✝¹ : Fact (Nat.Prime p)
inst✝ : CharP K p
x1 x2 y : ℕ × K
H : R K p x1 x2
n : ℕ
x : K
⊢ R K p ((n, x).1 + y.1, (⇑(frobenius K p))^[y.1] (n, x).2 * (⇑(frobenius K p))^[(n, x).1] y.2)
    ((n + y.1).succ, (frobenius K p) ((⇑(frobenius K p))^[y.1] x * (⇑(frobenius K p))^[n] y.2))
state_after: no goals
Theorem: Real.tendsto_log_nhdsWithin_zero
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [← show _ = log from funext log_abs]
state_before: x y : ℝ
⊢ Tendsto log (𝓝[≠] 0) atBot
state_after: x y : ℝ
⊢ Tendsto (fun x => log |x|) (𝓝[≠] 0) atBot

tactic: refine Tendsto.comp (g := log) ?_ tendsto_abs_nhdsWithin_zero
state_before: x y : ℝ
⊢ Tendsto (fun x => log |x|) (𝓝[≠] 0) atBot
state_after: x y : ℝ
⊢ Tendsto log (𝓝[>] 0) atBot

tactic: simpa [← tendsto_comp_exp_atBot] using tendsto_id
state_before: x y : ℝ
⊢ Tendsto log (𝓝[>] 0) atBot
state_after: no goals
Theorem: MeasureTheory.measurePreserving_div_prod
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: apply measurePreserving_prod_div_swap μ ν
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s : Set G
inst✝¹ : MeasurableInv G
inst✝ : μ.IsMulRightInvariant
⊢ MeasurePreserving ?m.111564 ?m.111560 (?m.111474.prod ?m.111475)
state_after: no goals
Theorem: EReal.bot_lt_add_iff
File: Mathlib/Data/Real/EReal.lean

tactic: simp [bot_lt_iff_ne_bot, not_or]
state_before: x y : EReal
⊢ ⊥ < x + y ↔ ⊥ < x ∧ ⊥ < y
state_after: no goals
Theorem: Int.gcd_zero_right
File: Mathlib/Data/Int/GCD.lean

tactic: simp [gcd]
state_before: i : ℤ
⊢ i.gcd 0 = i.natAbs
state_after: no goals
Theorem: Associates.mk_eq_one
File: Mathlib/Algebra/Associated.lean

tactic: rw [← mk_one, mk_eq_mk_iff_associated, associated_one_iff_isUnit]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : Monoid α
a : α
⊢ Associates.mk a = 1 ↔ IsUnit a
state_after: no goals
Theorem: UniformConcaveOn.concaveOn
File: Mathlib/Analysis/Convex/Strong.lean

tactic: simpa using hf.mono hφ
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a b m : ℝ
x y : E
f g : E → ℝ
hf : UniformConcaveOn s φ f
hφ : 0 ≤ φ
⊢ ConcaveOn ℝ s f
state_after: no goals
Theorem: linearIndependent_comp_subtype_disjoint
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [linearIndependent_comp_subtype, LinearMap.disjoint_ker]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
s : Set ι
⊢ LinearIndependent (ι := ↑s) R (v ∘ Subtype.val) ↔
    Disjoint (Finsupp.supported R R s) (LinearMap.ker (Finsupp.total ι M R v))
state_after: no goals
Theorem: Real.logb_le_iff_le_rpow_of_base_lt_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [← rpow_le_rpow_left_iff_of_base_lt_one b_pos b_lt_one, rpow_logb b_pos (b_ne_one b_lt_one) hx]
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
hx : 0 < x
⊢ logb b x ≤ y ↔ b ^ y ≤ x
state_after: no goals
Theorem: Associates.dvd_of_mem_factors'
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: haveI := Classical.decEq (Associates α)
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
⊢ p ∣ Associates.mk a
state_after: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∣ Associates.mk a

tactic: apply dvd_of_mem_factors
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∣ Associates.mk a
state_after: case hm
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∈ (Associates.mk a).factors

tactic: rw [factors_mk _ hz]
state_before: case hm
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∈ (Associates.mk a).factors
state_after: case hm
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∈ ↑(factors' a)

tactic: apply mem_factorSet_some.2 h_mem
state_before: case hm
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
a : α
p : Associates α
hp : Irreducible p
hz : a ≠ 0
h_mem : ⟨p, hp⟩ ∈ factors' a
this : DecidableEq (Associates α)
⊢ p ∈ ↑(factors' a)
state_after: no goals
Theorem: ContinuousMultilinearMap.le_opNorm_mul_pow_of_le
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: simpa only [Fintype.card_fin] using f.le_opNorm_mul_pow_card_of_le hm
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : SeminormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
inst✝³ : SeminormedAddCommGroup G'
inst✝² : NormedSpace 𝕜 G'
c : 𝕜
f✝ g : ContinuousMultilinearMap 𝕜 E G
m✝ : (i : ι) → E i
n : ℕ
Ei : Fin n → Type u_1
inst✝¹ : (i : Fin n) → SeminormedAddCommGroup (Ei i)
inst✝ : (i : Fin n) → NormedSpace 𝕜 (Ei i)
f : ContinuousMultilinearMap 𝕜 Ei G
m : (i : Fin n) → Ei i
b : ℝ
hm : ‖m‖ ≤ b
⊢ ‖f m‖ ≤ ‖f‖ * b ^ n
state_after: no goals
Theorem: UniqueDiffWithinAt.mono_nhds
File: Mathlib/Analysis/Calculus/TangentCone.lean

tactic: simp only [uniqueDiffWithinAt_iff] at *
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
x y : E
s t : Set E
h : UniqueDiffWithinAt 𝕜 s x
st : 𝓝[s] x ≤ 𝓝[t] x
⊢ UniqueDiffWithinAt 𝕜 t 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
x y : E
s t : Set E
st : 𝓝[s] x ≤ 𝓝[t] x
h : Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 s x)) ∧ x ∈ closure s
⊢ Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 t x)) ∧ x ∈ closure t

tactic: rw [mem_closure_iff_nhdsWithin_neBot] at h ⊢
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
x y : E
s t : Set E
st : 𝓝[s] x ≤ 𝓝[t] x
h : Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 s x)) ∧ x ∈ closure s
⊢ Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 t x)) ∧ x ∈ closure t
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
x y : E
s t : Set E
st : 𝓝[s] x ≤ 𝓝[t] x
h : Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 s x)) ∧ (𝓝[s] x).NeBot
⊢ Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 t x)) ∧ (𝓝[t] x).NeBot

tactic: exact ⟨h.1.mono <| Submodule.span_mono <| tangentCone_mono_nhds st, h.2.mono st⟩
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
x y : E
s t : Set E
st : 𝓝[s] x ≤ 𝓝[t] x
h : Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 s x)) ∧ (𝓝[s] x).NeBot
⊢ Dense ↑(Submodule.span 𝕜 (tangentConeAt 𝕜 t x)) ∧ (𝓝[t] x).NeBot
state_after: no goals
Theorem: ENNReal.ofReal_lt_coe_iff
File: Mathlib/Data/ENNReal/Real.lean

tactic: rw [coe_toReal]
state_before: a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ
b : ℝ≥0
ha : 0 ≤ a
⊢ a < (↑b).toReal ↔ a < ↑b
state_after: no goals
Theorem: ContinuousOn.isSeparable_image
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [image_eq_range, ← image_univ]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ
s✝ : Set α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
hf : ContinuousOn f s
hs : IsSeparable s
⊢ IsSeparable (f '' s)
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ
s✝ : Set α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
hf : ContinuousOn f s
hs : IsSeparable s
⊢ IsSeparable ((fun x => f ↑x) '' univ)

tactic: exact (isSeparable_univ_iff.2 hs.separableSpace).image hf.restrict
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ
s✝ : Set α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
hf : ContinuousOn f s
hs : IsSeparable s
⊢ IsSeparable ((fun x => f ↑x) '' univ)
state_after: no goals
Theorem: SimpleGraph.Walk.edges_map
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p with
| nil => rfl
| cons _ _ ih =>
  simp only [Walk.map_cons, edges_cons, List.map_cons, Sym2.map_pair_eq, List.cons.injEq,
    true_and, ih]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
f' : G' →g G''
u v u' v' : V
p : G.Walk u v
⊢ (Walk.map f p).edges = List.map (Sym2.map ⇑f) p.edges
state_after: no goals

tactic: rfl
state_before: case nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
f' : G' →g G''
u v u' v' : V
p : G.Walk u v
u✝ : V
⊢ (Walk.map f nil).edges = List.map (Sym2.map ⇑f) nil.edges
state_after: no goals

tactic: simp only [Walk.map_cons, edges_cons, List.map_cons, Sym2.map_pair_eq, List.cons.injEq,
  true_and, ih]
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
f' : G' →g G''
u v u' v' : V
p : G.Walk u v
u✝ v✝ w✝ : V
h✝ : G.Adj u✝ v✝
p✝ : G.Walk v✝ w✝
ih : (Walk.map f p✝).edges = List.map (Sym2.map ⇑f) p✝.edges
⊢ (Walk.map f (cons h✝ p✝)).edges = List.map (Sym2.map ⇑f) (cons h✝ p✝).edges
state_after: no goals
Theorem: CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality
File: Mathlib/CategoryTheory/Abelian/RightDerived.lean

tactic: simp only [← cancel_mono (HomologicalComplex.iCycles _ _),
  Functor.mapHomologicalComplex_obj_X, assoc, toRightDerivedZero'_comp_iCycles,
  CochainComplex.single₀_obj_zero, HomologicalComplex.cyclesMap_i,
  Functor.mapHomologicalComplex_map_f, toRightDerivedZero'_comp_iCycles_assoc,
  ← F.map_comp, comm]
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u_1
inst✝⁴ : Category.{u_2, u_1} D
inst✝³ : Abelian C
inst✝² : HasInjectiveResolutions C
inst✝¹ : Abelian D
X Y : C
f : X ⟶ Y
P : InjectiveResolution X
Q : InjectiveResolution Y
φ : P.cocomplex ⟶ Q.cocomplex
comm : P.ι.f 0 ≫ φ.f 0 = f ≫ Q.ι.f 0
F : C ⥤ D
inst✝ : F.Additive
⊢ F.map f ≫ Q.toRightDerivedZero' F =
    P.toRightDerivedZero' F ≫ HomologicalComplex.cyclesMap ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ) 0
state_after: no goals
Theorem: WeierstrassCurve.natDegree_ΨSq_pos
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: rwa [W.natDegree_ΨSq h, Nat.sub_pos_iff_lt, Nat.one_lt_pow_iff two_ne_zero]
state_before: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
inst✝ : NoZeroDivisors R
n : ℤ
hn : 1 < n.natAbs
h : ↑n ≠ 0
⊢ 0 < (W.ΨSq n).natDegree
state_after: no goals
Theorem: Profinite.NobelingProof.Products.isGood_mono
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: intro hl'
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
l : Products I
o₁ o₂ : Ordinal.{u}
h : o₁ ≤ o₂
hl : isGood (π C fun x => ord I x < o₁) l
⊢ isGood (π C fun x => ord I x < o₂) l
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
l : Products I
o₁ o₂ : Ordinal.{u}
h : o₁ ≤ o₂
hl : isGood (π C fun x => ord I x < o₁) l
hl' : eval (π C fun x => ord I x < o₂) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₂) '' {m | m < l})
⊢ False

tactic: apply hl
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
l : Products I
o₁ o₂ : Ordinal.{u}
h : o₁ ≤ o₂
hl : isGood (π C fun x => ord I x < o₁) l
hl' : eval (π C fun x => ord I x < o₂) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₂) '' {m | m < l})
⊢ False
state_after: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
l : Products I
o₁ o₂ : Ordinal.{u}
h : o₁ ≤ o₂
hl : isGood (π C fun x => ord I x < o₁) l
hl' : eval (π C fun x => ord I x < o₂) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₂) '' {m | m < l})
⊢ eval (π C fun x => ord I x < o₁) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₁) '' {m | m < l})

tactic: rwa [eval_πs_image' C h (prop_of_isGood  C _ hl), ← eval_πs' C h (prop_of_isGood  C _ hl),
  Submodule.apply_mem_span_image_iff_mem_span (injective_πs' C h)] at hl'
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
l : Products I
o₁ o₂ : Ordinal.{u}
h : o₁ ≤ o₂
hl : isGood (π C fun x => ord I x < o₁) l
hl' : eval (π C fun x => ord I x < o₂) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₂) '' {m | m < l})
⊢ eval (π C fun x => ord I x < o₁) l ∈ Submodule.span ℤ (eval (π C fun x => ord I x < o₁) '' {m | m < l})
state_after: no goals
Theorem: Sum.LiftRel.isLeft_right
File: Mathlib/Data/Sum/Basic.lean

tactic: cases h
state_before: α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
r : α → γ → Prop
s : β → δ → Prop
x : α ⊕ β
y : γ ⊕ δ
a : α
b : β
c : γ
d : δ
h : LiftRel r s (inl a) y
⊢ y.isLeft = true
state_after: case inl
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
r : α → γ → Prop
s : β → δ → Prop
x : α ⊕ β
a : α
b : β
c : γ
d : δ
c✝ : γ
a✝ : r a c✝
⊢ (inl c✝).isLeft = true

tactic: rfl
state_before: case inl
α : Type u
α' : Type w
β : Type v
β' : Type x
γ : Type u_1
δ : Type u_2
r : α → γ → Prop
s : β → δ → Prop
x : α ⊕ β
a : α
b : β
c : γ
d : δ
c✝ : γ
a✝ : r a c✝
⊢ (inl c✝).isLeft = true
state_after: no goals
Theorem: LieSubmodule.codisjoint_iff_coe_toSubmodule
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [codisjoint_iff, codisjoint_iff, ← coe_toSubmodule_eq_iff, sup_coe_toSubmodule,
  top_coeSubmodule, ← codisjoint_iff]
state_before: R : Type u
L : Type v
M : Type w
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
N N' : LieSubmodule R L M
I J : LieIdeal R L
⊢ Codisjoint N N' ↔ Codisjoint ↑N ↑N'
state_after: no goals
Theorem: CategoryTheory.Functor.biprodComparison'_comp_biprodComparison
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean

tactic: ext <;> simp [← Functor.map_comp]
state_before: C : Type u₁
inst✝⁶ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
F : C ⥤ D
X Y : C
inst✝² : HasBinaryBiproduct X Y
inst✝¹ : HasBinaryBiproduct (F.obj X) (F.obj Y)
inst✝ : F.PreservesZeroMorphisms
⊢ F.biprodComparison' X Y ≫ F.biprodComparison X Y = 𝟙 (F.obj X ⊞ F.obj Y)
state_after: no goals