tasksource/leandojo huggingface dataset:
Theorem: Matrix.zpow_mul'
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rw [mul_comm, zpow_mul _ h]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : IsUnit (det A)
m n : ℤ
⊢ A ^ (m * n) = (A ^ n) ^ m
Theorem: MeasureTheory.FiniteMeasure.testAgainstNN_const
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: simp [← ENNReal.coe_eq_coe]
state_before: Ω : Type u_1
inst✝⁵ : MeasurableSpace Ω
R : Type ?u.47387
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : TopologicalSpace Ω
μ : FiniteMeasure Ω
c : ℝ≥0
⊢ testAgainstNN μ (const Ω c) = c * mass μ
Theorem: MeasureTheory.L1.SimpleFunc.norm_setToL1S_le
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: rw [setToL1S, norm_eq_sum_mul f]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.711091
G : Type ?u.711094
𝕜 : Type ?u.711097
p : ℝ≥0∞
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace ℝ F'
inst✝² : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedField 𝕜
inst✝ : NormedSpace 𝕜 E
T : Set α → E →L[ℝ] F
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ‖T s‖ ≤ C * ENNReal.toReal (↑↑μ s)
f : { x // x ∈ simpleFunc E 1 μ }
⊢ ‖setToL1S T f‖ ≤ C * ‖f‖

tactic: exact
  SimpleFunc.norm_setToSimpleFunc_le_sum_mul_norm_of_integrable T hT_norm _
    (SimpleFunc.integrable f)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.711091
G : Type ?u.711094
𝕜 : Type ?u.711097
p : ℝ≥0∞
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace ℝ F'
inst✝² : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedField 𝕜
inst✝ : NormedSpace 𝕜 E
T : Set α → E →L[ℝ] F
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ‖T s‖ ≤ C * ENNReal.toReal (↑↑μ s)
f : { x // x ∈ simpleFunc E 1 μ }
⊢ ‖SimpleFunc.setToSimpleFunc T (toSimpleFunc f)‖ ≤
    C * ∑ x in SimpleFunc.range (toSimpleFunc f), ENNReal.toReal (↑↑μ (↑(toSimpleFunc f) ⁻¹' {x})) * ‖x‖
Theorem: RingHomSurjective.comp
File: Mathlib/Algebra/Ring/CompTypeclasses.lean

tactic: have := σ₂₃.surjective.comp σ₁₂.surjective
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝⁵ : Semiring R₁
inst✝⁴ : Semiring R₂
inst✝³ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomSurjective σ₁₂
inst✝ : RingHomSurjective σ₂₃
⊢ Function.Surjective ↑σ₁₃

tactic: rwa [← RingHom.coe_comp, RingHomCompTriple.comp_eq] at this
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝⁵ : Semiring R₁
inst✝⁴ : Semiring R₂
inst✝³ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
σ : R₁ →+* R₂
σ' : R₂ →+* R₁
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomSurjective σ₁₂
inst✝ : RingHomSurjective σ₂₃
this : Function.Surjective (↑σ₂₃ ∘ ↑σ₁₂)
⊢ Function.Surjective ↑σ₁₃
Theorem: Filter.blimsup_and_le_inf
File: Mathlib/Order/LiminfLimsup.lean

tactic: tauto
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.136388
ι : Type ?u.136391
inst✝ : CompleteLattice α
f g : Filter β
p q : β → Prop
u v : β → α
⊢ ∀ (x : β), p x ∧ q x → p x

tactic: tauto
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.136388
ι : Type ?u.136391
inst✝ : CompleteLattice α
f g : Filter β
p q : β → Prop
u v : β → α
⊢ ∀ (x : β), p x ∧ q x → q x
Theorem: ValuationRing.mem_integer_iff
File: Mathlib/RingTheory/Valuation/ValuationRing.lean

tactic: constructor
state_before: A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
x : K
⊢ x ∈ Valuation.integer (valuation A K) ↔ ∃ a, ↑(algebraMap A K) a = x

tactic: rintro ⟨c, rfl⟩
state_before: case mp
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
x : K
⊢ x ∈ Valuation.integer (valuation A K) → ∃ a, ↑(algebraMap A K) a = x

tactic: use c
state_before: case mp.intro
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
c : A
⊢ ∃ a, ↑(algebraMap A K) a = c • 1

tactic: rw [Algebra.smul_def, mul_one]
state_before: case mp.intro
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
c : A
⊢ ↑(algebraMap A K) c = c • 1

tactic: rintro ⟨c, rfl⟩
state_before: case mpr
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
x : K
⊢ (∃ a, ↑(algebraMap A K) a = x) → x ∈ Valuation.integer (valuation A K)

tactic: use c
state_before: case mpr.intro
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
c : A
⊢ ↑(algebraMap A K) c ∈ Valuation.integer (valuation A K)

tactic: rw [Algebra.smul_def, mul_one]
state_before: case mpr.intro
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
c : A
⊢ c • 1 = ↑(algebraMap A K) c
Theorem: LieSubmodule.comap_incl_eq_bot
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: simp only [← LieSubmodule.coe_toSubmodule_eq_iff, LieSubmodule.coeSubmodule_comap,
  LieSubmodule.incl_coe, LieSubmodule.bot_coeSubmodule, ← Submodule.disjoint_iff_comap_eq_bot,
  disjoint_iff, inf_coe_toSubmodule]
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : M →ₗ⁅R,L⁆ M'
N N₂ : LieSubmodule R L M
N' : LieSubmodule R L M'
⊢ comap (incl N) N₂ = ⊥ ↔ N ⊓ N₂ = ⊥
Theorem: MeasureTheory.locallyIntegrableOn_univ
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

tactic: simp only [LocallyIntegrableOn, nhdsWithin_univ, mem_univ, true_imp_iff]
state_before: X : Type u_1
Y : Type ?u.121628
E : Type u_2
R : Type ?u.121634
inst✝⁴ : MeasurableSpace X
inst✝³ : TopologicalSpace X
inst✝² : MeasurableSpace Y
inst✝¹ : TopologicalSpace Y
inst✝ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
⊢ LocallyIntegrableOn f univ ↔ LocallyIntegrable f

tactic: rfl
state_before: X : Type u_1
Y : Type ?u.121628
E : Type u_2
R : Type ?u.121634
inst✝⁴ : MeasurableSpace X
inst✝³ : TopologicalSpace X
inst✝² : MeasurableSpace Y
inst✝¹ : TopologicalSpace Y
inst✝ : NormedAddCommGroup E
f : X → E
μ : Measure X
s : Set X
⊢ (∀ (x : X), IntegrableAtFilter f (𝓝 x)) ↔ LocallyIntegrable f
Theorem: Option.map₂_map_left_comm
File: Mathlib/Data/Option/NAry.lean

tactic: cases a <;> cases b <;> simp [h_left_comm]
state_before: α : Type u_5
β : Type u_4
γ : Type u_3
f✝ : α → β → γ
a : Option α
b : Option β
c : Option γ
α' : Type u_1
δ : Type u_2
f : α' → β → γ
g : α → α'
f' : α → β → δ
g' : δ → γ
h_left_comm : ∀ (a : α) (b : β), f (g a) b = g' (f' a b)
⊢ map₂ f (Option.map g a) b = Option.map g' (map₂ f' a b)
Theorem: List.foldl_op_eq_op_foldr_assoc
File: Mathlib/Data/List/Basic.lean

tactic: simp only [foldl_cons, foldr_cons, foldl_assoc, ha.assoc]
state_before: ι : Type ?u.273441
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
op : α → α → α
ha : IsAssociative α op
hc : IsCommutative α op
a : α
l : List α
a₁ a₂ : α
⊢ op ((a :: l) <*> a₁) a₂ = op a₁ (foldr (fun x x_1 => op x x_1) a₂ (a :: l))

tactic: rw [foldl_op_eq_op_foldr_assoc]
state_before: ι : Type ?u.273441
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
op : α → α → α
ha : IsAssociative α op
hc : IsCommutative α op
a : α
l : List α
a₁ a₂ : α
⊢ op a₁ (op (l <*> a) a₂) = op a₁ (op a (foldr (fun x x_1 => op x x_1) a₂ l))
Theorem: circleIntegral.norm_two_pi_i_inv_smul_integral_le_of_norm_le_const
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: have : ‖(2 * π * I : ℂ)⁻¹‖ = (2 * π)⁻¹ := by simp [Real.pi_pos.le]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hR : 0 ≤ R
hf : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
⊢ ‖(2 * ↑π * I)⁻¹ • ∮ (z : ℂ) in C(c, R), f z‖ ≤ R * C

tactic: rw [norm_smul, this, ← div_eq_inv_mul, div_le_iff Real.two_pi_pos, mul_comm (R * C), ← mul_assoc]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hR : 0 ≤ R
hf : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
this : ‖(2 * ↑π * I)⁻¹‖ = (2 * π)⁻¹
⊢ ‖(2 * ↑π * I)⁻¹ • ∮ (z : ℂ) in C(c, R), f z‖ ≤ R * C

tactic: exact norm_integral_le_of_norm_le_const hR hf
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hR : 0 ≤ R
hf : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
this : ‖(2 * ↑π * I)⁻¹‖ = (2 * π)⁻¹
⊢ ‖∮ (z : ℂ) in C(c, R), f z‖ ≤ 2 * π * R * C

tactic: simp [Real.pi_pos.le]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R C : ℝ
hR : 0 ≤ R
hf : ∀ (z : ℂ), z ∈ sphere c R → ‖f z‖ ≤ C
⊢ ‖(2 * ↑π * I)⁻¹‖ = (2 * π)⁻¹
Theorem: MeasureTheory.AECover.aestronglyMeasurable
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: obtain ⟨u, hu⟩ := l.exists_seq_tendsto
state_before: α : Type u_3
ι : Type u_2
inst✝⁴ : MeasurableSpace α
μ : Measure α
l : Filter ι
β : Type u_1
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : IsCountablyGenerated l
inst✝ : NeBot l
f : α → β
φ : ι → Set α
hφ : AECover μ l φ
hfm : ∀ (i : ι), AEStronglyMeasurable f (Measure.restrict μ (φ i))
⊢ AEStronglyMeasurable f μ

tactic: have := aestronglyMeasurable_iUnion_iff.mpr fun n : ℕ => hfm (u n)
state_before: case intro
α : Type u_3
ι : Type u_2
inst✝⁴ : MeasurableSpace α
μ : Measure α
l : Filter ι
β : Type u_1
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : IsCountablyGenerated l
inst✝ : NeBot l
f : α → β
φ : ι → Set α
hφ : AECover μ l φ
hfm : ∀ (i : ι), AEStronglyMeasurable f (Measure.restrict μ (φ i))
u : ℕ → ι
hu : Tendsto u atTop l
⊢ AEStronglyMeasurable f μ

tactic: rwa [Measure.restrict_eq_self_of_ae_mem] at this
state_before: case intro
α : Type u_3
ι : Type u_2
inst✝⁴ : MeasurableSpace α
μ : Measure α
l : Filter ι
β : Type u_1
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : IsCountablyGenerated l
inst✝ : NeBot l
f : α → β
φ : ι → Set α
hφ : AECover μ l φ
hfm : ∀ (i : ι), AEStronglyMeasurable f (Measure.restrict μ (φ i))
u : ℕ → ι
hu : Tendsto u atTop l
this : AEStronglyMeasurable f (Measure.restrict μ (⋃ (i : ℕ), φ (u i)))
⊢ AEStronglyMeasurable f μ

tactic: filter_upwards [hφ.ae_eventually_mem] with x hx using mem_iUnion.mpr (hu.eventually hx).exists
state_before: case intro.hs
α : Type u_3
ι : Type u_2
inst✝⁴ : MeasurableSpace α
μ : Measure α
l : Filter ι
β : Type u_1
inst✝³ : TopologicalSpace β
inst✝² : PseudoMetrizableSpace β
inst✝¹ : IsCountablyGenerated l
inst✝ : NeBot l
f : α → β
φ : ι → Set α
hφ : AECover μ l φ
hfm : ∀ (i : ι), AEStronglyMeasurable f (Measure.restrict μ (φ i))
u : ℕ → ι
hu : Tendsto u atTop l
this : AEStronglyMeasurable f (Measure.restrict μ (⋃ (i : ℕ), φ (u i)))
⊢ ∀ᵐ (x : α) ∂μ, x ∈ ⋃ (i : ℕ), φ (u i)
Theorem: Polynomial.natDegree_comp
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: by_cases q0 : q.natDegree = 0
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
⊢ natDegree (comp p q) = natDegree p * natDegree q

tactic: rw [degree_le_zero_iff.mp (natDegree_eq_zero_iff_degree_le_zero.mp q0), comp_C, natDegree_C,
  natDegree_C, mul_zero]
state_before: case pos
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
q0 : natDegree q = 0
⊢ natDegree (comp p q) = natDegree p * natDegree q

tactic: by_cases p0 : p = 0
state_before: case neg
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
q0 : ¬natDegree q = 0
⊢ natDegree (comp p q) = natDegree p * natDegree q

tactic: refine' le_antisymm natDegree_comp_le (le_natDegree_of_ne_zero _)
state_before: case neg
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
q0 : ¬natDegree q = 0
p0 : ¬p = 0
⊢ natDegree (comp p q) = natDegree p * natDegree q

tactic: simp only [coeff_comp_degree_mul_degree q0, p0, mul_eq_zero, leadingCoeff_eq_zero, or_self_iff,
  ne_zero_of_natDegree_gt (Nat.pos_of_ne_zero q0), pow_ne_zero, Ne.def, not_false_iff]
state_before: case neg
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
q0 : ¬natDegree q = 0
p0 : ¬p = 0
⊢ coeff (comp p q) (natDegree p * natDegree q) ≠ 0

tactic: simp only [p0, zero_comp, natDegree_zero, zero_mul]
state_before: case pos
R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p q : R[X]
q0 : ¬natDegree q = 0
p0 : p = 0
⊢ natDegree (comp p q) = natDegree p * natDegree q
Theorem: Polynomial.natDegree_add_le_iff_left
File: Mathlib/Data/Polynomial/Degree/Lemmas.lean

tactic: refine' ⟨fun h => _, fun h => natDegree_add_le_of_degree_le h qn⟩
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q✝ r : R[X]
n : ℕ
p q : R[X]
qn : natDegree q ≤ n
⊢ natDegree (p + q) ≤ n ↔ natDegree p ≤ n

tactic: refine' natDegree_le_iff_coeff_eq_zero.mpr fun m hm => _
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q✝ r : R[X]
n : ℕ
p q : R[X]
qn : natDegree q ≤ n
h : natDegree (p + q) ≤ n
⊢ natDegree p ≤ n

tactic: convert natDegree_le_iff_coeff_eq_zero.mp h m hm using 1
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m✝ n✝ : ℕ
inst✝ : Semiring R
p✝ q✝ r : R[X]
n : ℕ
p q : R[X]
qn : natDegree q ≤ n
h : natDegree (p + q) ≤ n
m : ℕ
hm : n < m
⊢ coeff p m = 0

tactic: rw [coeff_add, natDegree_le_iff_coeff_eq_zero.mp qn _ hm, add_zero]
state_before: case h.e'_2
R : Type u
S : Type v
ι : Type w
a b : R
m✝ n✝ : ℕ
inst✝ : Semiring R
p✝ q✝ r : R[X]
n : ℕ
p q : R[X]
qn : natDegree q ≤ n
h : natDegree (p + q) ≤ n
m : ℕ
hm : n < m
⊢ coeff p m = coeff (p + q) m
Theorem: MeasureTheory.lintegral_map
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: erw [lintegral_eq_iSup_eapprox_lintegral hf, lintegral_eq_iSup_eapprox_lintegral (hf.comp hg)]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1033801
δ : Type ?u.1033804
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hf : Measurable f
hg : Measurable g
⊢ (∫⁻ (a : β), f a ∂Measure.map g μ) = ∫⁻ (a : α), f (g a) ∂μ

tactic: congr with n : 1
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.1033801
δ : Type ?u.1033804
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hf : Measurable f
hg : Measurable g
⊢ (⨆ (n : ℕ), SimpleFunc.lintegral (eapprox f n) (Measure.map g μ)) =
    ⨆ (n : ℕ), SimpleFunc.lintegral (eapprox (f ∘ g) n) μ

tactic: convert SimpleFunc.lintegral_map _ hg
state_before: case e_s.h
α : Type u_2
β : Type u_1
γ : Type ?u.1033801
δ : Type ?u.1033804
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hf : Measurable f
hg : Measurable g
n : ℕ
⊢ SimpleFunc.lintegral (eapprox f n) (Measure.map g μ) = SimpleFunc.lintegral (eapprox (f ∘ g) n) μ

tactic: ext1 x
state_before: case h.e'_3.h.e'_3
α : Type u_2
β : Type u_1
γ : Type ?u.1033801
δ : Type ?u.1033804
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hf : Measurable f
hg : Measurable g
n : ℕ
⊢ eapprox (f ∘ g) n = comp (eapprox f n) g hg

tactic: simp only [eapprox_comp hf hg, coe_comp]
state_before: case h.e'_3.h.e'_3.H
α : Type u_2
β : Type u_1
γ : Type ?u.1033801
δ : Type ?u.1033804
m : MeasurableSpace α
μ ν : Measure α
mβ : MeasurableSpace β
f : β → ℝ≥0∞
g : α → β
hf : Measurable f
hg : Measurable g
n : ℕ
x : α
⊢ ↑(eapprox (f ∘ g) n) x = ↑(comp (eapprox f n) g hg) x
Theorem: AdjoinRoot.Polynomial.quotQuotEquivComm_mk
File: Mathlib/RingTheory/AdjoinRoot.lean

tactic: simp only [Polynomial.quotQuotEquivComm, quotientEquiv_mk,
  polynomialQuotientEquivQuotientPolynomial_map_mk]
state_before: R : Type u
S : Type v
K : Type w
inst✝ : CommRing R
I : Ideal R
f p : R[X]
⊢ ↑(quotQuotEquivComm I f)
      (↑(Ideal.Quotient.mk (span {Polynomial.map (Ideal.Quotient.mk I) f})) (Polynomial.map (Ideal.Quotient.mk I) p)) =
    ↑(Ideal.Quotient.mk (span {↑(Ideal.Quotient.mk (Ideal.map C I)) f})) (↑(Ideal.Quotient.mk (Ideal.map C I)) p)
Theorem: IsLocalization.integerNormalization_coeff
File: Mathlib/RingTheory/Localization/Integral.lean

tactic: simp (config := { contextual := true }) [integerNormalization, coeff_monomial,
  coeffIntegerNormalization_of_not_mem_support]
state_before: R : Type u_2
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_1
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type ?u.9366
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
p : S[X]
i : ℕ
⊢ coeff (integerNormalization M p) i = coeffIntegerNormalization M p i
Theorem: Real.deriv_sqrt_aux
File: Mathlib/Analysis/SpecialFunctions/Sqrt.lean

tactic: cases' hx.lt_or_lt with hx hx
state_before: x : ℝ
hx : x ≠ 0
⊢ HasStrictDerivAt sqrt (1 / (2 * sqrt x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: rw [sqrt_eq_zero_of_nonpos hx.le, MulZeroClass.mul_zero, div_zero]
state_before: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
⊢ HasStrictDerivAt sqrt (1 / (2 * sqrt x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: have : sqrt =ᶠ[𝓝 x] fun _ => 0 := (gt_mem_nhds hx).mono fun x hx => sqrt_eq_zero_of_nonpos hx.le
state_before: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
⊢ HasStrictDerivAt sqrt 0 x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: exact
  ⟨(hasStrictDerivAt_const x (0 : ℝ)).congr_of_eventuallyEq this.symm, fun n =>
    contDiffAt_const.congr_of_eventuallyEq this⟩
state_before: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
this : sqrt =ᶠ[𝓝 x] fun x => 0
⊢ HasStrictDerivAt sqrt 0 x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: have : ↑2 * sqrt x ^ (2 - 1) ≠ 0 := by simp [(sqrt_pos.2 hx).ne', @two_ne_zero ℝ]
state_before: case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
⊢ HasStrictDerivAt sqrt (1 / (2 * sqrt x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: constructor
state_before: case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * sqrt x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt sqrt (1 / (2 * sqrt x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x

tactic: simp [(sqrt_pos.2 hx).ne', @two_ne_zero ℝ]
state_before: x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
⊢ 2 * sqrt x ^ (2 - 1) ≠ 0

tactic: simpa using sqLocalHomeomorph.hasStrictDerivAt_symm hx this (hasStrictDerivAt_pow 2 _)
state_before: case inr.left
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * sqrt x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt sqrt (1 / (2 * sqrt x)) x

tactic: exact fun n => sqLocalHomeomorph.contDiffAt_symm_deriv this hx (hasDerivAt_pow 2 (sqrt x))
  (contDiffAt_id.pow 2)
state_before: case inr.right
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * sqrt x ^ (2 - 1) ≠ 0
⊢ ∀ (n : ℕ∞), ContDiffAt ℝ n sqrt x
Theorem: Filter.HasBasis.separationRel
File: Mathlib/Topology/UniformSpace/Separation.lean

tactic: unfold separationRel
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
ι : Sort u_1
p : ι → Prop
s : ι → Set (α × α)
h : HasBasis (𝓤 α) p s
⊢ 𝓢 α = ⋂ (i : ι) (_ : p i), s i

tactic: rw [h.sInter_sets]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
ι : Sort u_1
p : ι → Prop
s : ι → Set (α × α)
h : HasBasis (𝓤 α) p s
⊢ ⋂₀ (𝓤 α).sets = ⋂ (i : ι) (_ : p i), s i
Theorem: Filter.EventuallyEq.restrict
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: refine' hfg.filter_mono _
state_before: α : Type u_1
β : Type ?u.575084
γ : Type ?u.575087
δ : Type u_2
ι : Type ?u.575093
R : Type ?u.575096
R' : Type ?u.575099
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ f =ᶠ[ae (Measure.restrict μ s)] g

tactic: rw [Measure.ae_le_iff_absolutelyContinuous]
state_before: α : Type u_1
β : Type ?u.575084
γ : Type ?u.575087
δ : Type u_2
ι : Type ?u.575093
R : Type ?u.575096
R' : Type ?u.575099
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ ae (Measure.restrict μ s) ≤ ae μ

tactic: exact Measure.absolutelyContinuous_of_le Measure.restrict_le_self
state_before: α : Type u_1
β : Type ?u.575084
γ : Type ?u.575087
δ : Type u_2
ι : Type ?u.575093
R : Type ?u.575096
R' : Type ?u.575099
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
f g : α → δ
s : Set α
hfg : f =ᶠ[ae μ] g
⊢ Measure.restrict μ s ≪ μ
Theorem: Action.leftUnitor_hom_hom
File: Mathlib/RepresentationTheory/Action.lean

tactic: dsimp [Monoidal.transport_leftUnitor]
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
G : MonCat
inst✝ : MonoidalCategory V
X : Action V G
⊢ (λ_ X).hom.hom = (λ_ X.V).hom

tactic: simp
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
G : MonCat
inst✝ : MonoidalCategory V
X : Action V G
⊢ ((𝟙 (𝟙_ V) ⊗ 𝟙 X.V) ≫ (λ_ X.V).hom) ≫ 𝟙 X.V = (λ_ X.V).hom
Theorem: one_lt_of_lt_mul_right
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: simpa only [mul_one]
state_before: α : Type u_1
β : Type ?u.22777
inst✝² : MulOneClass α
inst✝¹ : LT α
inst✝ : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b : α
h : a < a * b
⊢ ?m.23122 h * 1 < ?m.23122 h * b
Theorem: Associates.factors_prod
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: simp [quotient_mk_eq_mk, this]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a : Associates α
b : α
this : Associates.mk b = 0
⊢ FactorSet.prod (factors (Quotient.mk (Associated.setoid α) b)) = Quotient.mk (Associated.setoid α) b

tactic: have : b ≠ 0 := by simp_all
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a : Associates α
b : α
x✝ : Associates.mk b ≠ 0
⊢ FactorSet.prod (factors (Quotient.mk (Associated.setoid α) b)) = Quotient.mk (Associated.setoid α) b

tactic: simp [this, quotient_mk_eq_mk, prod_mk,
    mk_eq_mk_iff_associated.2 (UniqueFactorizationMonoid.factors_prod this)]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a : Associates α
b : α
x✝ : Associates.mk b ≠ 0
this : b ≠ 0
⊢ FactorSet.prod (factors (Quotient.mk (Associated.setoid α) b)) = Quotient.mk (Associated.setoid α) b

tactic: simp_all
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
dec_irr : (p : Associates α) → Decidable (Irreducible p)
inst✝ : UniqueFactorizationMonoid α
dec : DecidableEq α
dec' : DecidableEq (Associates α)
a : Associates α
b : α
x✝ : Associates.mk b ≠ 0
⊢ b ≠ 0
Theorem: Subgroup.subgroup_mul_singleton
File: Mathlib/GroupTheory/Subgroup/Pointwise.lean

tactic: simpa [preimage, mul_mem_cancel_right (inv_mem hh)]
state_before: α : Type ?u.162017
G : Type u_1
A : Type ?u.162023
S : Type ?u.162026
inst✝³ : Group G
inst✝² : AddGroup A
s : Set G
inst✝¹ : Group α
inst✝ : MulDistribMulAction α G
H : Subgroup G
h : G
hh : h ∈ H
this : {x | x ∈ H} = ↑H
⊢ ↑H * {h} = ↑H