tasksource/leandojo huggingface dataset:
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
Theorem: NormedSpace.polar_ball_subset_closedBall_div
File: Mathlib/Analysis/NormedSpace/Dual.lean

tactic: intro x' hx'
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
⊢ polar 𝕜 (ball 0 r) ⊆ closedBall 0 (‖c‖ / r)

tactic: rw [mem_polar_iff] at hx'
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : x' ∈ polar 𝕜 (ball 0 r)
⊢ x' ∈ closedBall 0 (‖c‖ / r)

tactic: simp only [polar, mem_setOf, mem_closedBall_zero_iff, mem_ball_zero_iff] at *
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : ∀ (z : E), z ∈ ball 0 r → ‖↑x' z‖ ≤ 1
⊢ x' ∈ closedBall 0 (‖c‖ / r)

tactic: have hcr : 0 < ‖c‖ / r := div_pos (zero_lt_one.trans hc) hr
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : ∀ (z : E), ‖z‖ < r → ‖↑x' z‖ ≤ 1
⊢ ‖x'‖ ≤ ‖c‖ / r

tactic: refine' ContinuousLinearMap.op_norm_le_of_shell hr hcr.le hc fun x h₁ h₂ => _
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : ∀ (z : E), ‖z‖ < r → ‖↑x' z‖ ≤ 1
hcr : 0 < ‖c‖ / r
⊢ ‖x'‖ ≤ ‖c‖ / r

tactic: calc
  ‖x' x‖ ≤ 1 := hx' _ h₂
  _ ≤ ‖c‖ / r * ‖x‖ := (inv_pos_le_iff_one_le_mul' hcr).1 (by rwa [inv_div])
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : ∀ (z : E), ‖z‖ < r → ‖↑x' z‖ ≤ 1
hcr : 0 < ‖c‖ / r
x : E
h₁ : r / ‖c‖ ≤ ‖x‖
h₂ : ‖x‖ < r
⊢ ‖↑x' x‖ ≤ ‖c‖ / r * ‖x‖

tactic: rwa [inv_div]
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
hc : 1 < ‖c‖
r : ℝ
hr : 0 < r
x' : Dual 𝕜 E
hx' : ∀ (z : E), ‖z‖ < r → ‖↑x' z‖ ≤ 1
hcr : 0 < ‖c‖ / r
x : E
h₁ : r / ‖c‖ ≤ ‖x‖
h₂ : ‖x‖ < r
⊢ (‖c‖ / r)⁻¹ ≤ ‖x‖
Theorem: Subgroup.subgroupOf_eq_bot
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: rw [disjoint_iff, ← bot_subgroupOf, subgroupOf_inj, bot_inf_eq]
state_before: G : Type u_1
G' : Type ?u.292475
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.292484
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type ?u.292505
inst✝¹ : Group N
P : Type ?u.292511
inst✝ : Group P
H K : Subgroup G
⊢ subgroupOf H K = ⊥ ↔ Disjoint H K
Theorem: Derivation.leibniz_of_mul_eq_one
File: Mathlib/RingTheory/Derivation/Basic.lean

tactic: rw [neg_smul]
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ ↑D a = -a ^ 2 • ↑D b

tactic: refine' eq_neg_of_add_eq_zero_left _
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ ↑D a = -(a ^ 2 • ↑D b)

tactic: calc
  D a + a ^ 2 • D b = a • b • D a + a • a • D b := by simp only [smul_smul, h, one_smul, sq]
  _ = a • D (a * b) := by rw [leibniz, smul_add, add_comm]
  _ = 0 := by rw [h, map_one_eq_zero, smul_zero]
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ ↑D a + a ^ 2 • ↑D b = 0

tactic: simp only [smul_smul, h, one_smul, sq]
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ ↑D a + a ^ 2 • ↑D b = a • b • ↑D a + a • a • ↑D b

tactic: rw [leibniz, smul_add, add_comm]
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ a • b • ↑D a + a • a • ↑D b = a • ↑D (a * b)

tactic: rw [h, map_one_eq_zero, smul_zero]
state_before: R : Type u_3
inst✝⁵ : CommRing R
A : Type u_1
inst✝⁴ : CommRing A
inst✝³ : Algebra R A
M : Type u_2
inst✝² : AddCommGroup M
inst✝¹ : Module A M
inst✝ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ a b : A
h : a * b = 1
⊢ a • ↑D (a * b) = 0
Theorem: Inducing.tendsto_nhds_iff
File: Mathlib/Topology/Maps.lean

tactic: rw [hg.nhds_eq_comap, tendsto_comap_iff]
state_before: α : Type ?u.3470
β : Type u_2
γ : Type u_3
δ : Type ?u.3479
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
ι : Type u_1
f : ι → β
g : β → γ
a : Filter ι
b : β
hg : Inducing g
⊢ Tendsto f a (𝓝 b) ↔ Tendsto (g ∘ f) a (𝓝 (g b))
Theorem: Finset.coe_singleton
File: Mathlib/Data/Finset/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type ?u.29702
γ : Type ?u.29705
s : Finset α
a✝ b a : α
⊢ ↑{a} = {a}

tactic: simp
state_before: case h
α : Type u_1
β : Type ?u.29702
γ : Type ?u.29705
s : Finset α
a✝ b a x✝ : α
⊢ x✝ ∈ ↑{a} ↔ x✝ ∈ {a}
Theorem: Finset.Ico_union_Ico
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← coe_inj, coe_union, coe_Ico, coe_Ico, coe_Ico, Set.Ico_union_Ico h₁ h₂]
state_before: ι : Type ?u.132593
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a✝ b✝ a b c d : α
h₁ : min a b ≤ max c d
h₂ : min c d ≤ max a b
⊢ Ico a b ∪ Ico c d = Ico (min a c) (max b d)
Theorem: Finset.affineCombinationSingleWeights_apply_of_ne
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [affineCombinationSingleWeights, h]
state_before: k : Type u_2
V : Type ?u.413734
P : Type ?u.413737
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type ?u.414393
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i j : ι
h : j ≠ i
⊢ affineCombinationSingleWeights k i j = 0
Theorem: Set.preimage_inl_range_inr
File: Mathlib/Data/Set/Image.lean

tactic: rw [← image_univ, preimage_inl_image_inr]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.85555
ι : Sort ?u.85558
ι' : Sort ?u.85561
f : ι → α
s t : Set α
⊢ Sum.inl ⁻¹' range Sum.inr = ∅
Theorem: zpow_mono_left
File: Mathlib/Algebra/GroupPower/Lemmas.lean

tactic: rw [← one_le_div', ← div_zpow]
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : OrderedCommGroup α
m n : ℤ
a✝ b✝ : α
hn : 0 ≤ n
a b : α
hab : a ≤ b
⊢ (fun x => x ^ n) a ≤ (fun x => x ^ n) b

tactic: exact one_le_zpow (one_le_div'.2 hab) hn
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : OrderedCommGroup α
m n : ℤ
a✝ b✝ : α
hn : 0 ≤ n
a b : α
hab : a ≤ b
⊢ 1 ≤ (b / a) ^ n
Theorem: CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
File: Mathlib/CategoryTheory/Limits/Types.lean

tactic: rw [← h, FunctorToTypes.map_id_apply]
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ TypeMax
x y : (j : J) × F.obj j
x✝ : Quot.Rel F x y
f : x.fst ⟶ y.fst
h : y.snd = F.map f x.snd
⊢ F.map f x.snd = F.map (𝟙 y.fst) y.snd
Theorem: Multiset.Ioo_eq_zero_iff
File: Mathlib/Data/Multiset/LocallyFinite.lean

tactic: rw [Ioo, Finset.val_eq_zero, Finset.Ioo_eq_empty_iff]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a b c : α
inst✝ : DenselyOrdered α
⊢ Ioo a b = 0 ↔ ¬a < b
Theorem: cmp_div_one'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [← cmp_mul_right' _ _ b, one_mul, div_mul_cancel']
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LinearOrder α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ cmp (a / b) 1 = cmp a b
Theorem: SimpleGraph.mul_adjMatrix_apply
File: Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean

tactic: simp [mul_apply, neighborFinset_eq_filter, sum_filter, adj_comm]
state_before: V : Type u_2
α : Type u_1
β : Type ?u.51456
G : SimpleGraph V
inst✝² : DecidableRel G.Adj
inst✝¹ : Fintype V
inst✝ : NonAssocSemiring α
M : Matrix V V α
v w : V
⊢ (M ⬝ adjMatrix α G) v w = ∑ u in neighborFinset G w, M v u
Theorem: CategoryTheory.Abelian.epi_fst_of_isLimit
File: Mathlib/CategoryTheory/Abelian/Basic.lean

tactic: haveI : Epi (NatTrans.app (limit.cone (cospan f g)).π WalkingCospan.left) :=
  Abelian.epi_pullback_of_epi_g f g
state_before: C : Type u
inst✝³ : Category C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi g
s : PullbackCone f g
hs : IsLimit s
⊢ Epi (PullbackCone.fst s)

tactic: apply epi_of_epi_fac (IsLimit.conePointUniqueUpToIso_hom_comp (limit.isLimit _) hs _)
state_before: C : Type u
inst✝³ : Category C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi g
s : PullbackCone f g
hs : IsLimit s
this : Epi ((limit.cone (cospan f g)).π.app WalkingCospan.left)
⊢ Epi (PullbackCone.fst s)
Theorem: gramSchmidt_def''
File: Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean

tactic: convert gramSchmidt_def' 𝕜 f n
state_before: 𝕜 : Type u_2
E : Type u_1
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n : ι
⊢ f n =
    gramSchmidt 𝕜 f n + ∑ i in Iio n, (inner (gramSchmidt 𝕜 f i) (f n) / ↑‖gramSchmidt 𝕜 f i‖ ^ 2) • gramSchmidt 𝕜 f i

tactic: rw [orthogonalProjection_singleton, IsROrC.ofReal_pow]
state_before: case h.e'_3.h.e'_6.a
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
ι : Type u_3
inst✝² : LinearOrder ι
inst✝¹ : LocallyFiniteOrderBot ι
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
f : ι → E
n x✝ : ι
a✝ : x✝ ∈ Iio n
⊢ (inner (gramSchmidt 𝕜 f x✝) (f n) / ↑‖gramSchmidt 𝕜 f x✝‖ ^ 2) • gramSchmidt 𝕜 f x✝ =
    ↑(↑(orthogonalProjection (span 𝕜 {gramSchmidt 𝕜 f x✝})) (f n))
Theorem: StarConvex.add_left
File: Mathlib/Analysis/Convex/Star.lean

tactic: intro y hy a b ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.53660
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z✝ : E
s : Set E
hs : StarConvex 𝕜 x s
z : E
⊢ StarConvex 𝕜 (z + x) ((fun x => z + x) '' s)

tactic: obtain ⟨y', hy', rfl⟩ := hy
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.53660
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z✝ : E
s : Set E
hs : StarConvex 𝕜 x s
z y : E
hy : y ∈ (fun x => z + x) '' s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • (z + x) + b • y ∈ (fun x => z + x) '' s

tactic: refine' ⟨a • x + b • y', hs hy' ha hb hab, _⟩
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.53660
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z✝ : E
s : Set E
hs : StarConvex 𝕜 x s
z : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
y' : E
hy' : y' ∈ s
⊢ a • (z + x) + b • (fun x => z + x) y' ∈ (fun x => z + x) '' s

tactic: rw [smul_add, smul_add, add_add_add_comm, ← add_smul, hab, one_smul]
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.53660
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z✝ : E
s : Set E
hs : StarConvex 𝕜 x s
z : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
y' : E
hy' : y' ∈ s
⊢ (fun x => z + x) (a • x + b • y') = a • (z + x) + b • (fun x => z + x) y'
Theorem: MeasureTheory.HasFiniteIntegral.max_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [abs_le, le_abs_self]
state_before: α : Type u_1
β : Type ?u.746780
γ : Type ?u.746783
δ : Type ?u.746786
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ
hf : HasFiniteIntegral f
x : α
⊢ ‖max (f x) 0‖ ≤ ‖f x‖
Theorem: WellFounded.lt_succ
File: Mathlib/Order/WellFounded.lean

tactic: rw [WellFounded.succ, dif_pos h]
state_before: α : Type u_1
r : α → α → Prop
wf : WellFounded r
x : α
h : ∃ y, r x y
⊢ r x (WellFounded.succ wf x)

tactic: apply min_mem
state_before: α : Type u_1
r : α → α → Prop
wf : WellFounded r
x : α
h : ∃ y, r x y
⊢ r x (min wf {y | r x y} h)
Theorem: ENNReal.exists_pos_sum_of_countable
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: rcases exists_between (pos_iff_ne_zero.2 hε) with ⟨r, h0r, hrε⟩
state_before: α : Type ?u.477583
β : Type ?u.477586
ι✝ : Type ?u.477589
ε : ℝ≥0∞
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ (∑' (i : ι), ↑(ε' i)) < ε

tactic: rcases lt_iff_exists_coe.1 hrε with ⟨x, rfl, _⟩
state_before: case intro.intro
α : Type ?u.477583
β : Type ?u.477586
ι✝ : Type ?u.477589
ε : ℝ≥0∞
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
r : ℝ≥0∞
h0r : 0 < r
hrε : r < ε
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ (∑' (i : ι), ↑(ε' i)) < ε

tactic: rcases NNReal.exists_pos_sum_of_countable (coe_pos.1 h0r).ne' ι with ⟨ε', hp, c, hc, hcr⟩
state_before: case intro.intro.intro.intro
α : Type ?u.477583
β : Type ?u.477586
ι✝ : Type ?u.477589
ε : ℝ≥0∞
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
x : ℝ≥0
right✝ : ↑x < ε
h0r : 0 < ↑x
hrε : ↑x < ε
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ (∑' (i : ι), ↑(ε' i)) < ε

tactic: exact ⟨ε', hp, (ENNReal.tsum_coe_eq hc).symm ▸ lt_trans (coe_lt_coe.2 hcr) hrε⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
α : Type ?u.477583
β : Type ?u.477586
ι✝ : Type ?u.477589
ε : ℝ≥0∞
hε : ε ≠ 0
ι : Type u_1
inst✝ : Countable ι
x : ℝ≥0
right✝ : ↑x < ε
h0r : 0 < ↑x
hrε : ↑x < ε
ε' : ι → ℝ≥0
hp : ∀ (i : ι), 0 < ε' i
c : ℝ≥0
hc : HasSum ε' c
hcr : c < x
⊢ ∃ ε', (∀ (i : ι), 0 < ε' i) ∧ (∑' (i : ι), ↑(ε' i)) < ε
Theorem: AlgHom.mem_resolventSet_apply
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: simpa only [map_sub, AlgHomClass.commutes] using h.map φ
state_before: F : Type u_4
R : Type u_1
A : Type u_2
B : Type u_3
inst✝⁵ : CommSemiring R
inst✝⁴ : Ring A
inst✝³ : Algebra R A
inst✝² : Ring B
inst✝¹ : Algebra R B
inst✝ : AlgHomClass F R A B
φ : F
a : A
r : R
h : r ∈ resolventSet R a
⊢ r ∈ resolventSet R (↑φ a)
Theorem: Balanced.balancedHull_subset_of_subset
File: Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

tactic: intros x hx
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type ?u.4692
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
ht : Balanced 𝕜 t
h : s ⊆ t
⊢ balancedHull 𝕜 s ⊆ t

tactic: obtain ⟨r, hr, y, hy, rfl⟩ := mem_balancedHull_iff.1 hx
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type ?u.4692
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x✝ : E
ht : Balanced 𝕜 t
h : s ⊆ t
x : E
hx : x ∈ balancedHull 𝕜 s
⊢ x ∈ t

tactic: exact ht.smul_mem hr (h hy)
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
ι : Type ?u.4692
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t : Set E
x : E
ht : Balanced 𝕜 t
h : s ⊆ t
r : 𝕜
hr : ‖r‖ ≤ 1
y : E
hy : y ∈ s
hx : (fun x => r • x) y ∈ balancedHull 𝕜 s
⊢ (fun x => r • x) y ∈ t
Theorem: Traversable.foldMap_map
File: Mathlib/Control/Fold.lean

tactic: simp only [foldMap, traverse_map, Function.comp]
state_before: α β γ : Type u
t : Type u → Type u
inst✝² : Traversable t
inst✝¹ : IsLawfulTraversable t
inst✝ : Monoid γ
f : α → β
g : β → γ
xs : t α
⊢ foldMap g (f <$> xs) = foldMap (g ∘ f) xs
Theorem: MvPolynomial.map_map
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: congr
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f : R →+* S₁
inst✝ : CommSemiring S₂
g : S₁ →+* S₂
p : MvPolynomial σ R
⊢ eval₂ (RingHom.comp (map g) (RingHom.comp C f)) (↑(map g) ∘ X) p = ↑(map (RingHom.comp g f)) p

tactic: ext1 a
state_before: case e_f
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f : R →+* S₁
inst✝ : CommSemiring S₂
g : S₁ →+* S₂
p : MvPolynomial σ R
⊢ RingHom.comp (map g) (RingHom.comp C f) = RingHom.comp C (RingHom.comp g f)

tactic: simp only [map_C, comp_apply, RingHom.coe_comp]
state_before: case e_f.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f : R →+* S₁
inst✝ : CommSemiring S₂
g : S₁ →+* S₂
p : MvPolynomial σ R
a : R
⊢ ↑(RingHom.comp (map g) (RingHom.comp C f)) a = ↑(RingHom.comp C (RingHom.comp g f)) a

tactic: ext1 n
state_before: case e_g
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f : R →+* S₁
inst✝ : CommSemiring S₂
g : S₁ →+* S₂
p : MvPolynomial σ R
⊢ ↑(map g) ∘ X = fun n => X n

tactic: simp only [map_X, comp_apply]
state_before: case e_g.h
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f : R →+* S₁
inst✝ : CommSemiring S₂
g : S₁ →+* S₂
p : MvPolynomial σ R
n : σ
⊢ (↑(map g) ∘ X) n = X n
Theorem: MeasureTheory.Measure.add_haar_preimage_linearEquiv
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: have A : LinearMap.det (f : E →ₗ[ℝ] E) ≠ 0 := (LinearEquiv.isUnit_det' f).ne_zero
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.1469836
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f : E ≃ₗ[ℝ] E
s : Set E
⊢ ↑↑μ (↑f ⁻¹' s) = ENNReal.ofReal (abs (↑LinearMap.det ↑(LinearEquiv.symm f))) * ↑↑μ s

tactic: convert add_haar_preimage_linearMap μ A s
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.1469836
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f : E ≃ₗ[ℝ] E
s : Set E
A : ↑LinearMap.det ↑f ≠ 0
⊢ ↑↑μ (↑f ⁻¹' s) = ENNReal.ofReal (abs (↑LinearMap.det ↑(LinearEquiv.symm f))) * ↑↑μ s

tactic: simp only [LinearEquiv.det_coe_symm]
state_before: case h.e'_3.h.e'_5.h.e'_1.h.e'_3
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.1469836
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
f : E ≃ₗ[ℝ] E
s : Set E
A : ↑LinearMap.det ↑f ≠ 0
⊢ ↑LinearMap.det ↑(LinearEquiv.symm f) = (↑LinearMap.det ↑f)⁻¹
Theorem: Function.Surjective.lieAlgebra_isSolvable
File: Mathlib/Algebra/Lie/Solvable.lean

tactic: obtain ⟨k, hk⟩ := id h₁
state_before: R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
h₁ : IsSolvable R L'
h₂ : Surjective ↑f
⊢ IsSolvable R L

tactic: use k
state_before: case mk.intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
h₁ : IsSolvable R L'
h₂ : Surjective ↑f
k : ℕ
hk : derivedSeries R L' k = ⊥
⊢ IsSolvable R L

tactic: rw [← LieIdeal.derivedSeries_map_eq k h₂, hk]
state_before: case mk.intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
h₁ : IsSolvable R L'
h₂ : Surjective ↑f
k : ℕ
hk : derivedSeries R L' k = ⊥
⊢ derivedSeries R L k = ⊥

tactic: simp only [LieIdeal.map_eq_bot_iff, bot_le]
state_before: case mk.intro
R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
h₁ : IsSolvable R L'
h₂ : Surjective ↑f
k : ℕ
hk : derivedSeries R L' k = ⊥
⊢ LieIdeal.map f ⊥ = ⊥
Theorem: CategoryTheory.Preadditive.epi_of_cokernel_zero
File: Mathlib/CategoryTheory/Preadditive/Basic.lean

tactic: rw [← cokernel.π_desc f g h, w, Limits.zero_comp]
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
P Q R : C
f✝ f' : P ⟶ Q
g✝ g' : Q ⟶ R
X Y : C
f : X ⟶ Y
inst✝ : HasColimit (parallelPair f 0)
w : cokernel.π f = 0
R✝ : C
g : Y ⟶ R✝
h : f ≫ g = 0
⊢ g = 0
Theorem: CategoryTheory.Limits.Types.unique_of_type_equalizer
File: Mathlib/CategoryTheory/Limits/Shapes/Types.lean

tactic: let y' : PUnit ⟶ Y := fun _ => y
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
⊢ ∃! x, f x = y

tactic: have hy' : y' ≫ g = y' ≫ h := funext fun _ => hy
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
⊢ ∃! x, f x = y

tactic: refine' ⟨(Fork.IsLimit.lift' t _ hy').1 ⟨⟩, congr_fun (Fork.IsLimit.lift' t y' _).2 ⟨⟩, _⟩
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
⊢ ∃! x, f x = y

tactic: intro x' hx'
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
⊢ ∀ (y_1 : X), (fun x => f x = y) y_1 → y_1 = ↑(Fork.IsLimit.lift' t y' hy') PUnit.unit

tactic: suffices : (fun _ : PUnit => x') = (Fork.IsLimit.lift' t y' hy').1
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
⊢ x' = ↑(Fork.IsLimit.lift' t y' hy') PUnit.unit

tactic: rw [← this]
state_before: X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
this : (fun x => x') = ↑(Fork.IsLimit.lift' t y' hy')
⊢ x' = ↑(Fork.IsLimit.lift' t y' hy') PUnit.unit

case this
X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
⊢ (fun x => x') = ↑(Fork.IsLimit.lift' t y' hy')

tactic: apply Fork.IsLimit.hom_ext t
state_before: case this
X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
⊢ (fun x => x') = ↑(Fork.IsLimit.lift' t y' hy')

tactic: funext ⟨⟩
state_before: case this
X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
⊢ (fun x => x') ≫ Fork.ι (Fork.ofι f w) = ↑(Fork.IsLimit.lift' t y' hy') ≫ Fork.ι (Fork.ofι f w)

tactic: apply hx'.trans (congr_fun (Fork.IsLimit.lift' t _ hy').2 ⟨⟩).symm
state_before: case this.h
X Y Z : Type u
f : X ⟶ Y
g h : Y ⟶ Z
w : f ≫ g = f ≫ h
t : IsLimit (Fork.ofι f w)
y : Y
hy : g y = h y
y' : PUnit ⟶ Y := fun x => y
hy' : y' ≫ g = y' ≫ h
x' : X
hx' : f x' = y
⊢ ((fun x => x') ≫ Fork.ι (Fork.ofι f w)) PUnit.unit =
    (↑(Fork.IsLimit.lift' t y' hy') ≫ Fork.ι (Fork.ofι f w)) PUnit.unit