1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.FunctorToTypes.jointly_surjective
File: Mathlib/CategoryTheory/Limits/FunctorToTypes.lean

tactic: let hev := isColimitOfPreserves ((evaluation _ _).obj k) h
state_before: J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
x : t.pt.obj k
⊢ ∃ j y, x = (t.ι.app j).app k y
state_after: J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
x : t.pt.obj k
hev : IsColimit (((evaluation K TypeMax).obj k).mapCocone t) := isColimitOfPreserves ((evaluation K TypeMax).obj k) h
⊢ ∃ j y, x = (t.ι.app j).app k y

tactic: obtain ⟨j, y, rfl⟩ := Types.jointly_surjective _ hev x
state_before: J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
x : t.pt.obj k
hev : IsColimit (((evaluation K TypeMax).obj k).mapCocone t) := isColimitOfPreserves ((evaluation K TypeMax).obj k) h
⊢ ∃ j y, x = (t.ι.app j).app k y
state_after: case intro.intro
J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
hev : IsColimit (((evaluation K TypeMax).obj k).mapCocone t) := isColimitOfPreserves ((evaluation K TypeMax).obj k) h
j : J
y : (F ⋙ (evaluation K TypeMax).obj k).obj j
⊢ ∃ j_1 y_1, (((evaluation K TypeMax).obj k).mapCocone t).ι.app j y = (t.ι.app j_1).app k y_1

tactic: exact ⟨j, y, by simp⟩
state_before: case intro.intro
J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
hev : IsColimit (((evaluation K TypeMax).obj k).mapCocone t) := isColimitOfPreserves ((evaluation K TypeMax).obj k) h
j : J
y : (F ⋙ (evaluation K TypeMax).obj k).obj j
⊢ ∃ j_1 y_1, (((evaluation K TypeMax).obj k).mapCocone t).ι.app j y = (t.ι.app j_1).app k y_1
state_after: no goals

tactic: simp
state_before: J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
F : J ⥤ K ⥤ TypeMax
k : K
t : Cocone F
h : IsColimit t
hev : IsColimit (((evaluation K TypeMax).obj k).mapCocone t) := isColimitOfPreserves ((evaluation K TypeMax).obj k) h
j : J
y : (F ⋙ (evaluation K TypeMax).obj k).obj j
⊢ (((evaluation K TypeMax).obj k).mapCocone t).ι.app j y = (t.ι.app j).app k y
state_after: no goals
Theorem: toIocDiv_add_left'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [add_comm, toIocDiv_add_right']
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocDiv hp (p + a) b = toIocDiv hp a b - 1
state_after: no goals
Theorem: rTensor_injective_iff_lcomp_surjective
File: Mathlib/Algebra/Module/CharacterModule.lean

tactic: simp [← dual_rTensor_conj_homEquiv, dual_surjective_iff_injective]
state_before: R : Type uR
inst✝⁶ : CommRing R
A : Type uA
inst✝⁵ : AddCommGroup A
A' : Type u_1
inst✝⁴ : AddCommGroup A'
B : Type uB
inst✝³ : AddCommGroup B
inst✝² : Module R A
inst✝¹ : Module R A'
inst✝ : Module R B
f : A →ₗ[R] A'
⊢ Function.Injective ⇑(LinearMap.rTensor B f) ↔ Function.Surjective ⇑(LinearMap.lcomp R (CharacterModule B) f)
state_after: no goals
Theorem: IsArtinian.range_smul_pow_stabilizes
File: Mathlib/RingTheory/Artinian.lean

tactic: dsimp at hy ⊢
state_before: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
r : R
n m : ℕ
h : n ≤ m
x : M
x✝ : x ∈ (fun n => LinearMap.range (r ^ n • LinearMap.id)) m
y : M
hy : (r ^ m • LinearMap.id) y = x
⊢ (r ^ n • LinearMap.id) (r ^ (m - n) • y) = x
state_after: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
r : R
n m : ℕ
h : n ≤ m
x : M
x✝ : x ∈ (fun n => LinearMap.range (r ^ n • LinearMap.id)) m
y : M
hy : r ^ m • y = x
⊢ r ^ n • r ^ (m - n) • y = x

tactic: rw [← smul_assoc, smul_eq_mul, ← pow_add, ← hy, add_tsub_cancel_of_le h]
state_before: R : Type u_1
M : Type u_2
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
r : R
n m : ℕ
h : n ≤ m
x : M
x✝ : x ∈ (fun n => LinearMap.range (r ^ n • LinearMap.id)) m
y : M
hy : r ^ m • y = x
⊢ r ^ n • r ^ (m - n) • y = x
state_after: no goals
Theorem: id_nullhomotopic
File: Mathlib/Topology/Homotopy/Contractible.lean

tactic: obtain ⟨hv⟩ := ContractibleSpace.hequiv_unit X
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
⊢ (ContinuousMap.id X).Nullhomotopic
state_after: case intro
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ (ContinuousMap.id X).Nullhomotopic

tactic: use hv.invFun ()
state_before: case intro
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ (ContinuousMap.id X).Nullhomotopic
state_after: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ (ContinuousMap.id X).Homotopic (const X (hv.invFun ()))

tactic: convert hv.left_inv.symm
state_before: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ (ContinuousMap.id X).Homotopic (const X (hv.invFun ()))
state_after: no goals
Theorem: toIocMod_eq_sub_fract_mul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocMod, toIocDiv_eq_neg_floor, Int.fract]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ toIocMod hp a b = a + p - Int.fract ((a + p - b) / p) * p
state_after: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b - -⌊(a + p - b) / p⌋ • p = a + p - ((a + p - b) / p - ↑⌊(a + p - b) / p⌋) * p

tactic: field_simp
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b - -⌊(a + p - b) / p⌋ • p = a + p - ((a + p - b) / p - ↑⌊(a + p - b) / p⌋) * p
state_after: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b + ↑⌊(a + p - b) / p⌋ * p = a + p - (a + p - b - p * ↑⌊(a + p - b) / p⌋)

tactic: ring
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
p : α
hp : 0 < p
a b : α
⊢ b + ↑⌊(a + p - b) / p⌋ * p = a + p - (a + p - b - p * ↑⌊(a + p - b) / p⌋)
state_after: no goals
Theorem: MeasureTheory.Lp.simpleFunc.exists_simpleFunc_nonneg_ae_eq
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rcases f with ⟨⟨f, hp⟩, g, (rfl : _ = f)⟩
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
f : ↥(simpleFunc G p μ)
hf : 0 ≤ f
⊢ ∃ f', 0 ≤ f' ∧ ↑↑↑f =ᶠ[ae μ] ↑f'
state_after: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ ⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩
⊢ ∃ f', 0 ≤ f' ∧ ↑↑↑⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩ =ᶠ[ae μ] ↑f'

tactic: change 0 ≤ᵐ[μ] g at hf
state_before: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ ⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩
⊢ ∃ f', 0 ≤ f' ∧ ↑↑↑⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩ =ᶠ[ae μ] ↑f'
state_after: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ᶠ[ae μ] ↑g
⊢ ∃ f', 0 ≤ f' ∧ ↑↑↑⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩ =ᶠ[ae μ] ↑f'

tactic: refine ⟨g ⊔ 0, le_sup_right, (AEEqFun.coeFn_mk _ _).trans ?_⟩
state_before: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ᶠ[ae μ] ↑g
⊢ ∃ f', 0 ≤ f' ∧ ↑↑↑⟨⟨AEEqFun.mk ↑g ⋯, hp⟩, ⋯⟩ =ᶠ[ae μ] ↑f'
state_after: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ᶠ[ae μ] ↑g
⊢ ↑g =ᶠ[ae μ] ↑(g ⊔ 0)

tactic: exact hf.mono fun x hx ↦ (sup_of_le_left hx).symm
state_before: case mk.mk.intro
α : Type u_1
β : Type u_2
ι : Type u_3
E : Type u_4
F : Type u_5
𝕜 : Type u_6
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
G : Type u_7
inst✝ : NormedLatticeAddCommGroup G
g : α →ₛ G
hp : AEEqFun.mk ↑g ⋯ ∈ Lp G p μ
hf : 0 ≤ᶠ[ae μ] ↑g
⊢ ↑g =ᶠ[ae μ] ↑(g ⊔ 0)
state_after: no goals
Theorem: Matrix.inv_sub_inv
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: simpa only [nonsing_inv_eq_ring_inverse] using Ring.inverse_sub_inverse h
state_before: l : Type u_1
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B✝ A B : Matrix n n α
h : IsUnit A ↔ IsUnit B
⊢ A⁻¹ - B⁻¹ = A⁻¹ * (B - A) * B⁻¹
state_after: no goals
Theorem: Set.ncard_le_one
File: Mathlib/Data/Set/Card.lean

tactic: simp_rw [ncard_eq_toFinset_card _ hs, Finset.card_le_one, Finite.mem_toFinset]
state_before: α : Type u_1
β : Type u_2
s t : Set α
f : α → β
hs : autoParam s.Finite _auto✝
⊢ s.ncard ≤ 1 ↔ ∀ a ∈ s, ∀ b ∈ s, a = b
state_after: no goals
Theorem: one_div_le_one_div_of_neg
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simpa [one_div] using inv_le_inv_of_neg ha hb
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : a < 0
hb : b < 0
⊢ 1 / a ≤ 1 / b ↔ b ≤ a
state_after: no goals
Theorem: OreLocalization.add_zero
File: Mathlib/RingTheory/OreLocalization/Basic.lean

tactic: induction x
state_before: R : Type u_1
inst✝³ : Monoid R
S : Submonoid R
inst✝² : OreSet S
X : Type u_2
inst✝¹ : AddMonoid X
inst✝ : DistribMulAction R X
x : OreLocalization S X
⊢ x + 0 = x
state_after: case c
R : Type u_1
inst✝³ : Monoid R
S : Submonoid R
inst✝² : OreSet S
X : Type u_2
inst✝¹ : AddMonoid X
inst✝ : DistribMulAction R X
r✝ : X
s✝ : ↥S
⊢ r✝ /ₒ s✝ + 0 = r✝ /ₒ s✝

tactic: rw [← zero_oreDiv, add_oreDiv]
state_before: case c
R : Type u_1
inst✝³ : Monoid R
S : Submonoid R
inst✝² : OreSet S
X : Type u_2
inst✝¹ : AddMonoid X
inst✝ : DistribMulAction R X
r✝ : X
s✝ : ↥S
⊢ r✝ /ₒ s✝ + 0 = r✝ /ₒ s✝
state_after: case c
R : Type u_1
inst✝³ : Monoid R
S : Submonoid R
inst✝² : OreSet S
X : Type u_2
inst✝¹ : AddMonoid X
inst✝ : DistribMulAction R X
r✝ : X
s✝ : ↥S
⊢ (r✝ + 0) /ₒ s✝ = r✝ /ₒ s✝

tactic: simp
state_before: case c
R : Type u_1
inst✝³ : Monoid R
S : Submonoid R
inst✝² : OreSet S
X : Type u_2
inst✝¹ : AddMonoid X
inst✝ : DistribMulAction R X
r✝ : X
s✝ : ↥S
⊢ (r✝ + 0) /ₒ s✝ = r✝ /ₒ s✝
state_after: no goals
Theorem: String.Pos.valid_endPos
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp
state_before: s : String
⊢ s.data ++ [] = s.data
state_after: no goals
Theorem: Finsupp.multinomial_update
File: Mathlib/Data/Nat/Choose/Multinomial.lean

tactic: simp only [multinomial_eq]
state_before: α : Type u_1
a : α
f : α →₀ ℕ
⊢ f.multinomial = (f.sum fun x => id).choose (f a) * (f.update a 0).multinomial
state_after: α : Type u_1
a : α
f : α →₀ ℕ
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)

tactic: by_cases h : a ∈ f.support
state_before: α : Type u_1
a : α
f : α →₀ ℕ
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)
state_after: case pos
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)

case neg
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∉ f.support
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)

tactic: rw [not_mem_support_iff] at h
state_before: case neg
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∉ f.support
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)
state_after: case neg
α : Type u_1
a : α
f : α →₀ ℕ
h : f a = 0
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)

tactic: rw [h, Nat.choose_zero_right, one_mul, ← h, update_self]
state_before: case neg
α : Type u_1
a : α
f : α →₀ ℕ
h : f a = 0
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)
state_after: no goals

tactic: rw [← Finset.insert_erase h, Nat.multinomial_insert (Finset.not_mem_erase a _),
  Finset.add_sum_erase _ f h, support_update_zero]
state_before: case pos
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ Nat.multinomial f.support ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.update a 0).support ⇑(f.update a 0)
state_after: case pos
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ (∑ x ∈ f.support, f x).choose (f a) * Nat.multinomial (f.support.erase a) ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.support.erase a) ⇑(f.update a 0)

tactic: congr 1
state_before: case pos
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ (∑ x ∈ f.support, f x).choose (f a) * Nat.multinomial (f.support.erase a) ⇑f =
    (f.sum fun x => id).choose (f a) * Nat.multinomial (f.support.erase a) ⇑(f.update a 0)
state_after: case pos.e_a
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ Nat.multinomial (f.support.erase a) ⇑f = Nat.multinomial (f.support.erase a) ⇑(f.update a 0)

tactic: exact Nat.multinomial_congr fun _ h ↦ (Function.update_noteq (mem_erase.1 h).1 0 f).symm
state_before: case pos.e_a
α : Type u_1
a : α
f : α →₀ ℕ
h : a ∈ f.support
⊢ Nat.multinomial (f.support.erase a) ⇑f = Nat.multinomial (f.support.erase a) ⇑(f.update a 0)
state_after: no goals
Theorem: Profinite.pullback.condition
File: Mathlib/Topology/Category/Profinite/Limits.lean

tactic: ext ⟨_, h⟩
state_before: X Y B : Profinite
f : X ⟶ B
g : Y ⟶ B
⊢ fst f g ≫ f = snd f g ≫ g
state_after: case w.mk
X Y B : Profinite
f : X ⟶ B
g : Y ⟶ B
val✝ : ↑X.toCompHaus.toTop × ↑Y.toCompHaus.toTop
h : val✝ ∈ {xy | f xy.1 = g xy.2}
⊢ (fst f g ≫ f) ⟨val✝, h⟩ = (snd f g ≫ g) ⟨val✝, h⟩

tactic: exact h
state_before: case w.mk
X Y B : Profinite
f : X ⟶ B
g : Y ⟶ B
val✝ : ↑X.toCompHaus.toTop × ↑Y.toCompHaus.toTop
h : val✝ ∈ {xy | f xy.1 = g xy.2}
⊢ (fst f g ≫ f) ⟨val✝, h⟩ = (snd f g ≫ g) ⟨val✝, h⟩
state_after: no goals
Theorem: Metric.infDist_le_dist_of_mem
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [dist_edist, infDist]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : y ∈ s
⊢ infDist x s ≤ dist x y
state_after: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : y ∈ s
⊢ (infEdist x s).toReal ≤ (edist x y).toReal

tactic: exact ENNReal.toReal_mono (edist_ne_top _ _) (infEdist_le_edist_of_mem h)
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
h : y ∈ s
⊢ (infEdist x s).toReal ≤ (edist x y).toReal
state_after: no goals
Theorem: abs_eq_neg_self
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: rw [abs_eq_max_neg, max_eq_right_iff, le_neg_self_iff]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ |a| = -a ↔ a ≤ 0
state_after: no goals
Theorem: CategoryTheory.preserves_lift_mapCone
File: Mathlib/CategoryTheory/Limits/Preserves/Limits.lean

tactic: simp [← G.map_comp]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
G : C ⥤ D
J : Type w
inst✝¹ : Category.{w', w} J
F : J ⥤ C
inst✝ : PreservesLimit F G
c₁ c₂ : Cone F
t : IsLimit c₁
⊢ ∀ (j : J), G.map (t.lift c₂) ≫ (G.mapCone c₁).π.app j = (G.mapCone c₂).π.app j
state_after: no goals
Theorem: finite_of_fin_dim_affineIndependent
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

tactic: nontriviality ι
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
⊢ _root_.Finite ι
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
a✝ : Nontrivial ι
⊢ _root_.Finite ι

tactic: inhabit ι
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
a✝ : Nontrivial ι
⊢ _root_.Finite ι
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
⊢ _root_.Finite ι

tactic: rw [affineIndependent_iff_linearIndependent_vsub k p default] at hi
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
⊢ _root_.Finite ι
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
⊢ _root_.Finite ι

tactic: letI : IsNoetherian k V := IsNoetherian.iff_fg.2 inferInstance
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
⊢ _root_.Finite ι
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
this : IsNoetherian k V := IsNoetherian.iff_fg.mpr inferInstance
⊢ _root_.Finite ι

tactic: exact
  (Set.finite_singleton default).finite_of_compl (Set.finite_coe_iff.1 hi.finite_of_isNoetherian)
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
a✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
this : IsNoetherian k V := IsNoetherian.iff_fg.mpr inferInstance
⊢ _root_.Finite ι
state_after: no goals
Theorem: dimH_range_le_of_locally_lipschitzOn
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

tactic: rw [← image_univ]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
hf : ∀ (x : X), ∃ C, ∃ s ∈ 𝓝 x, LipschitzOnWith C f s
⊢ dimH (range f) ≤ dimH univ
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
hf : ∀ (x : X), ∃ C, ∃ s ∈ 𝓝 x, LipschitzOnWith C f s
⊢ dimH (f '' univ) ≤ dimH univ

tactic: refine dimH_image_le_of_locally_lipschitzOn fun x _ => ?_
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
hf : ∀ (x : X), ∃ C, ∃ s ∈ 𝓝 x, LipschitzOnWith C f s
⊢ dimH (f '' univ) ≤ dimH univ
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
hf : ∀ (x : X), ∃ C, ∃ s ∈ 𝓝 x, LipschitzOnWith C f s
x : X
x✝ : x ∈ univ
⊢ ∃ C, ∃ t ∈ 𝓝[univ] x, LipschitzOnWith C f t

tactic: simpa only [exists_prop, nhdsWithin_univ] using hf x
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
hf : ∀ (x : X), ∃ C, ∃ s ∈ 𝓝 x, LipschitzOnWith C f s
x : X
x✝ : x ∈ univ
⊢ ∃ C, ∃ t ∈ 𝓝[univ] x, LipschitzOnWith C f t
state_after: no goals
Theorem: BoundedContinuousFunction.nnnorm_eq_iSup_nnnorm
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: simp_rw [val_eq_coe, NNReal.coe_iSup, coe_nnnorm]
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x : α
C : ℝ
⊢ ⨆ x, ‖f x‖ = ↑(⨆ x, ‖f x‖₊)
state_after: no goals
Theorem: Substring.ValidFor.foldr
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: simp [-List.append_assoc, Substring.foldr, foldrAux_of_valid]
state_before: α : Type u_1
l m r : List Char
f : Char → α → α
init : α
⊢ Substring.foldr f init
      { str := { data := l ++ m ++ r }, startPos := { byteIdx := utf8Len l },
        stopPos := { byteIdx := utf8Len l + utf8Len m } } =
    List.foldr f init m
state_after: no goals