tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.integrable_prod_mul
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: refine' (integrable_prod_iff _).2 ⟨_, _⟩
state_before: α : Type u_2
α' : Type ?u.2408961
β : Type u_3
β' : Type ?u.2408967
γ : Type ?u.2408970
E : Type ?u.2408973
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite ν
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
hf : Integrable f
hg : Integrable g
⊢ Integrable fun z => f z.fst * g z.snd

tactic: exact hf.1.fst.mul hg.1.snd
state_before: case refine'_1
α : Type u_2
α' : Type ?u.2408961
β : Type u_3
β' : Type ?u.2408967
γ : Type ?u.2408970
E : Type ?u.2408973
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite ν
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
hf : Integrable f
hg : Integrable g
⊢ AEStronglyMeasurable (fun z => f z.fst * g z.snd) (Measure.prod μ ν)

tactic: exact eventually_of_forall fun x => hg.const_mul (f x)
state_before: case refine'_2
α : Type u_2
α' : Type ?u.2408961
β : Type u_3
β' : Type ?u.2408967
γ : Type ?u.2408970
E : Type ?u.2408973
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite ν
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
hf : Integrable f
hg : Integrable g
⊢ ∀ᵐ (x : α) ∂μ, Integrable fun y => f (x, y).fst * g (x, y).snd

tactic: simpa only [norm_mul, integral_mul_left] using hf.norm.mul_const _
state_before: case refine'_3
α : Type u_2
α' : Type ?u.2408961
β : Type u_3
β' : Type ?u.2408967
γ : Type ?u.2408970
E : Type ?u.2408973
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : MeasurableSpace β
inst✝⁴ : MeasurableSpace β'
inst✝³ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝² : NormedAddCommGroup E
inst✝¹ : SigmaFinite ν
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
hf : Integrable f
hg : Integrable g
⊢ Integrable fun x => ∫ (y : β), ‖f (x, y).fst * g (x, y).snd‖ ∂ν
Theorem: Complex.arg_neg_eq_arg_sub_pi_iff
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rcases lt_trichotomy x.im 0 with (hi | hi | hi)
state_before: x : ℂ
⊢ arg (-x) = arg x - π ↔ 0 < x.im ∨ x.im = 0 ∧ x.re < 0

tactic: simp [hi, hi.ne, hi.not_lt, arg_neg_eq_arg_add_pi_of_im_neg, sub_eq_add_neg, ←
  add_eq_zero_iff_eq_neg, Real.pi_ne_zero]
state_before: case inl
x : ℂ
hi : x.im < 0
⊢ arg (-x) = arg x - π ↔ 0 < x.im ∨ x.im = 0 ∧ x.re < 0

tactic: rw [(ext rfl hi : x = x.re)]
state_before: case inr.inl
x : ℂ
hi : x.im = 0
⊢ arg (-x) = arg x - π ↔ 0 < x.im ∨ x.im = 0 ∧ x.re < 0

tactic: rcases lt_trichotomy x.re 0 with (hr | hr | hr)
state_before: case inr.inl
x : ℂ
hi : x.im = 0
⊢ arg (-↑x.re) = arg ↑x.re - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: rw [arg_ofReal_of_neg hr, ← ofReal_neg, arg_ofReal_of_nonneg (Left.neg_pos_iff.2 hr).le]
state_before: case inr.inl.inl
x : ℂ
hi : x.im = 0
hr : x.re < 0
⊢ arg (-↑x.re) = arg ↑x.re - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: simp [hr]
state_before: case inr.inl.inl
x : ℂ
hi : x.im = 0
hr : x.re < 0
⊢ 0 = π - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: simp [hr, hi, Real.pi_ne_zero]
state_before: case inr.inl.inr.inl
x : ℂ
hi : x.im = 0
hr : x.re = 0
⊢ arg (-↑x.re) = arg ↑x.re - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: rw [arg_ofReal_of_nonneg hr.le, ← ofReal_neg, arg_ofReal_of_neg (Left.neg_neg_iff.2 hr)]
state_before: case inr.inl.inr.inr
x : ℂ
hi : x.im = 0
hr : 0 < x.re
⊢ arg (-↑x.re) = arg ↑x.re - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: simp [hr.not_lt, ← add_eq_zero_iff_eq_neg, Real.pi_ne_zero]
state_before: case inr.inl.inr.inr
x : ℂ
hi : x.im = 0
hr : 0 < x.re
⊢ π = 0 - π ↔ 0 < (↑x.re).im ∨ (↑x.re).im = 0 ∧ (↑x.re).re < 0

tactic: simp [hi, arg_neg_eq_arg_sub_pi_of_im_pos]
state_before: case inr.inr
x : ℂ
hi : 0 < x.im
⊢ arg (-x) = arg x - π ↔ 0 < x.im ∨ x.im = 0 ∧ x.re < 0
Theorem: MeasureTheory.SignedMeasure.singularPart_smul_nnreal
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: rw [singularPart, singularPart, smul_sub, ← toSignedMeasure_smul, ← toSignedMeasure_smul]
state_before: α : Type u_1
β : Type ?u.623899
m : MeasurableSpace α
μ✝ ν : Measure α
s✝ t s : SignedMeasure α
μ : Measure α
r : ℝ≥0
⊢ singularPart (r • s) μ = r • singularPart s μ
Theorem: Real.diam_Ico
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp [Metric.diam, ENNReal.toReal_ofReal (sub_nonneg.2 h)]
state_before: α : Type ?u.562585
β : Type ?u.562588
γ : Type ?u.562591
inst✝ : PseudoEMetricSpace α
a b : ℝ
h : a ≤ b
⊢ Metric.diam (Ico a b) = b - a
Theorem: TopologicalSpace.isSeparable_univ_iff
File: Mathlib/Topology/Bases.lean

tactic: constructor
state_before: α : Type u
t : TopologicalSpace α
⊢ IsSeparable univ ↔ SeparableSpace α

tactic: rintro ⟨c, c_count, hc⟩
state_before: case mp
α : Type u
t : TopologicalSpace α
⊢ IsSeparable univ → SeparableSpace α

tactic: refine' ⟨⟨c, c_count, by rwa [dense_iff_closure_eq, ← univ_subset_iff]⟩⟩
state_before: case mp.intro.intro
α : Type u
t : TopologicalSpace α
c : Set α
c_count : Set.Countable c
hc : univ ⊆ closure c
⊢ SeparableSpace α

tactic: rwa [dense_iff_closure_eq, ← univ_subset_iff]
state_before: α : Type u
t : TopologicalSpace α
c : Set α
c_count : Set.Countable c
hc : univ ⊆ closure c
⊢ Dense c

tactic: intro h
state_before: case mpr
α : Type u
t : TopologicalSpace α
⊢ SeparableSpace α → IsSeparable univ

tactic: rcases exists_countable_dense α with ⟨c, c_count, hc⟩
state_before: case mpr
α : Type u
t : TopologicalSpace α
h : SeparableSpace α
⊢ IsSeparable univ

tactic: exact ⟨c, c_count, by rwa [univ_subset_iff, ← dense_iff_closure_eq]⟩
state_before: case mpr.intro.intro
α : Type u
t : TopologicalSpace α
h : SeparableSpace α
c : Set α
c_count : Set.Countable c
hc : Dense c
⊢ IsSeparable univ

tactic: rwa [univ_subset_iff, ← dense_iff_closure_eq]
state_before: α : Type u
t : TopologicalSpace α
h : SeparableSpace α
c : Set α
c_count : Set.Countable c
hc : Dense c
⊢ univ ⊆ closure c
Theorem: ENNReal.coe_zpow
File: Mathlib/Data/Real/ENNReal.lean

tactic: cases' n with n n
state_before: α : Type ?u.359170
β : Type ?u.359173
a b c d : ℝ≥0∞
r p q : ℝ≥0
hr : r ≠ 0
n : ℤ
⊢ ↑(r ^ n) = ↑r ^ n

tactic: simp only [Int.ofNat_eq_coe, coe_pow, zpow_ofNat]
state_before: case ofNat
α : Type ?u.359170
β : Type ?u.359173
a b c d : ℝ≥0∞
r p q : ℝ≥0
hr : r ≠ 0
n : ℕ
⊢ ↑(r ^ Int.ofNat n) = ↑r ^ Int.ofNat n

tactic: have : r ^ n.succ ≠ 0 := pow_ne_zero (n + 1) hr
state_before: case negSucc
α : Type ?u.359170
β : Type ?u.359173
a b c d : ℝ≥0∞
r p q : ℝ≥0
hr : r ≠ 0
n : ℕ
⊢ ↑(r ^ Int.negSucc n) = ↑r ^ Int.negSucc n

tactic: simp only [zpow_negSucc, coe_inv this, coe_pow]
state_before: case negSucc
α : Type ?u.359170
β : Type ?u.359173
a b c d : ℝ≥0∞
r p q : ℝ≥0
hr : r ≠ 0
n : ℕ
this : r ^ Nat.succ n ≠ 0
⊢ ↑(r ^ Int.negSucc n) = ↑r ^ Int.negSucc n
Theorem: MeasureTheory.snorm_one_le_of_le'
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: refine' snorm_one_le_of_le hfint hfint' _
state_before: α : Type u_1
E : Type ?u.1760021
F : Type ?u.1760024
𝕜 : Type ?u.1760027
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ snorm f 1 μ ≤ 2 * ↑↑μ univ * ENNReal.ofReal r

tactic: simp only [Real.coe_toNNReal', le_max_iff]
state_before: α : Type u_1
E : Type ?u.1760021
F : Type ?u.1760024
𝕜 : Type ?u.1760027
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ ↑(Real.toNNReal r)

tactic: filter_upwards [hf]with ω hω using Or.inl hω
state_before: α : Type u_1
E : Type ?u.1760021
F : Type ?u.1760024
𝕜 : Type ?u.1760027
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : CompleteSpace E
inst✝⁵ : NontriviallyNormedField 𝕜
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : SMulCommClass ℝ 𝕜 E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
m0 : MeasurableSpace α
μ : Measure α
r : ℝ
f : α → ℝ
hfint : Integrable f
hfint' : 0 ≤ ∫ (x : α), f x ∂μ
hf : ∀ᵐ (ω : α) ∂μ, f ω ≤ r
⊢ ∀ᵐ (ω : α) ∂μ, f ω ≤ r ∨ f ω ≤ 0
Theorem: GradedMonoid.mk_pow
File: Mathlib/Algebra/GradedMonoid.lean

tactic: match n with
| 0 =>
  rw [pow_zero]
  exact (GMonoid.gnpow_zero' ⟨_, a⟩).symm
| n+1 =>
  rw [pow_succ, mk_pow a n, mk_mul_mk]
  exact (GMonoid.gnpow_succ' n ⟨_, a⟩).symm
state_before: ι : Type u_1
A : ι → Type u_2
inst✝¹ : AddMonoid ι
inst✝ : GMonoid A
i : ι
a : A i
n : ℕ
⊢ mk i a ^ n = mk (n • i) (GMonoid.gnpow n a)

tactic: rw [pow_zero]
state_before: ι : Type u_1
A : ι → Type u_2
inst✝¹ : AddMonoid ι
inst✝ : GMonoid A
i : ι
a : A i
n : ℕ
⊢ mk i a ^ 0 = mk (0 • i) (GMonoid.gnpow 0 a)

tactic: exact (GMonoid.gnpow_zero' ⟨_, a⟩).symm
state_before: ι : Type u_1
A : ι → Type u_2
inst✝¹ : AddMonoid ι
inst✝ : GMonoid A
i : ι
a : A i
n : ℕ
⊢ 1 = mk (0 • i) (GMonoid.gnpow 0 a)

tactic: rw [pow_succ, mk_pow a n, mk_mul_mk]
state_before: ι : Type u_1
A : ι → Type u_2
inst✝¹ : AddMonoid ι
inst✝ : GMonoid A
i : ι
a : A i
n✝ n : ℕ
⊢ mk i a ^ (n + 1) = mk ((n + 1) • i) (GMonoid.gnpow (n + 1) a)

tactic: exact (GMonoid.gnpow_succ' n ⟨_, a⟩).symm
state_before: ι : Type u_1
A : ι → Type u_2
inst✝¹ : AddMonoid ι
inst✝ : GMonoid A
i : ι
a : A i
n✝ n : ℕ
⊢ mk (i + n • i) (GMul.mul a (GMonoid.gnpow n a)) = mk ((n + 1) • i) (GMonoid.gnpow (n + 1) a)
Theorem: Subgroup.center_eq_infi'
File: Mathlib/GroupTheory/Subgroup/ZPowers.lean

tactic: rw [center_eq_iInf S hS, ← iInf_subtype'']
state_before: G : Type u_1
inst✝² : Group G
A : Type ?u.41951
inst✝¹ : AddGroup A
N : Type ?u.41957
inst✝ : Group N
s : Set G
g : G
S : Set G
hS : closure S = ⊤
⊢ center G = ⨅ (g : ↑S), centralizer (zpowers ↑g)
Theorem: DenseEmbedding.subtype
File: Mathlib/Topology/DenseEmbedding.lean

tactic: ext ⟨x, hx⟩
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.33913
δ : Type ?u.33916
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : α → β
de : DenseEmbedding e
p : α → Prop
⊢ closure (range (subtypeEmb p e)) = univ

tactic: rw [image_eq_range] at hx
state_before: case h.mk
α : Type u_1
β : Type u_2
γ : Type ?u.33913
δ : Type ?u.33916
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
e : α → β
de : DenseEmbedding e
p : α → Prop
x : β
hx : x ∈ closure (e '' {x | p x})
⊢ { val := x, property := hx } ∈ closure (range (subtypeEmb p e)) ↔ { val := x, property := hx } ∈ univ
Theorem: CategoryTheory.CartesianClosed.uncurry_id_eq_ev
File: Mathlib/CategoryTheory/Closed/Cartesian.lean

tactic: rw [uncurry_eq, prod.map_id_id, id_comp]
state_before: C : Type u
inst✝³ : Category C
A✝ B X✝ X' Y Y' Z : C
inst✝² : HasFiniteProducts C
inst✝¹ : Exponentiable A✝
A X : C
inst✝ : Exponentiable A
⊢ uncurry (𝟙 (A ⟹ X)) = (exp.ev A).app X
Theorem: map_iInf₂
File: Mathlib/Order/Hom/CompleteLattice.lean

tactic: simp_rw [map_iInf]
state_before: F : Type u_3
α : Type u_1
β : Type u_2
γ : Type ?u.8713
δ : Type ?u.8716
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : InfSet α
inst✝¹ : InfSet β
inst✝ : sInfHomClass F α β
f : F
g : (i : ι) → κ i → α
⊢ ↑f (⨅ (i : ι) (j : κ i), g i j) = ⨅ (i : ι) (j : κ i), ↑f (g i j)
Theorem: linearIndependent_empty
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: simp [linearIndependent_subtype_disjoint]
state_before: ι : Type u'
ι' : Type ?u.212015
R : Type u_2
K : Type ?u.212021
M : Type u_1
M' : Type ?u.212027
M'' : Type ?u.212030
V : Type u
V' : Type ?u.212035
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
⊢ LinearIndependent R fun x => ↑x
Theorem: CategoryTheory.WithTerminal.lift_map_liftStar
File: Mathlib/CategoryTheory/WithTerminal.lean

tactic: erw [Category.id_comp, Category.comp_id]
state_before: C : Type u
inst✝¹ : Category C
D : Type u_1
inst✝ : Category D
Z : D
F : C ⥤ D
M : (x : C) → F.obj x ⟶ Z
hM : ∀ (x y : C) (f : x ⟶ y), F.map f ≫ M y = M x
x : C
⊢ (lift F M hM).map (Limits.IsTerminal.from starTerminal (incl.obj x)) ≫ (liftStar F M hM).hom =
    (inclLift F M hM).hom.app x ≫ M x

tactic: rfl
state_before: C : Type u
inst✝¹ : Category C
D : Type u_1
inst✝ : Category D
Z : D
F : C ⥤ D
M : (x : C) → F.obj x ⟶ Z
hM : ∀ (x y : C) (f : x ⟶ y), F.map f ≫ M y = M x
x : C
⊢ (lift F M hM).map (Limits.IsTerminal.from starTerminal (incl.obj x)) = M x
Theorem: contractible_iff_id_nullhomotopic
File: Mathlib/Topology/Homotopy/Contractible.lean

tactic: constructor
state_before: Y : Type u_1
inst✝ : TopologicalSpace Y
⊢ ContractibleSpace Y ↔ Nullhomotopic (ContinuousMap.id Y)

tactic: rintro ⟨p, h⟩
state_before: case mpr
Y : Type u_1
inst✝ : TopologicalSpace Y
⊢ Nullhomotopic (ContinuousMap.id Y) → ContractibleSpace Y

tactic: refine
  { hequiv_unit' :=
      ⟨{  toFun := ContinuousMap.const _ ()
          invFun := ContinuousMap.const _ p
          left_inv := ?_
          right_inv := ?_ }⟩ }
state_before: case mpr.intro
Y : Type u_1
inst✝ : TopologicalSpace Y
p : Y
h : Homotopic (ContinuousMap.id Y) (const Y p)
⊢ ContractibleSpace Y

tactic: intro
state_before: case mp
Y : Type u_1
inst✝ : TopologicalSpace Y
⊢ ContractibleSpace Y → Nullhomotopic (ContinuousMap.id Y)

tactic: apply id_nullhomotopic
state_before: case mp
Y : Type u_1
inst✝ : TopologicalSpace Y
a✝ : ContractibleSpace Y
⊢ Nullhomotopic (ContinuousMap.id Y)

tactic: exact h.symm
state_before: case mpr.intro.refine_1
Y : Type u_1
inst✝ : TopologicalSpace Y
p : Y
h : Homotopic (ContinuousMap.id Y) (const Y p)
⊢ Homotopic (comp (const Unit p) (const Y ())) (ContinuousMap.id Y)

tactic: convert Homotopic.refl (ContinuousMap.id Unit)
state_before: case mpr.intro.refine_2
Y : Type u_1
inst✝ : TopologicalSpace Y
p : Y
h : Homotopic (ContinuousMap.id Y) (const Y p)
⊢ Homotopic (comp (const Y ()) (const Unit p)) (ContinuousMap.id Unit)
Theorem: NormedRing.tsum_geometric_of_norm_lt_1
File: Mathlib/Analysis/SpecificLimits/Normed.lean

tactic: rw [tsum_eq_zero_add (NormedRing.summable_geometric_of_norm_lt_1 x h)]
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ‖∑' (n : ℕ), x ^ n‖ ≤ ‖1‖ - 1 + (1 - ‖x‖)⁻¹

tactic: simp only [_root_.pow_zero]
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ‖x ^ 0 + ∑' (b : ℕ), x ^ (b + 1)‖ ≤ ‖1‖ - 1 + (1 - ‖x‖)⁻¹

tactic: refine' le_trans (norm_add_le _ _) _
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ‖1 + ∑' (b : ℕ), x ^ (b + 1)‖ ≤ ‖1‖ - 1 + (1 - ‖x‖)⁻¹

tactic: have : ‖∑' b : ℕ, (fun n ↦ x ^ (n + 1)) b‖ ≤ (1 - ‖x‖)⁻¹ - 1 := by
  refine' tsum_of_norm_bounded _ fun b ↦ norm_pow_le' _ (Nat.succ_pos b)
  convert (hasSum_nat_add_iff' 1).mpr (hasSum_geometric_of_lt_1 (norm_nonneg x) h)
  simp
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ‖1‖ + ‖∑' (b : ℕ), x ^ (b + 1)‖ ≤ ‖1‖ - 1 + (1 - ‖x‖)⁻¹

tactic: linarith
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this : ‖∑' (b : ℕ), (fun n => x ^ (n + 1)) b‖ ≤ (1 - ‖x‖)⁻¹ - 1
⊢ ‖1‖ + ‖∑' (b : ℕ), x ^ (b + 1)‖ ≤ ‖1‖ - 1 + (1 - ‖x‖)⁻¹

tactic: refine' tsum_of_norm_bounded _ fun b ↦ norm_pow_le' _ (Nat.succ_pos b)
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ‖∑' (b : ℕ), (fun n => x ^ (n + 1)) b‖ ≤ (1 - ‖x‖)⁻¹ - 1

tactic: convert (hasSum_nat_add_iff' 1).mpr (hasSum_geometric_of_lt_1 (norm_nonneg x) h)
state_before: α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ HasSum (fun b => ‖x‖ ^ (b + 1)) ((1 - ‖x‖)⁻¹ - 1)

tactic: simp
state_before: case h.e'_6.h.e'_6
α : Type ?u.1234446
β : Type ?u.1234449
ι : Type ?u.1234452
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ 1 = ∑ i in Finset.range 1, ‖x‖ ^ i
Theorem: ENNReal.ofReal_sum_of_nonneg
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp_rw [ENNReal.ofReal, ← coe_finset_sum, coe_eq_coe]
state_before: α : Type u_1
β : Type ?u.204043
a b c d : ℝ≥0∞
r p q : ℝ≥0
s : Finset α
f : α → ℝ
hf : ∀ (i : α), i ∈ s → 0 ≤ f i
⊢ ENNReal.ofReal (∑ i in s, f i) = ∑ i in s, ENNReal.ofReal (f i)

tactic: exact Real.toNNReal_sum_of_nonneg hf
state_before: α : Type u_1
β : Type ?u.204043
a b c d : ℝ≥0∞
r p q : ℝ≥0
s : Finset α
f : α → ℝ
hf : ∀ (i : α), i ∈ s → 0 ≤ f i
⊢ Real.toNNReal (∑ i in s, f i) = ∑ a in s, Real.toNNReal (f a)
Theorem: Matrix.det_smul_inv_vecMul_eq_cramer_transpose
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: rw [← A⁻¹.transpose_transpose, vecMul_transpose, transpose_nonsing_inv, ← det_transpose,
  Aᵀ.det_smul_inv_mulVec_eq_cramer _ (isUnit_det_transpose A h)]
state_before: l : Type ?u.364914
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A✝ B A : Matrix n n α
b : n → α
h : IsUnit (det A)
⊢ det A • vecMul b A⁻¹ = ↑(cramer Aᵀ) b
Theorem: Metric.mem_closedBall_self
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rwa [mem_closedBall, dist_self]
state_before: α : Type u
β : Type v
X : Type ?u.33624
ι : Type ?u.33627
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
h : 0 ≤ ε
⊢ x ∈ closedBall x ε
Theorem: RatFunc.ofFractionRing_eq
File: Mathlib/FieldTheory/RatFunc.lean

tactic: simp only [IsLocalization.algEquiv_apply, IsLocalization.ringEquivOfRingEquiv_apply,
  Localization.mk_eq_mk'_apply, IsLocalization.map_mk', ofFractionRing_mk',
  RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
x✝ : FractionRing K[X]
x : K[X] × { x // x ∈ K[X]⁰ }
⊢ { toFractionRing := Localization.mk x.fst x.snd } =
    ↑(IsLocalization.algEquiv K[X]⁰ (FractionRing K[X]) (RatFunc K)) (Localization.mk x.fst x.snd)

tactic: simp only [IsFractionRing.mk'_eq_div, RingHom.id_apply, Subtype.coe_eta]
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
x✝ : FractionRing K[X]
x : K[X] × { x // x ∈ K[X]⁰ }
⊢ IsLocalization.mk' (RatFunc K) x.fst x.snd =
    IsLocalization.mk' (RatFunc K) (↑(RingHom.id K[X]) x.fst)
      { val := ↑(RingHom.id K[X]) ↑x.snd, property := (_ : ↑x.snd ∈ Submonoid.comap (RingHom.id K[X]) K[X]⁰) }
Theorem: CategoryTheory.Limits.PreservesPullback.iso_inv_snd
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean

tactic: simp [PreservesPullback.iso, Iso.inv_comp_eq]
state_before: C : Type u₁
inst✝⁴ : Category C
D : Type u₂
inst✝³ : Category D
G : C ⥤ D
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
h : W ⟶ X
k : W ⟶ Y
comm : h ≫ f = k ≫ g
inst✝² : PreservesLimit (cospan f g) G
inst✝¹ : HasPullback f g
inst✝ : HasPullback (G.map f) (G.map g)
⊢ (iso G f g).inv ≫ G.map pullback.snd = pullback.snd
Theorem: Matrix.blockDiagonal_diagonal
File: Mathlib/Data/Matrix/Block.lean

tactic: ext (⟨i, k⟩⟨j, k'⟩)
state_before: l : Type ?u.136326
m : Type u_1
n : Type ?u.136332
o : Type u_2
p : Type ?u.136338
q : Type ?u.136341
m' : o → Type ?u.136346
n' : o → Type ?u.136351
p' : o → Type ?u.136356
R : Type ?u.136359
S : Type ?u.136362
α : Type u_3
β : Type ?u.136368
inst✝³ : DecidableEq o
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : DecidableEq m
d : o → m → α
⊢ (blockDiagonal fun k => diagonal (d k)) = diagonal fun ik => d ik.snd ik.fst

tactic: simp only [blockDiagonal_apply, diagonal_apply, Prod.mk.inj_iff, ← ite_and]
state_before: case a.mk.h.mk
l : Type ?u.136326
m : Type u_1
n : Type ?u.136332
o : Type u_2
p : Type ?u.136338
q : Type ?u.136341
m' : o → Type ?u.136346
n' : o → Type ?u.136351
p' : o → Type ?u.136356
R : Type ?u.136359
S : Type ?u.136362
α : Type u_3
β : Type ?u.136368
inst✝³ : DecidableEq o
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : DecidableEq m
d : o → m → α
i : m
k : o
j : m
k' : o
⊢ blockDiagonal (fun k => diagonal (d k)) (i, k) (j, k') = diagonal (fun ik => d ik.snd ik.fst) (i, k) (j, k')

tactic: congr 1
state_before: case a.mk.h.mk
l : Type ?u.136326
m : Type u_1
n : Type ?u.136332
o : Type u_2
p : Type ?u.136338
q : Type ?u.136341
m' : o → Type ?u.136346
n' : o → Type ?u.136351
p' : o → Type ?u.136356
R : Type ?u.136359
S : Type ?u.136362
α : Type u_3
β : Type ?u.136368
inst✝³ : DecidableEq o
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : DecidableEq m
d : o → m → α
i : m
k : o
j : m
k' : o
⊢ (if k = k' ∧ i = j then d k i else 0) = if i = j ∧ k = k' then d k i else 0

tactic: rw [and_comm]
state_before: case a.mk.h.mk.e_c
l : Type ?u.136326
m : Type u_1
n : Type ?u.136332
o : Type u_2
p : Type ?u.136338
q : Type ?u.136341
m' : o → Type ?u.136346
n' : o → Type ?u.136351
p' : o → Type ?u.136356
R : Type ?u.136359
S : Type ?u.136362
α : Type u_3
β : Type ?u.136368
inst✝³ : DecidableEq o
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : DecidableEq m
d : o → m → α
i : m
k : o
j : m
k' : o
⊢ (k = k' ∧ i = j) = (i = j ∧ k = k')
Theorem: bernoulli'_eq_bernoulli
File: Mathlib/NumberTheory/Bernoulli.lean

tactic: simp [bernoulli, ← mul_assoc, ← sq, ← pow_mul, mul_comm n 2, pow_mul]
state_before: A : Type ?u.631794
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
n : ℕ
⊢ bernoulli' n = (-1) ^ n * bernoulli n
Theorem: ContinuousLinearEquiv.comp_fderiv
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

tactic: rw [← fderivWithin_univ, ← fderivWithin_univ]
state_before: 𝕜 : Type u_3
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_1
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_2
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.150633
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃L[𝕜] F
f : G → E
x : G
⊢ fderiv 𝕜 (↑iso ∘ f) x = comp (↑iso) (fderiv 𝕜 f x)

tactic: exact iso.comp_fderivWithin uniqueDiffWithinAt_univ
state_before: 𝕜 : Type u_3
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_1
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_2
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.150633
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
iso : E ≃L[𝕜] F
f : G → E
x : G
⊢ fderivWithin 𝕜 (↑iso ∘ f) univ x = comp (↑iso) (fderivWithin 𝕜 f univ x)
Theorem: CategoryTheory.Limits.pullbackConeOfRightIso_π_app_none
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: simp
state_before: C : Type u
inst✝² : Category C
D : Type u₂
inst✝¹ : Category D
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : IsIso g
⊢ (pullbackConeOfRightIso f g).π.app none = f