1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: abs_lt_norm_sub_of_not_sameRay
File: Mathlib/Analysis/Convex/StrictConvexSpace.lean

tactic: refine abs_sub_lt_iff.2 ⟨lt_norm_sub_of_not_sameRay h, ?_⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
h : ¬SameRay ℝ x y
⊢ |‖x‖ - ‖y‖| < ‖x - y‖
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
h : ¬SameRay ℝ x y
⊢ ‖y‖ - ‖x‖ < ‖x - y‖

tactic: rw [norm_sub_rev]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
h : ¬SameRay ℝ x y
⊢ ‖y‖ - ‖x‖ < ‖x - y‖
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
h : ¬SameRay ℝ x y
⊢ ‖y‖ - ‖x‖ < ‖y - x‖

tactic: exact lt_norm_sub_of_not_sameRay (mt SameRay.symm h)
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedLinearOrderedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x y z : E
a b r : ℝ
h : ¬SameRay ℝ x y
⊢ ‖y‖ - ‖x‖ < ‖y - x‖
state_after: no goals
Theorem: sq_le_one_iff_abs_le_one
File: Mathlib/Algebra/Order/Ring/Abs.lean

tactic: simpa only [one_pow, abs_one] using @sq_le_sq _ _ a 1
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
n : ℕ
a✝ b c a : α
⊢ a ^ 2 ≤ 1 ↔ |a| ≤ 1
state_after: no goals
Theorem: ENNReal.iSup_mul
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [mul_comm, mul_iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
⊢ iSup f * a = ⨆ i, f i * a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
⊢ ⨆ i, a * f i = ⨆ i, f i * a

tactic: congr
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
⊢ ⨆ i, a * f i = ⨆ i, f i * a
state_after: case e_s
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
⊢ (fun i => a * f i) = fun i => f i * a

tactic: funext
state_before: case e_s
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
⊢ (fun i => a * f i) = fun i => f i * a
state_after: case e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
x✝ : ι
⊢ a * f x✝ = f x✝ * a

tactic: rw [mul_comm]
state_before: case e_s.h
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
f : ι → ℝ≥0∞
a : ℝ≥0∞
x✝ : ι
⊢ a * f x✝ = f x✝ * a
state_after: no goals
Theorem: isTorsionFree_iff_noZeroSMulDivisors_nat
File: Mathlib/GroupTheory/Torsion.lean

tactic: simp_rw [AddMonoid.IsTorsionFree, isOfFinAddOrder_iff_nsmul_eq_zero, not_exists, not_and,
  pos_iff_ne_zero, noZeroSMulDivisors_iff, forall_swap (β := ℕ)]
state_before: G : Type u_1
H : Type u_2
M : Type u_3
inst✝ : AddMonoid M
⊢ AddMonoid.IsTorsionFree M ↔ NoZeroSMulDivisors ℕ M
state_after: G : Type u_1
H : Type u_2
M : Type u_3
inst✝ : AddMonoid M
⊢ (∀ (y : ℕ) (x : M), x ≠ 0 → y ≠ 0 → ¬y • x = 0) ↔ ∀ {c : ℕ} {x : M}, c • x = 0 → c = 0 ∨ x = 0

tactic: exact forall₂_congr fun _ _ ↦ by tauto
state_before: G : Type u_1
H : Type u_2
M : Type u_3
inst✝ : AddMonoid M
⊢ (∀ (y : ℕ) (x : M), x ≠ 0 → y ≠ 0 → ¬y • x = 0) ↔ ∀ {c : ℕ} {x : M}, c • x = 0 → c = 0 ∨ x = 0
state_after: no goals

tactic: tauto
state_before: G : Type u_1
H : Type u_2
M : Type u_3
inst✝ : AddMonoid M
x✝¹ : ℕ
x✝ : M
⊢ x✝ ≠ 0 → x✝¹ ≠ 0 → ¬x✝¹ • x✝ = 0 ↔ x✝¹ • x✝ = 0 → x✝¹ = 0 ∨ x✝ = 0
state_after: no goals
Theorem: CategoryTheory.Limits.imageMonoIsoSource_inv_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Images.lean

tactic: simp [imageMonoIsoSource]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y : C
f : X ⟶ Y
inst✝ : Mono f
⊢ (imageMonoIsoSource f).inv ≫ image.ι f = f
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.shift_neg
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean

tactic: change shiftAddHom K L n a (-γ) = _
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
⊢ (-γ).shift a = -γ.shift a
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
⊢ (shiftAddHom K L n a) (-γ) = -γ.shift a

tactic: apply _root_.map_neg
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
K L M : CochainComplex C ℤ
n : ℤ
γ γ₁ γ₂ : Cochain K L n
a : ℤ
⊢ (shiftAddHom K L n a) (-γ) = -γ.shift a
state_after: no goals
Theorem: AlgebraicGeometry.StructureSheaf.localizationToStalk_mk'
File: Mathlib/AlgebraicGeometry/StructureSheaf.lean

tactic: erw [← germ_toOpen R (PrimeSpectrum.basicOpen s) ⟨x, s.2⟩,
  ← germ_toOpen R (PrimeSpectrum.basicOpen s) ⟨x, s.2⟩, ← RingHom.map_mul, toOpen_eq_const,
  toOpen_eq_const, const_mul_cancel']
state_before: R : Type u
inst✝ : CommRing R
x : ↑(PrimeSpectrum.Top R)
f : R
s : ↥x.asIdeal.primeCompl
⊢ (toStalk R x) f =
    (toStalk R x) ↑s * ((structureSheaf R).presheaf.germ ⟨x, ⋯⟩) (const R f (↑s) (PrimeSpectrum.basicOpen ↑s) ⋯)
state_after: no goals
Theorem: Batteries.RBNode.Stream.toList_cons
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [toList, toList, foldr, RBNode.foldr_cons]
state_before: α : Type u_1
x : α
r : RBNode α
s : RBNode.Stream α
⊢ (cons x r s).toList = x :: r.toList ++ s.toList
state_after: α : Type u_1
x : α
r : RBNode α
s : RBNode.Stream α
⊢ x :: (r.toList ++ foldr (fun x x_1 => x :: x_1) s []) = x :: r.toList ++ foldr (fun x x_1 => x :: x_1) s []

tactic: rfl
state_before: α : Type u_1
x : α
r : RBNode α
s : RBNode.Stream α
⊢ x :: (r.toList ++ foldr (fun x x_1 => x :: x_1) s []) = x :: r.toList ++ foldr (fun x x_1 => x :: x_1) s []
state_after: no goals
Theorem: set_smul_mem_nhds_smul
File: Mathlib/Topology/Algebra/ConstMulAction.lean

tactic: rw [mem_nhds_iff] at hs ⊢
state_before: M : Type u_1
α : Type u_2
β : Type u_3
Γ : Type u_4
inst✝⁶ : Group Γ
T : Type u_5
inst✝⁵ : TopologicalSpace T
inst✝⁴ : MulAction Γ T
G₀ : Type u_6
inst✝³ : GroupWithZero G₀
inst✝² : MulAction G₀ α
inst✝¹ : TopologicalSpace α
inst✝ : ContinuousConstSMul G₀ α
c : G₀
s : Set α
x : α
hs : s ∈ 𝓝 x
hc : c ≠ 0
⊢ c • s ∈ 𝓝 (c • x)
state_after: M : Type u_1
α : Type u_2
β : Type u_3
Γ : Type u_4
inst✝⁶ : Group Γ
T : Type u_5
inst✝⁵ : TopologicalSpace T
inst✝⁴ : MulAction Γ T
G₀ : Type u_6
inst✝³ : GroupWithZero G₀
inst✝² : MulAction G₀ α
inst✝¹ : TopologicalSpace α
inst✝ : ContinuousConstSMul G₀ α
c : G₀
s : Set α
x : α
hs : ∃ t ⊆ s, IsOpen t ∧ x ∈ t
hc : c ≠ 0
⊢ ∃ t ⊆ c • s, IsOpen t ∧ c • x ∈ t

tactic: obtain ⟨U, hs', hU, hU'⟩ := hs
state_before: M : Type u_1
α : Type u_2
β : Type u_3
Γ : Type u_4
inst✝⁶ : Group Γ
T : Type u_5
inst✝⁵ : TopologicalSpace T
inst✝⁴ : MulAction Γ T
G₀ : Type u_6
inst✝³ : GroupWithZero G₀
inst✝² : MulAction G₀ α
inst✝¹ : TopologicalSpace α
inst✝ : ContinuousConstSMul G₀ α
c : G₀
s : Set α
x : α
hs : ∃ t ⊆ s, IsOpen t ∧ x ∈ t
hc : c ≠ 0
⊢ ∃ t ⊆ c • s, IsOpen t ∧ c • x ∈ t
state_after: case intro.intro.intro
M : Type u_1
α : Type u_2
β : Type u_3
Γ : Type u_4
inst✝⁶ : Group Γ
T : Type u_5
inst✝⁵ : TopologicalSpace T
inst✝⁴ : MulAction Γ T
G₀ : Type u_6
inst✝³ : GroupWithZero G₀
inst✝² : MulAction G₀ α
inst✝¹ : TopologicalSpace α
inst✝ : ContinuousConstSMul G₀ α
c : G₀
s : Set α
x : α
hc : c ≠ 0
U : Set α
hs' : U ⊆ s
hU : IsOpen U
hU' : x ∈ U
⊢ ∃ t ⊆ c • s, IsOpen t ∧ c • x ∈ t

tactic: exact ⟨c • U, Set.smul_set_mono hs', hU.smul₀ hc, Set.smul_mem_smul_set hU'⟩
state_before: case intro.intro.intro
M : Type u_1
α : Type u_2
β : Type u_3
Γ : Type u_4
inst✝⁶ : Group Γ
T : Type u_5
inst✝⁵ : TopologicalSpace T
inst✝⁴ : MulAction Γ T
G₀ : Type u_6
inst✝³ : GroupWithZero G₀
inst✝² : MulAction G₀ α
inst✝¹ : TopologicalSpace α
inst✝ : ContinuousConstSMul G₀ α
c : G₀
s : Set α
x : α
hc : c ≠ 0
U : Set α
hs' : U ⊆ s
hU : IsOpen U
hU' : x ∈ U
⊢ ∃ t ⊆ c • s, IsOpen t ∧ c • x ∈ t
state_after: no goals
Theorem: NormedRing.inverse_add_norm_diff_first_order
File: Mathlib/Analysis/NormedSpace/Units.lean

tactic: simpa using inverse_add_norm_diff_nth_order x 1
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
⊢ (fun t => inverse (↑x + t) - ↑x⁻¹) =O[𝓝 0] fun t => ‖t‖
state_after: no goals
Theorem: Multiset.le_inf
File: Mathlib/Data/Multiset/Lattice.lean

tactic: simp
state_before: α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
s : Multiset α
a : α
⊢ a ≤ inf 0 ↔ ∀ b ∈ 0, a ≤ b
state_after: no goals

tactic: simp (config := { contextual := true }) [or_imp, forall_and]
state_before: α : Type u_1
inst✝¹ : SemilatticeInf α
inst✝ : OrderTop α
s : Multiset α
a : α
⊢ ∀ (a_1 : α) (s : Multiset α), (a ≤ s.inf ↔ ∀ b ∈ s, a ≤ b) → (a ≤ (a_1 ::ₘ s).inf ↔ ∀ b ∈ a_1 ::ₘ s, a ≤ b)
state_after: no goals
Theorem: Representation.invariants_eq_inter
File: Mathlib/RepresentationTheory/Invariants.lean

tactic: ext
state_before: k : Type u_1
G : Type u_2
V : Type u_3
inst✝³ : CommSemiring k
inst✝² : Group G
inst✝¹ : AddCommMonoid V
inst✝ : Module k V
ρ : Representation k G V
⊢ ρ.invariants.carrier = ⋂ g, Function.fixedPoints ⇑(ρ g)
state_after: case h
k : Type u_1
G : Type u_2
V : Type u_3
inst✝³ : CommSemiring k
inst✝² : Group G
inst✝¹ : AddCommMonoid V
inst✝ : Module k V
ρ : Representation k G V
x✝ : V
⊢ x✝ ∈ ρ.invariants.carrier ↔ x✝ ∈ ⋂ g, Function.fixedPoints ⇑(ρ g)

tactic: simp [Function.IsFixedPt]
state_before: case h
k : Type u_1
G : Type u_2
V : Type u_3
inst✝³ : CommSemiring k
inst✝² : Group G
inst✝¹ : AddCommMonoid V
inst✝ : Module k V
ρ : Representation k G V
x✝ : V
⊢ x✝ ∈ ρ.invariants.carrier ↔ x✝ ∈ ⋂ g, Function.fixedPoints ⇑(ρ g)
state_after: no goals
Theorem: Bool.or_le
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {x y z : Bool}, x ≤ z → y ≤ z → (x || y) ≤ z
state_after: no goals
Theorem: RingTheory.Sequence.isRegular_cons_iff'
File: Mathlib/RingTheory/Regular/RegularSequence.lean

tactic: conv => congr <;> rw [isRegular_iff, ne_eq]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
M₂ : Type u_4
M₃ : Type u_5
M₄ : Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : AddCommGroup M
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₄
r : R
rs : List R
⊢ IsRegular M (r :: rs) ↔
    IsSMulRegular M r ∧ IsRegular (QuotSMulTop r M) (List.map (⇑(Ideal.Quotient.mk (Ideal.span {r}))) rs)
state_after: R : Type u_1
S : Type u_2
M : Type u_3
M₂ : Type u_4
M₃ : Type u_5
M₄ : Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : AddCommGroup M
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₄
r : R
rs : List R
⊢ IsWeaklyRegular M (r :: rs) ∧ ¬⊤ = Ideal.ofList (r :: rs) • ⊤ ↔
    IsSMulRegular M r ∧
      IsWeaklyRegular (QuotSMulTop r M) (List.map (⇑(Ideal.Quotient.mk (Ideal.span {r}))) rs) ∧
        ¬⊤ = Ideal.ofList (List.map (⇑(Ideal.Quotient.mk (Ideal.span {r}))) rs) • ⊤

tactic: rw [isWeaklyRegular_cons_iff', ← restrictScalars_inj R (R ⧸ _),
  ← Ideal.map_ofList, ← Ideal.Quotient.algebraMap_eq, Ideal.smul_restrictScalars,
  restrictScalars_top, top_eq_ofList_cons_smul_iff, and_assoc]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
M₂ : Type u_4
M₃ : Type u_5
M₄ : Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : AddCommGroup M
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₄
r : R
rs : List R
⊢ IsWeaklyRegular M (r :: rs) ∧ ¬⊤ = Ideal.ofList (r :: rs) • ⊤ ↔
    IsSMulRegular M r ∧
      IsWeaklyRegular (QuotSMulTop r M) (List.map (⇑(Ideal.Quotient.mk (Ideal.span {r}))) rs) ∧
        ¬⊤ = Ideal.ofList (List.map (⇑(Ideal.Quotient.mk (Ideal.span {r}))) rs) • ⊤
state_after: no goals
Theorem: Ordnode.Valid'.node4L_lemma₅
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: omega
state_before: α : Type u_1
inst✝ : Preorder α
a b c d : ℕ
lr₂ : 3 * (b + c + 1 + d) ≤ 16 * a + 9
mr₁ : 2 * d ≤ b + c + 1
mm₂ : c ≤ 3 * b
⊢ c + d + 1 ≤ 3 * (a + b + 1)
state_after: no goals
Theorem: IsCompact.finite_of_discrete
File: Mathlib/Topology/Compactness/Compact.lean

tactic: have : ∀ x : X, ({x} : Set X) ∈ 𝓝 x := by simp [nhds_discrete]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
⊢ s.Finite
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
⊢ s.Finite

tactic: rcases hs.elim_nhds_subcover (fun x => {x}) fun x _ => this x with ⟨t, _, hst⟩
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
⊢ s.Finite
state_after: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t✝ : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
t : Finset X
left✝ : ∀ x ∈ t, x ∈ s
hst : s ⊆ ⋃ x ∈ t, {x}
⊢ s.Finite

tactic: simp only [← t.set_biUnion_coe, biUnion_of_singleton] at hst
state_before: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t✝ : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
t : Finset X
left✝ : ∀ x ∈ t, x ∈ s
hst : s ⊆ ⋃ x ∈ t, {x}
⊢ s.Finite
state_after: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t✝ : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
t : Finset X
left✝ : ∀ x ∈ t, x ∈ s
hst : s ⊆ ↑t
⊢ s.Finite

tactic: exact t.finite_toSet.subset hst
state_before: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t✝ : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
this : ∀ (x : X), {x} ∈ 𝓝 x
t : Finset X
left✝ : ∀ x ∈ t, x ∈ s
hst : s ⊆ ↑t
⊢ s.Finite
state_after: no goals

tactic: simp [nhds_discrete]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : DiscreteTopology X
hs : IsCompact s
⊢ ∀ (x : X), {x} ∈ 𝓝 x
state_after: no goals
Theorem: MeasureTheory.LpAddConst_lt_top
File: Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean

tactic: rw [LpAddConst]
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
⊢ LpAddConst p < ⊤
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
⊢ (if p ∈ Set.Ioo 0 1 then 2 ^ (1 / p.toReal - 1) else 1) < ⊤

tactic: split_ifs with h
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
⊢ (if p ∈ Set.Ioo 0 1 then 2 ^ (1 / p.toReal - 1) else 1) < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 2 ^ (1 / p.toReal - 1) < ⊤

case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∉ Set.Ioo 0 1
⊢ 1 < ⊤

tactic: apply ENNReal.rpow_lt_top_of_nonneg _ ENNReal.two_ne_top
state_before: case pos
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 2 ^ (1 / p.toReal - 1) < ⊤
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 0 ≤ 1 / p.toReal - 1

tactic: simp only [one_div, sub_nonneg]
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 0 ≤ 1 / p.toReal - 1
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 1 ≤ p.toReal⁻¹

tactic: apply one_le_inv (ENNReal.toReal_pos h.1.ne' (h.2.trans ENNReal.one_lt_top).ne)
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 1 ≤ p.toReal⁻¹
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ p.toReal ≤ 1

tactic: simpa using ENNReal.toReal_mono ENNReal.one_ne_top h.2.le
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ p.toReal ≤ 1
state_after: no goals

tactic: exact ENNReal.one_lt_top
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p✝ : ℝ≥0∞
q : ℝ
μ : Measure α
f g : α → E
p : ℝ≥0∞
h : p ∉ Set.Ioo 0 1
⊢ 1 < ⊤
state_after: no goals
Theorem: Ideal.span_singleton_mul_span_singleton
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: unfold span
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
r s : R
⊢ span {r} * span {s} = span {r * s}
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
r s : R
⊢ Submodule.span R {r} * Submodule.span R {s} = Submodule.span R {r * s}

tactic: rw [Submodule.span_mul_span, Set.singleton_mul_singleton]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
r s : R
⊢ Submodule.span R {r} * Submodule.span R {s} = Submodule.span R {r * s}
state_after: no goals
Theorem: Real.toNNReal_le_one
File: Mathlib/Data/NNReal/Basic.lean

tactic: simpa using toNNReal_le_toNNReal_iff zero_le_one
state_before: r : ℝ
⊢ r.toNNReal ≤ 1 ↔ r ≤ 1
state_after: no goals
Theorem: lipschitzWith_of_nnnorm_fderiv_le
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: let A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
state_before: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C✝ : ℝ
s : Set E✝
x y : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
C : ℝ≥0
hf : Differentiable 𝕜 f
bound : ∀ (x : E), ‖fderiv 𝕜 f x‖₊ ≤ C
⊢ LipschitzWith C f
state_after: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C✝ : ℝ
s : Set E✝
x y : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
C : ℝ≥0
hf : Differentiable 𝕜 f
bound : ∀ (x : E), ‖fderiv 𝕜 f x‖₊ ≤ C
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ LipschitzWith C f

tactic: rw [← lipschitzOn_univ]
state_before: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C✝ : ℝ
s : Set E✝
x y : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
C : ℝ≥0
hf : Differentiable 𝕜 f
bound : ∀ (x : E), ‖fderiv 𝕜 f x‖₊ ≤ C
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ LipschitzWith C f
state_after: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C✝ : ℝ
s : Set E✝
x y : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
C : ℝ≥0
hf : Differentiable 𝕜 f
bound : ∀ (x : E), ‖fderiv 𝕜 f x‖₊ ≤ C
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ LipschitzOnWith C f univ

tactic: exact lipschitzOnWith_of_nnnorm_fderiv_le (fun x _ ↦ hf x) (fun x _ ↦ bound x) convex_univ
state_before: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C✝ : ℝ
s : Set E✝
x y : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
C : ℝ≥0
hf : Differentiable 𝕜 f
bound : ∀ (x : E), ‖fderiv 𝕜 f x‖₊ ≤ C
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ LipschitzOnWith C f univ
state_after: no goals
Theorem: Behrend.mem_box
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

tactic: simp only [box, Fintype.mem_piFinset, mem_range]
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
⊢ x ∈ box n d ↔ ∀ (i : Fin n), x i < d
state_after: no goals
Theorem: Equiv.hasProd_iff_of_mulSupport
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: have : (g ∘ (↑)) ∘ e = f ∘ (↑) := funext he
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
g : γ → α
e : ↑(mulSupport f) ≃ ↑(mulSupport g)
he : ∀ (x : ↑(mulSupport f)), g ↑(e x) = f ↑x
⊢ HasProd f a ↔ HasProd g a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
g : γ → α
e : ↑(mulSupport f) ≃ ↑(mulSupport g)
he : ∀ (x : ↑(mulSupport f)), g ↑(e x) = f ↑x
this : (g ∘ Subtype.val) ∘ ⇑e = f ∘ Subtype.val
⊢ HasProd f a ↔ HasProd g a

tactic: rw [← hasProd_subtype_mulSupport, ← this, e.hasProd_iff, hasProd_subtype_mulSupport]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
g : γ → α
e : ↑(mulSupport f) ≃ ↑(mulSupport g)
he : ∀ (x : ↑(mulSupport f)), g ↑(e x) = f ↑x
this : (g ∘ Subtype.val) ∘ ⇑e = f ∘ Subtype.val
⊢ HasProd f a ↔ HasProd g a
state_after: no goals