tasksource/leandojo huggingface dataset:
Theorem: Nat.dist.triangle_inequality
File: Mathlib/Data/Nat/Dist.lean

tactic: have : dist n m + dist m k = n - m + (m - k) + (k - m + (m - n)) := by
  simp [dist.def, add_comm, add_left_comm, add_assoc]
state_before: n m k : ℕ
⊢ dist n k ≤ dist n m + dist m k

tactic: rw [this, dist.def]
state_before: n m k : ℕ
this : dist n m + dist m k = n - m + (m - k) + (k - m + (m - n))
⊢ dist n k ≤ dist n m + dist m k

tactic: exact add_le_add tsub_le_tsub_add_tsub tsub_le_tsub_add_tsub
state_before: n m k : ℕ
this : dist n m + dist m k = n - m + (m - k) + (k - m + (m - n))
⊢ n - k + (k - n) ≤ n - m + (m - k) + (k - m + (m - n))

tactic: simp [dist.def, add_comm, add_left_comm, add_assoc]
state_before: n m k : ℕ
⊢ dist n m + dist m k = n - m + (m - k) + (k - m + (m - n))
Theorem: Associated.mul_mul
File: Mathlib/Algebra/Associated.lean

tactic: simp [h₁.symm, h₂.symm, mul_assoc, mul_comm, mul_left_comm]
state_before: α : Type u_1
β : Type ?u.181036
γ : Type ?u.181039
δ : Type ?u.181042
inst✝ : CommMonoid α
a₁ a₂ b₁ b₂ : α
c₁ : αˣ
h₁ : a₁ * ↑c₁ = b₁
c₂ : αˣ
h₂ : a₂ * ↑c₂ = b₂
⊢ a₁ * a₂ * ↑(c₁ * c₂) = b₁ * b₂
Theorem: Finset.map_subtype_subset
File: Mathlib/Data/Finset/Image.lean

tactic: intro a ha
state_before: α : Type u_1
β : Type ?u.135552
γ : Type ?u.135555
t : Set α
s : Finset ↑t
⊢ ↑(map (Embedding.subtype fun x => x ∈ t) s) ⊆ t

tactic: rw [mem_coe] at ha
state_before: α : Type u_1
β : Type ?u.135552
γ : Type ?u.135555
t : Set α
s : Finset ↑t
a : α
ha : a ∈ ↑(map (Embedding.subtype fun x => x ∈ t) s)
⊢ a ∈ t

tactic: convert property_of_mem_map_subtype s ha
state_before: α : Type u_1
β : Type ?u.135552
γ : Type ?u.135555
t : Set α
s : Finset ↑t
a : α
ha : a ∈ map (Embedding.subtype fun x => x ∈ t) s
⊢ a ∈ t
Theorem: HasStrictDerivAt.add
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simpa using (hf.add hg).hasStrictDerivAt
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
hf : HasStrictDerivAt f f' x
hg : HasStrictDerivAt g g' x
⊢ HasStrictDerivAt (fun y => f y + g y) (f' + g') x
Theorem: Fin.map_valEmbedding_Iio
File: Mathlib/Data/Fin/Interval.lean

tactic: simp [Iio_eq_finset_subtype, Finset.fin, Finset.map_map]
state_before: n : ℕ
a b : Fin n
⊢ map valEmbedding (Iio b) = Iio ↑b
Theorem: PSigma.ext_iff
File: Mathlib/Data/Sigma/Basic.lean

tactic: cases x₀
state_before: α : Sort u_1
β : α → Sort u_2
x₀ x₁ : PSigma β
⊢ x₀ = x₁ ↔ x₀.fst = x₁.fst ∧ HEq x₀.snd x₁.snd

tactic: cases x₁
state_before: case mk
α : Sort u_1
β : α → Sort u_2
x₁ : PSigma β
fst✝ : α
snd✝ : β fst✝
⊢ { fst := fst✝, snd := snd✝ } = x₁ ↔
    { fst := fst✝, snd := snd✝ }.fst = x₁.fst ∧ HEq { fst := fst✝, snd := snd✝ }.snd x₁.snd

tactic: exact PSigma.mk.inj_iff
state_before: case mk.mk
α : Sort u_1
β : α → Sort u_2
fst✝¹ : α
snd✝¹ : β fst✝¹
fst✝ : α
snd✝ : β fst✝
⊢ { fst := fst✝¹, snd := snd✝¹ } = { fst := fst✝, snd := snd✝ } ↔
    { fst := fst✝¹, snd := snd✝¹ }.fst = { fst := fst✝, snd := snd✝ }.fst ∧
      HEq { fst := fst✝¹, snd := snd✝¹ }.snd { fst := fst✝, snd := snd✝ }.snd
Theorem: List.nthLe_eq_of_ne_imp_not_nodup
File: Mathlib/Data/List/Nodup.lean

tactic: rw [nodup_iff_nthLe_inj]
state_before: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : ℕ
hn : n < length xs
hm : m < length xs
h : nthLe xs n hn = nthLe xs m hm
hne : n ≠ m
⊢ ¬Nodup xs

tactic: simp only [exists_prop, exists_and_right, not_forall]
state_before: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : ℕ
hn : n < length xs
hm : m < length xs
h : nthLe xs n hn = nthLe xs m hm
hne : n ≠ m
⊢ ¬∀ (i j : ℕ) (h₁ : i < length xs) (h₂ : j < length xs), nthLe xs i h₁ = nthLe xs j h₂ → i = j

tactic: exact ⟨n, m, ⟨hn, hm, h⟩, hne⟩
state_before: α : Type u
β : Type v
l l₁ l₂ : List α
r : α → α → Prop
a b : α
xs : List α
n m : ℕ
hn : n < length xs
hm : m < length xs
h : nthLe xs n hn = nthLe xs m hm
hne : n ≠ m
⊢ ∃ x x_1, (∃ x_2 x_3, nthLe xs x (_ : x < length xs) = nthLe xs x_1 (_ : x_1 < length xs)) ∧ ¬x = x_1
Theorem: Cauchy.prod
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: refine' ⟨hf.1.prod hg.1, _⟩
state_before: α : Type u
β : Type v
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
⊢ Cauchy (f ×ˢ g)

tactic: simp only [uniformity_prod, le_inf_iff, ← map_le_iff_le_comap, ← prod_map_map_eq]
state_before: α : Type u
β : Type v
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
⊢ (f ×ˢ g) ×ˢ f ×ˢ g ≤ 𝓤 (α × β)

tactic: exact
  ⟨le_trans (prod_mono tendsto_fst tendsto_fst) hf.2,
    le_trans (prod_mono tendsto_snd tendsto_snd) hg.2⟩
state_before: α : Type u
β : Type v
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
⊢ map Prod.fst (f ×ˢ g) ×ˢ map Prod.fst (f ×ˢ g) ≤ 𝓤 α ∧ map Prod.snd (f ×ˢ g) ×ˢ map Prod.snd (f ×ˢ g) ≤ 𝓤 β
Theorem: Polynomial.leadingCoeff_quadratic
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [add_assoc, add_comm, leadingCoeff_add_of_degree_lt <| degree_linear_lt_degree_C_mul_X_sq ha,
  leadingCoeff_C_mul_X_pow]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type ?u.1178357
ha : a ≠ 0
⊢ leadingCoeff (↑C a * X ^ 2 + ↑C b * X + ↑C c) = a
Theorem: Basis.orientation_unitsSMul
File: Mathlib/LinearAlgebra/Orientation.lean

tactic: rw [Basis.orientation, Basis.orientation, smul_rayOfNeZero, ray_eq_iff,
  e.det.eq_smul_basis_det (e.unitsSMul w), det_unitsSMul_self, Units.smul_def, smul_smul]
state_before: R : Type u_1
inst✝⁷ : StrictOrderedCommRing R
M : Type u_3
N : Type ?u.98544
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R M
inst✝³ : Module R N
ι : Type u_2
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : Nontrivial R
e : Basis ι R M
w : ι → Rˣ
⊢ Basis.orientation (unitsSMul e w) = (∏ i : ι, w i)⁻¹ • Basis.orientation e

tactic: norm_cast
state_before: R : Type u_1
inst✝⁷ : StrictOrderedCommRing R
M : Type u_3
N : Type ?u.98544
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R M
inst✝³ : Module R N
ι : Type u_2
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : Nontrivial R
e : Basis ι R M
w : ι → Rˣ
⊢ SameRay R (det (unitsSMul e w)) ((↑(∏ i : ι, w i)⁻¹ * ∏ i : ι, ↑(w i)) • det (unitsSMul e w))

tactic: simp
state_before: R : Type u_1
inst✝⁷ : StrictOrderedCommRing R
M : Type u_3
N : Type ?u.98544
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R M
inst✝³ : Module R N
ι : Type u_2
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : Nontrivial R
e : Basis ι R M
w : ι → Rˣ
⊢ SameRay R (det (unitsSMul e w)) (↑((∏ i : ι, w i)⁻¹ * ∏ i : ι, w i) • det (unitsSMul e w))

tactic: exact SameRay.rfl
state_before: R : Type u_1
inst✝⁷ : StrictOrderedCommRing R
M : Type u_3
N : Type ?u.98544
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R M
inst✝³ : Module R N
ι : Type u_2
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : Nontrivial R
e : Basis ι R M
w : ι → Rˣ
⊢ SameRay R (det (unitsSMul e w)) (det (unitsSMul e w))
Theorem: Fin.card_fintypeIic
File: Mathlib/Data/Fin/Interval.lean

tactic: rw [Fintype.card_ofFinset, card_Iic]
state_before: n : ℕ
a b : Fin n
⊢ Fintype.card ↑(Set.Iic b) = ↑b + 1
Theorem: Commute.expUnitary_add
File: Mathlib/Analysis/NormedSpace/Star/Exponential.lean

tactic: ext
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ expUnitary (a + b) = expUnitary a * expUnitary b

tactic: have hcomm : Commute (I • (a : A)) (I • (b : A)) := by
  unfold Commute SemiconjBy
  simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
state_before: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)

tactic: simpa only [expUnitary_coe, AddSubgroup.coe_add, smul_add] using exp_add_of_commute hcomm
state_before: case a
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
hcomm : Commute (I • ↑a) (I • ↑b)
⊢ ↑(expUnitary (a + b)) = ↑(expUnitary a * expUnitary b)

tactic: unfold Commute SemiconjBy
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ Commute (I • ↑a) (I • ↑b)

tactic: simp only [h.eq, Algebra.smul_mul_assoc, Algebra.mul_smul_comm]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : NormedAlgebra ℂ A
inst✝³ : StarRing A
inst✝² : ContinuousStar A
inst✝¹ : CompleteSpace A
inst✝ : StarModule ℂ A
a b : { x // x ∈ selfAdjoint A }
h : Commute ↑a ↑b
⊢ I • ↑a * I • ↑b = I • ↑b * I • ↑a
Theorem: Subgroup.inf_relindex_right
File: Mathlib/GroupTheory/Index.lean

tactic: rw [relindex, relindex, inf_subgroupOf_right]
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
⊢ relindex (H ⊓ K) K = relindex H K
Theorem: let_value_heq
File: Mathlib/Init/Logic.lean

tactic: cases h
state_before: a b✝ c d : Prop
p : ?m.30394
α : Sort v
β : α → Sort u
a₁ a₂ : α
b : (x : α) → β x
h : a₁ = a₂
⊢ HEq
    (let x := a₁;
    b x)
    (let x := a₂;
    b x)

tactic: rfl
state_before: case refl
a b✝ c d : Prop
p : ?m.30394
α : Sort v
β : α → Sort u
a₁ : α
b : (x : α) → β x
⊢ HEq
    (let x := a₁;
    b x)
    (let x := a₁;
    b x)
Theorem: Ideal.bot_isMaximal
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: rw [← h]
state_before: α : Type u
β : Type v
K : Type u
inst✝ : DivisionSemiring K
I : Ideal K
h : ⊥ = ⊤
⊢ ¬1 ∈ ⊤

tactic: simp
state_before: α : Type u
β : Type v
K : Type u
inst✝ : DivisionSemiring K
I : Ideal K
h : ⊥ = ⊤
⊢ ¬1 ∈ ⊥
Theorem: HasDerivAtFilter.comp_hasFDerivAtFilter
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: convert (hh₂.restrictScalars 𝕜).comp x hf hL
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : E → 𝕜'
f' : E →L[𝕜] 𝕜'
x : E
L'' : Filter E
hh₂ : HasDerivAtFilter h₂ h₂' (f x) L'
hf : HasFDerivAtFilter f f' x L''
hL : Tendsto f L'' L'
⊢ HasFDerivAtFilter (h₂ ∘ f) (h₂' • f') x L''

tactic: ext x
state_before: case h.e'_10.h.e
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x✝ : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : E → 𝕜'
f' : E →L[𝕜] 𝕜'
x : E
L'' : Filter E
hh₂ : HasDerivAtFilter h₂ h₂' (f x) L'
hf : HasFDerivAtFilter f f' x L''
hL : Tendsto f L'' L'
⊢ HSMul.hSMul h₂' = ContinuousLinearMap.comp (ContinuousLinearMap.restrictScalars 𝕜 (smulRight 1 h₂'))

tactic: simp [mul_comm]
state_before: case h.e'_10.h.e.h.h
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f✝ f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x✝² : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
f : E → 𝕜'
f' : E →L[𝕜] 𝕜'
x✝¹ : E
L'' : Filter E
hh₂ : HasDerivAtFilter h₂ h₂' (f x✝¹) L'
hf : HasFDerivAtFilter f f' x✝¹ L''
hL : Tendsto f L'' L'
x : E →L[𝕜] 𝕜'
x✝ : E
⊢ ↑(h₂' • x) x✝ = ↑(ContinuousLinearMap.comp (ContinuousLinearMap.restrictScalars 𝕜 (smulRight 1 h₂')) x) x✝
Theorem: WithBot.lt_iff_exists_coe
File: Mathlib/Order/WithBot.lean

tactic: simp [some_eq_coe, coe_eq_coe]
state_before: α : Type u_1
β : Type ?u.18281
γ : Type ?u.18284
δ : Type ?u.18287
a✝ b✝ : α
inst✝ : LT α
a : WithBot α
b : α
⊢ a < Option.some b ↔ ∃ p, Option.some b = ↑p ∧ a < ↑p

tactic: simp [none_eq_bot]
state_before: α : Type u_1
β : Type ?u.18281
γ : Type ?u.18284
δ : Type ?u.18287
a✝ b : α
inst✝ : LT α
a : WithBot α
⊢ ¬∃ p, none = ↑p ∧ a < ↑p
Theorem: sSup_inf_sSup
File: Mathlib/Order/CompleteBooleanAlgebra.lean

tactic: simp only [sSup_eq_iSup, biSup_inf_biSup]
state_before: α : Type u
β : Type v
ι : Sort w
κ : ι → Sort ?u.6733
inst✝ : Frame α
s t : Set α
a b : α
⊢ sSup s ⊓ sSup t = ⨆ (p : α × α) (_ : p ∈ s ×ˢ t), p.fst ⊓ p.snd
Theorem: Set.bex_image_iff
File: Mathlib/Data/Set/Image.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.24319
ι : Sort ?u.24322
ι' : Sort ?u.24325
f✝ : α → β
s✝ t : Set α
f : α → β
s : Set α
p : β → Prop
⊢ (∃ y, y ∈ f '' s ∧ p y) ↔ ∃ x, x ∈ s ∧ p (f x)
Theorem: differentiableWithinAt_dslope_of_ne
File: Mathlib/Analysis/Calculus/Dslope.lean

tactic: refine' ⟨DifferentiableWithinAt.of_dslope, fun hd => _⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
⊢ DifferentiableWithinAt 𝕜 (dslope f a) s b ↔ DifferentiableWithinAt 𝕜 f s b

tactic: refine' (((differentiableWithinAt_id.sub_const a).inv (sub_ne_zero.2 h)).smul
  (hd.sub_const (f a))).congr_of_eventuallyEq _ (dslope_of_ne _ h)
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hd : DifferentiableWithinAt 𝕜 f s b
⊢ DifferentiableWithinAt 𝕜 (dslope f a) s b

tactic: refine' (eqOn_dslope_slope _ _).eventuallyEq_of_mem _
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hd : DifferentiableWithinAt 𝕜 f s b
⊢ dslope f a =ᶠ[𝓝[s] b] fun y => (id y - a)⁻¹ • (f y - f a)

tactic: exact mem_nhdsWithin_of_mem_nhds (isOpen_ne.mem_nhds h)
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hd : DifferentiableWithinAt 𝕜 f s b
⊢ {a}ᶜ ∈ 𝓝[s] b
Theorem: AddCommGroup.ModEq.of_zsmul
File: Mathlib/Algebra/ModEq.lean

tactic: rwa [mul_smul]
state_before: α : Type u_1
inst✝ : AddCommGroup α
p a a₁ a₂ b b₁ b₂ c : α
n : ℕ
z : ℤ
x✝ : a ≡ b [PMOD z • p]
m : ℤ
hm : b - a = m • z • p
⊢ b - a = (m * z) • p
Theorem: List.splitOnP_cons
File: Mathlib/Data/List/Basic.lean

tactic: rw [splitOnP, splitOnP.go]
state_before: ι : Type ?u.295105
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
xs✝ ys : List α
ls : List (List α)
f : List α → List α
x : α
xs : List α
⊢ splitOnP p (x :: xs) = if p x = true then [] :: splitOnP p xs else modifyHead (cons x) (splitOnP p xs)

tactic: split <;> [rfl; simp [splitOnP.go_acc]]
state_before: ι : Type ?u.295105
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Bool
xs✝ ys : List α
ls : List (List α)
f : List α → List α
x : α
xs : List α
⊢ (if p x = true then reverse [] :: splitOnP.go p xs [] else splitOnP.go p xs [x]) =
    if p x = true then [] :: splitOnP p xs else modifyHead (cons x) (splitOnP p xs)
Theorem: Array.data_swap
File: Std/Data/Array/Lemmas.lean

tactic: simp [swap_def]
state_before: α : Type u_1
a : Array α
i j : Fin (size a)
⊢ (swap a i j).data = List.set (List.set a.data i.val (get a j)) j.val (get a i)
Theorem: Set.dual_ordConnected_iff
File: Mathlib/Data/Set/Intervals/OrdConnected.lean

tactic: simp_rw [ordConnected_def, toDual.surjective.forall, dual_Icc, Subtype.forall']
state_before: α : Type u_1
β : Type ?u.9938
inst✝¹ : Preorder α
inst✝ : Preorder β
s✝ t s : Set α
⊢ OrdConnected (↑ofDual ⁻¹' s) ↔ OrdConnected s

tactic: exact forall_swap
state_before: α : Type u_1
β : Type ?u.9938
inst✝¹ : Preorder α
inst✝ : Preorder β
s✝ t s : Set α
⊢ (∀ (x x_1 : { a // ↑toDual a ∈ ↑ofDual ⁻¹' s }), ↑ofDual ⁻¹' Icc ↑x_1 ↑x ⊆ ↑ofDual ⁻¹' s) ↔
    ∀ (x x_1 : { a // a ∈ s }), Icc ↑x ↑x_1 ⊆ s
Theorem: Nat.find_pos
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: rw [pos_iff_ne_zero, Ne, Nat.find_eq_zero]
state_before: m n k l : ℕ
p q : ℕ → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
h : ∃ n, p n
⊢ 0 < Nat.find h ↔ ¬p 0
Theorem: MeasureTheory.AEEqFun.coeFn_comp₂
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [comp₂_eq_mk]
state_before: α : Type u_4
β : Type u_2
γ : Type u_1
δ : Type u_3
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
g : β → γ → δ
hg : Continuous (uncurry g)
f₁ : α →ₘ[μ] β
f₂ : α →ₘ[μ] γ
⊢ ↑(comp₂ g hg f₁ f₂) =ᵐ[μ] fun a => g (↑f₁ a) (↑f₂ a)

tactic: apply coeFn_mk
state_before: α : Type u_4
β : Type u_2
γ : Type u_1
δ : Type u_3
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
g : β → γ → δ
hg : Continuous (uncurry g)
f₁ : α →ₘ[μ] β
f₂ : α →ₘ[μ] γ
⊢ ↑(mk (fun a => g (↑f₁ a) (↑f₂ a)) (_ : AEStronglyMeasurable (fun x => uncurry g (↑f₁ x, ↑f₂ x)) μ)) =ᵐ[μ] fun a =>
    g (↑f₁ a) (↑f₂ a)
Theorem: LocalHomeomorph.map_extend_symm_nhdsWithin_range
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [← nhdsWithin_univ, ← map_extend_symm_nhdsWithin f I hy, preimage_univ, univ_inter]
state_before: 𝕜 : Type u_4
E : Type u_3
M : Type u_1
H : Type u_2
E' : Type ?u.156432
M' : Type ?u.156435
H' : Type ?u.156438
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x : M
s t : Set M
y : M
hy : y ∈ f.source
⊢ map (↑(LocalEquiv.symm (extend f I))) (𝓝[range ↑I] ↑(extend f I) y) = 𝓝 y
Theorem: Int.fract_div_mul_self_add_zsmul_eq
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [zsmul_eq_mul, ← add_mul, fract_add_floor, div_mul_cancel b ha]
state_before: F : Type ?u.184342
α : Type ?u.184345
β : Type ?u.184348
inst✝³ : LinearOrderedRing α
inst✝² : FloorRing α
z : ℤ
a✝ : α
k : Type u_1
inst✝¹ : LinearOrderedField k
inst✝ : FloorRing k
b✝ a b : k
ha : a ≠ 0
⊢ fract (b / a) * a + ⌊b / a⌋ • a = b
Theorem: MeasureTheory.weightedSMul_add_measure
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: ext1 x
state_before: α : Type u_1
E : Type ?u.23178
F : Type u_2
𝕜 : Type ?u.23184
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : ↑↑μ s ≠ ⊤
hνs : ↑↑ν s ≠ ⊤
⊢ weightedSMul (μ + ν) s = weightedSMul μ s + weightedSMul ν s

tactic: push_cast
state_before: case h
α : Type u_1
E : Type ?u.23178
F : Type u_2
𝕜 : Type ?u.23184
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : ↑↑μ s ≠ ⊤
hνs : ↑↑ν s ≠ ⊤
x : F
⊢ ↑(weightedSMul (μ + ν) s) x = ↑(weightedSMul μ s + weightedSMul ν s) x

tactic: simp_rw [Pi.add_apply, weightedSMul_apply]
state_before: case h
α : Type u_1
E : Type ?u.23178
F : Type u_2
𝕜 : Type ?u.23184
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : ↑↑μ s ≠ ⊤
hνs : ↑↑ν s ≠ ⊤
x : F
⊢ ↑(weightedSMul (μ + ν) s) x = (↑(weightedSMul μ s) + ↑(weightedSMul ν s)) x

tactic: push_cast
state_before: case h
α : Type u_1
E : Type ?u.23178
F : Type u_2
𝕜 : Type ?u.23184
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : ↑↑μ s ≠ ⊤
hνs : ↑↑ν s ≠ ⊤
x : F
⊢ ENNReal.toReal (↑↑(μ + ν) s) • x = ENNReal.toReal (↑↑μ s) • x + ENNReal.toReal (↑↑ν s) • x

tactic: rw [Pi.add_apply, ENNReal.toReal_add hμs hνs, add_smul]
state_before: case h
α : Type u_1
E : Type ?u.23178
F : Type u_2
𝕜 : Type ?u.23184
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
m✝ : MeasurableSpace α
μ✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : ↑↑μ s ≠ ⊤
hνs : ↑↑ν s ≠ ⊤
x : F
⊢ ENNReal.toReal ((↑↑μ + ↑↑ν) s) • x = ENNReal.toReal (↑↑μ s) • x + ENNReal.toReal (↑↑ν s) • x
Theorem: Real.nnnorm_two
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simp
state_before: 𝓕 : Type ?u.1107777
𝕜 : Type ?u.1107780
α : Type ?u.1107783
ι : Type ?u.1107786
κ : Type ?u.1107789
E : Type ?u.1107792
F : Type ?u.1107795
G : Type ?u.1107798
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ ↑‖2‖₊ = ↑2
Theorem: ContinuousMap.inf_mem_closed_subalgebra
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: convert inf_mem_subalgebra_closure A f g
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
h : IsClosed ↑A
f g : { x // x ∈ A }
⊢ ↑f ⊓ ↑g ∈ A

tactic: apply SetLike.ext'
state_before: case h.e'_5
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
h : IsClosed ↑A
f g : { x // x ∈ A }
⊢ A = Subalgebra.topologicalClosure A

tactic: symm
state_before: case h.e'_5.h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
h : IsClosed ↑A
f g : { x // x ∈ A }
⊢ ↑A = ↑(Subalgebra.topologicalClosure A)

tactic: erw [closure_eq_iff_isClosed]
state_before: case h.e'_5.h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
h : IsClosed ↑A
f g : { x // x ∈ A }
⊢ ↑(Subalgebra.topologicalClosure A) = ↑A

tactic: exact h
state_before: case h.e'_5.h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : CompactSpace X
A : Subalgebra ℝ C(X, ℝ)
h : IsClosed ↑A
f g : { x // x ∈ A }
⊢ IsClosed ↑A
Theorem: Quotient.out_equiv_out
File: Mathlib/Data/Quot.lean

tactic: rw [← Quotient.eq_mk_iff_out, Quotient.out_eq]
state_before: α : Sort u_1
β : Sort ?u.34616
s : Setoid α
x y : Quotient s
⊢ out x ≈ out y ↔ x = y