tasksource/leandojo huggingface dataset:
Theorem: LinearIsometryEquiv.norm_iteratedFDerivWithin_comp_left
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: have :
  iteratedFDerivWithin 𝕜 i (g ∘ f) s x =
    (g : F →L[𝕜] G).compContinuousMultilinearMap (iteratedFDerivWithin 𝕜 i f s x) :=
  g.toContinuousLinearEquiv.iteratedFDerivWithin_comp_left f hs hx i
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.273156
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃ₗᵢ[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
i : ℕ
⊢ ‖iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖

tactic: rw [this]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.273156
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃ₗᵢ[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
i : ℕ
this :
  iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
    ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.mk g.toLinearEquiv))
      (iteratedFDerivWithin 𝕜 i f s x)
⊢ ‖iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x‖ = ‖iteratedFDerivWithin 𝕜 i f s x‖

tactic: apply LinearIsometry.norm_compContinuousMultilinearMap g.toLinearIsometry
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.273156
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
g : F ≃ₗᵢ[𝕜] G
f : E → F
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
i : ℕ
this :
  iteratedFDerivWithin 𝕜 i (↑g ∘ f) s x =
    ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.mk g.toLinearEquiv))
      (iteratedFDerivWithin 𝕜 i f s x)
⊢ ‖ContinuousLinearMap.compContinuousMultilinearMap (↑(ContinuousLinearEquiv.mk g.toLinearEquiv))
        (iteratedFDerivWithin 𝕜 i f s x)‖ =
    ‖iteratedFDerivWithin 𝕜 i f s x‖
Theorem: Real.isTopologicalBasis_Ioo_rat
File: Mathlib/Topology/Instances/Real.lean

tactic: simp (config := { contextual := true }) [isOpen_Ioo]
state_before: α : Type u
β : Type v
γ : Type w
⊢ ∀ (u : Set ℝ), (u ∈ ⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo ↑a ↑b}) → IsOpen u

tactic: simp only [mem_iUnion]
state_before: α : Type u
β : Type v
γ : Type w
a : ℝ
v : Set ℝ
hav : a ∈ v
hv : IsOpen v
l u : ℝ
hl : l < a
hu : a < u
h : Ioo l u ⊆ v
q : ℚ
hlq : l < ↑q
hqa : ↑q < a
p : ℚ
hap : a < ↑p
hpu : ↑p < u
⊢ Ioo ↑q ↑p ∈ ⋃ (a : ℚ) (b : ℚ) (_ : a < b), {Ioo ↑a ↑b}

tactic: exact ⟨q, p, Rat.cast_lt.1 <| hqa.trans hap, rfl⟩
state_before: α : Type u
β : Type v
γ : Type w
a : ℝ
v : Set ℝ
hav : a ∈ v
hv : IsOpen v
l u : ℝ
hl : l < a
hu : a < u
h : Ioo l u ⊆ v
q : ℚ
hlq : l < ↑q
hqa : ↑q < a
p : ℚ
hap : a < ↑p
hpu : ↑p < u
⊢ ∃ i i_1 i_2, Ioo ↑q ↑p ∈ {Ioo ↑i ↑i_1}
Theorem: AffineSubspace.affineSpan_parallel_iff_vectorSpan_eq_and_eq_empty_iff_eq_empty
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: repeat rw [← direction_affineSpan, ← affineSpan_eq_bot k]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ s₂ : Set P
⊢ affineSpan k s₁ ∥ affineSpan k s₂ ↔ vectorSpan k s₁ = vectorSpan k s₂ ∧ (s₁ = ∅ ↔ s₂ = ∅)

tactic: exact parallel_iff_direction_eq_and_eq_bot_iff_eq_bot
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ s₂ : Set P
⊢ affineSpan k s₁ ∥ affineSpan k s₂ ↔
    direction (affineSpan k s₁) = direction (affineSpan k s₂) ∧ (affineSpan k s₁ = ⊥ ↔ affineSpan k s₂ = ⊥)

tactic: rw [← direction_affineSpan, ← affineSpan_eq_bot k]
state_before: k : Type u_2
V : Type u_3
P : Type u_1
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s₁ s₂ : Set P
⊢ affineSpan k s₁ ∥ affineSpan k s₂ ↔
    direction (affineSpan k s₁) = direction (affineSpan k s₂) ∧ (affineSpan k s₁ = ⊥ ↔ affineSpan k s₂ = ⊥)
Theorem: AnalyticOn.fderiv
File: Mathlib/Analysis/Calculus/FDerivAnalytic.lean

tactic: intro y hy
state_before: 𝕜 : Type u_2
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
⊢ AnalyticOn 𝕜 (_root_.fderiv 𝕜 f) s

tactic: rcases h y hy with ⟨p, r, hp⟩
state_before: 𝕜 : Type u_2
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y

tactic: exact hp.fderiv.analyticAt
state_before: case intro.intro
𝕜 : Type u_2
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hp : HasFPowerSeriesOnBall f p y r
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y
Theorem: Multiset.prod_hom'
File: Mathlib/Algebra/BigOperators/Multiset/Basic.lean

tactic: convert (s.map g).prod_hom f
state_before: ι : Type u_2
α : Type u_4
β : Type u_1
γ : Type ?u.42625
inst✝² : CommMonoid α
s✝ t : Multiset α
a : α
m : Multiset ι
f✝ g✝ : ι → α
inst✝¹ : CommMonoid β
s : Multiset ι
F : Type u_3
inst✝ : MonoidHomClass F α β
f : F
g : ι → α
⊢ prod (map (fun i => ↑f (g i)) s) = ↑f (prod (map g s))

tactic: exact (map_map _ _ _).symm
state_before: case h.e'_2.h.e'_3
ι : Type u_2
α : Type u_4
β : Type u_1
γ : Type ?u.42625
inst✝² : CommMonoid α
s✝ t : Multiset α
a : α
m : Multiset ι
f✝ g✝ : ι → α
inst✝¹ : CommMonoid β
s : Multiset ι
F : Type u_3
inst✝ : MonoidHomClass F α β
f : F
g : ι → α
⊢ map (fun i => ↑f (g i)) s = map (↑f) (map g s)
Theorem: HasDerivAtFilter.comp
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: rw [mul_comm]
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 𝕜'
hh₂ : HasDerivAtFilter h₂ h₂' (h x) L'
hh : HasDerivAtFilter h h' x L
hL : Tendsto h L L'
⊢ HasDerivAtFilter (h₂ ∘ h) (h₂' * h') x L

tactic: exact hh₂.scomp x hh 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 𝕜'
hh₂ : HasDerivAtFilter h₂ h₂' (h x) L'
hh : HasDerivAtFilter h h' x L
hL : Tendsto h L L'
⊢ HasDerivAtFilter (h₂ ∘ h) (h' * h₂') x L
Theorem: SimpleGraph.Walk.fst_mem_support_of_mem_edges
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: obtain ⟨d, hd, he⟩ := List.mem_map.mp he
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
t u v w : V
p : Walk G v w
he : Quotient.mk (Sym2.Rel.setoid V) (t, u) ∈ edges p
⊢ t ∈ support p

tactic: rw [dart_edge_eq_mk'_iff'] at he
state_before: case intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
t u v w : V
p : Walk G v w
he✝ : Quotient.mk (Sym2.Rel.setoid V) (t, u) ∈ edges p
d : Dart G
hd : d ∈ darts p
he : Dart.edge d = Quotient.mk (Sym2.Rel.setoid V) (t, u)
⊢ t ∈ support p

tactic: rcases he with (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩)
state_before: case intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
t u v w : V
p : Walk G v w
he✝ : Quotient.mk (Sym2.Rel.setoid V) (t, u) ∈ edges p
d : Dart G
hd : d ∈ darts p
he : d.fst = t ∧ d.snd = u ∨ d.fst = u ∧ d.snd = t
⊢ t ∈ support p

tactic: exact dart_fst_mem_support_of_mem_darts _ hd
state_before: case intro.intro.inl.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
p : Walk G v w
d : Dart G
hd : d ∈ darts p
he : Quotient.mk (Sym2.Rel.setoid V) (d.fst, d.snd) ∈ edges p
⊢ d.fst ∈ support p

tactic: exact dart_snd_mem_support_of_mem_darts _ hd
state_before: case intro.intro.inr.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w : V
p : Walk G v w
d : Dart G
hd : d ∈ darts p
he : Quotient.mk (Sym2.Rel.setoid V) (d.snd, d.fst) ∈ edges p
⊢ d.snd ∈ support p
Theorem: MeasureTheory.lintegral_edist_triangle
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← lintegral_add_left' (hf.edist hh)]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.690087
δ : Type ?u.690090
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g h : α → β
hf : AEStronglyMeasurable f μ
hh : AEStronglyMeasurable h μ
⊢ (∫⁻ (a : α), edist (f a) (g a) ∂μ) ≤ (∫⁻ (a : α), edist (f a) (h a) ∂μ) + ∫⁻ (a : α), edist (g a) (h a) ∂μ

tactic: refine' lintegral_mono fun a => _
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.690087
δ : Type ?u.690090
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g h : α → β
hf : AEStronglyMeasurable f μ
hh : AEStronglyMeasurable h μ
⊢ (∫⁻ (a : α), edist (f a) (g a) ∂μ) ≤ ∫⁻ (a : α), edist (f a) (h a) + edist (g a) (h a) ∂μ

tactic: apply edist_triangle_right
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.690087
δ : Type ?u.690090
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g h : α → β
hf : AEStronglyMeasurable f μ
hh : AEStronglyMeasurable h μ
a : α
⊢ edist (f a) (g a) ≤ edist (f a) (h a) + edist (g a) (h a)
Theorem: ENNReal.smul_top
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [← smul_one_mul, mul_top']
state_before: α : Type ?u.86061
β : Type ?u.86064
a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
R : Type u_1
inst✝⁴ : Zero R
inst✝³ : SMulWithZero R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : NoZeroSMulDivisors R ℝ≥0∞
inst✝ : DecidableEq R
c : R
⊢ c • ⊤ = if c = 0 then 0 else ⊤

tactic: simp_rw [smul_eq_zero, or_iff_left (one_ne_zero' ℝ≥0∞)]
state_before: α : Type ?u.86061
β : Type ?u.86064
a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
R : Type u_1
inst✝⁴ : Zero R
inst✝³ : SMulWithZero R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : NoZeroSMulDivisors R ℝ≥0∞
inst✝ : DecidableEq R
c : R
⊢ (if c • 1 = 0 then 0 else ⊤) = if c = 0 then 0 else ⊤
Theorem: Filter.HasBasis.disjoint_iff_left
File: Mathlib/Order/Filter/Bases.lean

tactic: simp only [h.disjoint_iff l'.basis_sets, id, ← disjoint_principal_left,
  (hasBasis_principal _).disjoint_iff l'.basis_sets, true_and, Unique.exists_iff]
state_before: α : Type u_1
β : Type ?u.58649
γ : Type ?u.58652
ι : Sort u_2
ι' : Sort ?u.58658
l l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
h : HasBasis l p s
⊢ Disjoint l l' ↔ ∃ i, p i ∧ s iᶜ ∈ l'
Theorem: Submodule.smul_le_self_of_tower
File: Mathlib/Algebra/Module/Submodule/Pointwise.lean

tactic: rintro y ⟨x, hx, rfl⟩
state_before: α✝ : Type ?u.117591
R : Type u_2
M : Type u_3
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
inst✝⁷ : Monoid α✝
inst✝⁶ : DistribMulAction α✝ M
inst✝⁵ : SMulCommClass α✝ R M
α : Type u_1
inst✝⁴ : Semiring α
inst✝³ : Module α R
inst✝² : Module α M
inst✝¹ : SMulCommClass α R M
inst✝ : IsScalarTower α R M
a : α
S : Submodule R M
⊢ a • S ≤ S

tactic: exact smul_of_tower_mem _ a hx
state_before: case intro.intro
α✝ : Type ?u.117591
R : Type u_2
M : Type u_3
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
inst✝⁷ : Monoid α✝
inst✝⁶ : DistribMulAction α✝ M
inst✝⁵ : SMulCommClass α✝ R M
α : Type u_1
inst✝⁴ : Semiring α
inst✝³ : Module α R
inst✝² : Module α M
inst✝¹ : SMulCommClass α R M
inst✝ : IsScalarTower α R M
a : α
S : Submodule R M
x : M
hx : x ∈ ↑S
⊢ ↑(DistribMulAction.toLinearMap R M a) x ∈ S
Theorem: CircleDeg1Lift.tendsto_translation_number₀
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: exact_mod_cast f.tendsto_translation_number₀'
state_before: f g : CircleDeg1Lift
⊢ Tendsto (fun n => ↑(f ^ (n + 1)) 0 / ↑(n + 1)) atTop (𝓝 (τ f))
Theorem: MeasureTheory.lintegral_map_le
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← iSup_lintegral_measurable_le_eq_lintegral, ← iSup_lintegral_measurable_le_eq_lintegral]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1150567
δ : Type ?u.1150570
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hg : Measurable g
⊢ (∫⁻ (a : β), f a ∂Measure.map g μ) ≤ ∫⁻ (a : α), f (g a) ∂μ

tactic: refine' iSup₂_le fun i hi => iSup_le fun h'i => _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1150567
δ : Type ?u.1150570
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hg : Measurable g
⊢ (⨆ (g_1 : β → ℝ≥0∞) (_ : Measurable g_1) (_ : g_1 ≤ fun a => f a), ∫⁻ (a : β), g_1 a ∂Measure.map g μ) ≤
    ⨆ (g_1 : α → ℝ≥0∞) (_ : Measurable g_1) (_ : g_1 ≤ fun a => f (g a)), ∫⁻ (a : α), g_1 a ∂μ

tactic: refine' le_iSup₂_of_le (i ∘ g) (hi.comp hg) _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1150567
δ : Type ?u.1150570
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hg : Measurable g
i : β → ℝ≥0∞
hi : Measurable i
h'i : i ≤ fun a => f a
⊢ (∫⁻ (a : β), i a ∂Measure.map g μ) ≤
    ⨆ (g_1 : α → ℝ≥0∞) (_ : Measurable g_1) (_ : g_1 ≤ fun a => f (g a)), ∫⁻ (a : α), g_1 a ∂μ

tactic: exact le_iSup_of_le (fun x => h'i (g x)) (le_of_eq (lintegral_map hi hg))
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1150567
δ : Type ?u.1150570
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hg : Measurable g
i : β → ℝ≥0∞
hi : Measurable i
h'i : i ≤ fun a => f a
⊢ (∫⁻ (a : β), i a ∂Measure.map g μ) ≤ ⨆ (_ : i ∘ g ≤ fun a => f (g a)), ∫⁻ (a : α), (i ∘ g) a ∂μ
Theorem: IsCompact.measure_lt_top_of_nhdsWithin
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.3710857
γ : Type ?u.3710860
δ : Type ?u.3710863
ι : Type ?u.3710866
R : Type ?u.3710869
R' : Type ?u.3710872
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
s : Set α
h : IsCompact s
hμ : ∀ (x : α), x ∈ s → FiniteAtFilter μ (𝓝[s] x)
⊢ ↑↑μ ∅ < ⊤
Theorem: Multiset.Ico_filter_le_of_le_left
File: Mathlib/Data/Multiset/LocallyFinite.lean

tactic: rw [Ico, ← Finset.filter_val, Finset.Ico_filter_le_of_le_left hca]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a b c : α
inst✝ : DecidablePred ((fun x x_1 => x ≤ x_1) c)
hca : c ≤ a
⊢ filter (fun x => c ≤ x) (Ico a b) = Ico a b
Theorem: PowerBasis.constr_pow_gen
File: Mathlib/RingTheory/PowerBasis.lean

tactic: convert pb.constr_pow_aeval hy X <;> rw [aeval_X]
state_before: R : Type ?u.210961
S : Type u_2
T : Type ?u.210967
inst✝¹⁰ : CommRing R
inst✝⁹ : Ring S
inst✝⁸ : Algebra R S
A : Type u_1
B : Type ?u.211273
inst✝⁷ : CommRing A
inst✝⁶ : CommRing B
inst✝⁵ : IsDomain B
inst✝⁴ : Algebra A B
K : Type ?u.211695
inst✝³ : Field K
inst✝² : Algebra A S
S' : Type u_3
inst✝¹ : Ring S'
inst✝ : Algebra A S'
pb : PowerBasis A S
y : S'
hy : ↑(aeval y) (minpoly A pb.gen) = 0
⊢ ↑(↑(Basis.constr pb.basis A) fun i => y ^ ↑i) pb.gen = y
Theorem: RingHom.map_range
File: Mathlib/RingTheory/Subring/Basic.lean

tactic: simpa only [range_eq_map] using (⊤ : Subring R).map_map g f
state_before: R : Type u
S : Type v
T : Type w
inst✝² : Ring R
inst✝¹ : Ring S
inst✝ : Ring T
g : S →+* T
f : R →+* S
⊢ Subring.map g (range f) = range (comp g f)
Theorem: Int.min_comm
File: Std/Data/Int/Lemmas.lean

tactic: simp [Int.min_def]
state_before: a b : Int
⊢ min a b = min b a

tactic: by_cases h₁ : a ≤ b <;> by_cases h₂ : b ≤ a <;> simp [h₁, h₂]
state_before: a b : Int
⊢ (if a ≤ b then a else b) = if b ≤ a then b else a

tactic: exact Int.le_antisymm h₁ h₂
state_before: case pos
a b : Int
h₁ : a ≤ b
h₂ : b ≤ a
⊢ a = b

tactic: cases not_or_intro h₁ h₂ <| Int.le_total ..
state_before: case neg
a b : Int
h₁ : ¬a ≤ b
h₂ : ¬b ≤ a
⊢ b = a
Theorem: Nat.totient_prime_pow_succ
File: Mathlib/Data/Nat/Totient.lean

tactic: rw [sdiff_eq_filter]
state_before: p : ℕ
hp : Prime p
n : ℕ
⊢ filter (coprime (p ^ (n + 1))) (range (p ^ (n + 1))) = range (p ^ (n + 1)) \ image (fun x => x * p) (range (p ^ n))

tactic: apply filter_congr
state_before: p : ℕ
hp : Prime p
n : ℕ
⊢ filter (coprime (p ^ (n + 1))) (range (p ^ (n + 1))) =
    filter (fun x => ¬x ∈ image (fun x => x * p) (range (p ^ n))) (range (p ^ (n + 1)))

tactic: simp only [mem_range, mem_filter, coprime_pow_left_iff n.succ_pos, mem_image, not_exists,
  hp.coprime_iff_not_dvd]
state_before: case H
p : ℕ
hp : Prime p
n : ℕ
⊢ ∀ (x : ℕ), x ∈ range (p ^ (n + 1)) → (coprime (p ^ (n + 1)) x ↔ ¬x ∈ image (fun x => x * p) (range (p ^ n)))

tactic: intro a ha
state_before: case H
p : ℕ
hp : Prime p
n : ℕ
⊢ ∀ (x : ℕ), x < p ^ (n + 1) → (¬p ∣ x ↔ ∀ (x_1 : ℕ), ¬(x_1 < p ^ n ∧ x_1 * p = x))

tactic: constructor
state_before: case H
p : ℕ
hp : Prime p
n a : ℕ
ha : a < p ^ (n + 1)
⊢ ¬p ∣ a ↔ ∀ (x : ℕ), ¬(x < p ^ n ∧ x * p = a)

tactic: intro hap b h
state_before: case H.mp
p : ℕ
hp : Prime p
n a : ℕ
ha : a < p ^ (n + 1)
⊢ ¬p ∣ a → ∀ (x : ℕ), ¬(x < p ^ n ∧ x * p = a)

tactic: rcases h with ⟨_, rfl⟩
state_before: case H.mp
p : ℕ
hp : Prime p
n a : ℕ
ha : a < p ^ (n + 1)
hap : ¬p ∣ a
b : ℕ
h : b < p ^ n ∧ b * p = a
⊢ False

tactic: exact hap (dvd_mul_left _ _)
state_before: case H.mp.intro
p : ℕ
hp : Prime p
n b : ℕ
left✝ : b < p ^ n
ha : b * p < p ^ (n + 1)
hap : ¬p ∣ b * p
⊢ False

tactic: rintro h ⟨b, rfl⟩
state_before: case H.mpr
p : ℕ
hp : Prime p
n a : ℕ
ha : a < p ^ (n + 1)
⊢ (∀ (x : ℕ), ¬(x < p ^ n ∧ x * p = a)) → ¬p ∣ a

tactic: rw [pow_succ'] at ha
state_before: case H.mpr.intro
p : ℕ
hp : Prime p
n b : ℕ
ha : p * b < p ^ (n + 1)
h : ∀ (x : ℕ), ¬(x < p ^ n ∧ x * p = p * b)
⊢ False

tactic: exact h b ⟨lt_of_mul_lt_mul_left ha (zero_le _), mul_comm _ _⟩
state_before: case H.mpr.intro
p : ℕ
hp : Prime p
n b : ℕ
ha : p * b < p * p ^ n
h : ∀ (x : ℕ), ¬(x < p ^ n ∧ x * p = p * b)
⊢ False

tactic: rw [card_sdiff h2, card_image_of_injOn (h1.injOn _), card_range, card_range, ←
  one_mul (p ^ n), pow_succ', ← tsub_mul, one_mul, mul_comm]
state_before: p : ℕ
hp : Prime p
n : ℕ
h1 : Function.Injective fun x => x * p
h2 : image (fun x => x * p) (range (p ^ n)) ⊆ range (p ^ (n + 1))
⊢ Finset.card (range (p ^ (n + 1)) \ image (fun x => x * p) (range (p ^ n))) = p ^ n * (p - 1)

tactic: simp only [mem_image, mem_range, exists_imp]
state_before: p : ℕ
hp : Prime p
n : ℕ
h1 : Function.Injective fun x => x * p
a : ℕ
⊢ a ∈ image (fun x => x * p) (range (p ^ n)) → a ∈ range (p ^ (n + 1))

tactic: rintro b ⟨h, rfl⟩
state_before: p : ℕ
hp : Prime p
n : ℕ
h1 : Function.Injective fun x => x * p
a : ℕ
⊢ ∀ (x : ℕ), x < p ^ n ∧ x * p = a → a < p ^ (n + 1)

tactic: rw [pow_succ]
state_before: case intro
p : ℕ
hp : Prime p
n : ℕ
h1 : Function.Injective fun x => x * p
b : ℕ
h : b < p ^ n
⊢ b * p < p ^ (n + 1)

tactic: exact (mul_lt_mul_right hp.pos).2 h
state_before: case intro
p : ℕ
hp : Prime p
n : ℕ
h1 : Function.Injective fun x => x * p
b : ℕ
h : b < p ^ n
⊢ b * p < p ^ n * p
Theorem: CategoryTheory.Bicategory.rightUnitor_inv_naturality
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f g : a ⟶ b
η : f ⟶ g
⊢ η ≫ (ρ_ g).inv = (ρ_ f).inv ≫ η ▷ 𝟙 b
Theorem: MeasureTheory.Integrable.smul_of_top_right
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← memℒp_one_iff_integrable] at hf ⊢
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1093696
δ : Type ?u.1093699
m : MeasurableSpace α
μ ν : Measure α
inst✝⁵ : MeasurableSpace δ
inst✝⁴ : NormedAddCommGroup β
inst✝³ : NormedAddCommGroup γ
𝕜 : Type u_3
inst✝² : NormedRing 𝕜
inst✝¹ : Module 𝕜 β
inst✝ : BoundedSMul 𝕜 β
f : α → β
φ : α → 𝕜
hf : Integrable f
hφ : Memℒp φ ⊤
⊢ Integrable (φ • f)

tactic: exact Memℒp.smul_of_top_right hf hφ
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1093696
δ : Type ?u.1093699
m : MeasurableSpace α
μ ν : Measure α
inst✝⁵ : MeasurableSpace δ
inst✝⁴ : NormedAddCommGroup β
inst✝³ : NormedAddCommGroup γ
𝕜 : Type u_3
inst✝² : NormedRing 𝕜
inst✝¹ : Module 𝕜 β
inst✝ : BoundedSMul 𝕜 β
f : α → β
φ : α → 𝕜
hf : Memℒp f 1
hφ : Memℒp φ ⊤
⊢ Memℒp (φ • f) 1
Theorem: HasDerivWithinAt.mul_const
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: convert hc.mul (hasDerivWithinAt_const x s d) using 1
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.245153
𝔸 : Type u_1
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c d✝ : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
hc : HasDerivWithinAt c c' s x
d : 𝔸
⊢ HasDerivWithinAt (fun y => c y * d) (c' * d) s x

tactic: rw [mul_zero, add_zero]
state_before: case h.e'_7
𝕜 : 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.245153
𝔸 : Type u_1
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c d✝ : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
hc : HasDerivWithinAt c c' s x
d : 𝔸
⊢ c' * d = c' * d + c x * 0
Theorem: Fin.pred_succ
File: Mathlib/Data/Fin/Basic.lean

tactic: cases i
state_before: n m : ℕ
i : Fin n
h : succ i ≠ 0
⊢ pred (succ i) h = i

tactic: rfl
state_before: case mk
n m val✝ : ℕ
isLt✝ : val✝ < n
h : succ { val := val✝, isLt := isLt✝ } ≠ 0
⊢ pred (succ { val := val✝, isLt := isLt✝ }) h = { val := val✝, isLt := isLt✝ }