tasksource/leandojo huggingface dataset:
Theorem: Real.exp_approx_end'
File: Mathlib/Data/Complex/Exponential.lean

tactic: subst er
state_before: n : ℕ
x a b : ℝ
m : ℕ
e₁ : n + 1 = m
rm : ℝ
er : ↑m = rm
h : abs' x ≤ 1
e : abs' (1 - a) ≤ b - abs' x / rm * ((rm + 1) / rm)
⊢ abs' (exp x - expNear n x a) ≤ abs' x ^ n / ↑(Nat.factorial n) * b

tactic: exact exp_approx_succ _ e₁ _ _ (by simpa using e) (exp_approx_end _ _ _ e₁ h)
state_before: n : ℕ
x a b : ℝ
m : ℕ
e₁ : n + 1 = m
h : abs' x ≤ 1
e : abs' (1 - a) ≤ b - abs' x / ↑m * ((↑m + 1) / ↑m)
⊢ abs' (exp x - expNear n x a) ≤ abs' x ^ n / ↑(Nat.factorial n) * b

tactic: simpa using e
state_before: n : ℕ
x a b : ℝ
m : ℕ
e₁ : n + 1 = m
h : abs' x ≤ 1
e : abs' (1 - a) ≤ b - abs' x / ↑m * ((↑m + 1) / ↑m)
⊢ abs' (1 + x / ↑m * 0 - a) ≤ b - abs' x / ↑m * ((↑m + 1) / ↑m)
Theorem: Num.succ_ofInt'
File: Mathlib/Data/Num/Lemmas.lean

tactic: change ZNum.ofInt' (n + 1 : ℕ) = ZNum.ofInt' (n : ℕ) + 1
state_before: α : Type ?u.859157
n : ℕ
⊢ ZNum.ofInt' (↑n + 1) = ZNum.ofInt' ↑n + 1

tactic: dsimp only [ZNum.ofInt', ZNum.ofInt']
state_before: α : Type ?u.859157
n : ℕ
⊢ ZNum.ofInt' ↑(n + 1) = ZNum.ofInt' ↑n + 1

tactic: rw [Num.ofNat'_succ, Num.add_one, toZNum_succ, ZNum.add_one]
state_before: α : Type ?u.859157
n : ℕ
⊢ toZNum (ofNat' (n + 1)) = toZNum (ofNat' n) + 1

tactic: change ZNum.ofInt' 0 = ZNum.ofInt' (-[0+1]) + 1
state_before: α : Type ?u.859157
⊢ ZNum.ofInt' (-[0+1] + 1) = ZNum.ofInt' -[0+1] + 1

tactic: dsimp only [ZNum.ofInt', ZNum.ofInt']
state_before: α : Type ?u.859157
⊢ ZNum.ofInt' 0 = ZNum.ofInt' -[0+1] + 1

tactic: rw [ofNat'_succ, ofNat'_zero]
state_before: α : Type ?u.859157
⊢ toZNum (ofNat' 0) = toZNumNeg (ofNat' (0 + 1)) + 1

tactic: rfl
state_before: α : Type ?u.859157
⊢ toZNum 0 = toZNumNeg (0 + 1) + 1

tactic: change ZNum.ofInt' -[n+1] = ZNum.ofInt' -[(n + 1)+1] + 1
state_before: α : Type ?u.859157
n : ℕ
⊢ ZNum.ofInt' (-[n + 1+1] + 1) = ZNum.ofInt' -[n + 1+1] + 1

tactic: dsimp only [ZNum.ofInt', ZNum.ofInt']
state_before: α : Type ?u.859157
n : ℕ
⊢ ZNum.ofInt' -[n+1] = ZNum.ofInt' -[n + 1+1] + 1

tactic: rw [@Num.ofNat'_succ (n + 1), Num.add_one, toZNumNeg_succ,
  @ofNat'_succ n, Num.add_one, ZNum.add_one, pred_succ]
state_before: α : Type ?u.859157
n : ℕ
⊢ toZNumNeg (ofNat' (n + 1)) = toZNumNeg (ofNat' (n + 1 + 1)) + 1
Theorem: IsLowerSet.card_inter_le_finset
File: Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean

tactic: rw [inter_comm, mul_comm 𝒜.card]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
inst✝ : Fintype α
h𝒜 : IsLowerSet ↑𝒜
hℬ : IsUpperSet ↑ℬ
⊢ 2 ^ Fintype.card α * card (𝒜 ∩ ℬ) ≤ card 𝒜 * card ℬ

tactic: exact hℬ.card_inter_le_finset h𝒜
state_before: α : Type u_1
inst✝¹ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
inst✝ : Fintype α
h𝒜 : IsLowerSet ↑𝒜
hℬ : IsUpperSet ↑ℬ
⊢ 2 ^ Fintype.card α * card (ℬ ∩ 𝒜) ≤ card ℬ * card 𝒜
Theorem: FirstOrder.Language.Substructure.FG.sup
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rw [closure_union, ht₁.2, ht₂.2]
state_before: L : Language
M : Type u_3
inst✝ : Structure L M
N₁ N₂ : Substructure L M
hN₁ : FG N₁
hN₂ : FG N₂
t₁ : Set M
ht₁ : Set.Finite t₁ ∧ LowerAdjoint.toFun (closure L) t₁ = N₁
t₂ : Set M
ht₂ : Set.Finite t₂ ∧ LowerAdjoint.toFun (closure L) t₂ = N₂
⊢ LowerAdjoint.toFun (closure L) (t₁ ∪ t₂) = N₁ ⊔ N₂
Theorem: Real.mk_le
File: Mathlib/Data/Real/Basic.lean

tactic: simp [le_def', mk_eq]
state_before: x y : ℝ
f g : CauSeq ℚ abs
⊢ mk f ≤ mk g ↔ f ≤ g

tactic: rfl
state_before: x y : ℝ
f g : CauSeq ℚ abs
⊢ f < g ∨ f ≈ g ↔ f ≤ g
Theorem: Finset.prod_pow_boole
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: simp
state_before: ι : Type ?u.805362
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
f : α → β
a : α
⊢ (∏ x in s, f x ^ if a = x then 1 else 0) = if a ∈ s then f a else 1
Theorem: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_eq_zero
File: Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

tactic: unfold mapMono
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
i : Δ' ⟶ Δ
inst✝ : Mono i
h₁ : Δ ≠ Δ'
h₂ : ¬Isδ₀ i
⊢ mapMono K i = 0

tactic: rw [Ne.def] at h₁
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
i : Δ' ⟶ Δ
inst✝ : Mono i
h₁ : Δ ≠ Δ'
h₂ : ¬Isδ₀ i
⊢ (if h : Δ = Δ' then eqToHom (_ : HomologicalComplex.X K (len Δ) = HomologicalComplex.X K (len Δ'))
    else if h : Isδ₀ i then HomologicalComplex.d K (len Δ) (len Δ') else 0) =
    0

tactic: split_ifs
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
i : Δ' ⟶ Δ
inst✝ : Mono i
h₁ : ¬Δ = Δ'
h₂ : ¬Isδ₀ i
⊢ (if h : Δ = Δ' then eqToHom (_ : HomologicalComplex.X K (len Δ) = HomologicalComplex.X K (len Δ'))
    else if h : Isδ₀ i then HomologicalComplex.d K (len Δ) (len Δ') else 0) =
    0

tactic: rfl
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
i : Δ' ⟶ Δ
inst✝ : Mono i
h₁ : ¬Δ = Δ'
h₂ : ¬Isδ₀ i
⊢ 0 = 0
Theorem: MeasureTheory.AEStronglyMeasurable.stronglyMeasurableAtFilter
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rwa [Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
E : Type ?u.1262952
F : Type ?u.1262955
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace β
l l' : Filter α
f g : α → β
μ ν : Measure α
h : AEStronglyMeasurable f μ
⊢ AEStronglyMeasurable f (Measure.restrict μ univ)
Theorem: mul_eq_one_iff'
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: rintro ⟨rfl, rfl⟩
state_before: α : Type u_1
β : Type ?u.54759
inst✝³ : MulOneClass α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
ha : 1 ≤ a
hb : 1 ≤ b
⊢ a = 1 ∧ b = 1 → a * b = 1

tactic: rw [mul_one]
state_before: case intro
α : Type u_1
β : Type ?u.54759
inst✝³ : MulOneClass α
inst✝² : PartialOrder α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
ha hb : 1 ≤ 1
⊢ 1 * 1 = 1
Theorem: Finset.singleton_inter_of_not_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_inter, mem_singleton]
state_before: α : Type u_1
β : Type ?u.187446
γ : Type ?u.187449
inst✝ : DecidableEq α
s✝ s₁ s₂ t t₁ t₂ u v : Finset α
a✝ b a : α
s : Finset α
H : ¬a ∈ s
⊢ ∀ (x : α), ¬x ∈ {a} ∩ s

tactic: rintro x ⟨rfl, h⟩
state_before: α : Type u_1
β : Type ?u.187446
γ : Type ?u.187449
inst✝ : DecidableEq α
s✝ s₁ s₂ t t₁ t₂ u v : Finset α
a✝ b a : α
s : Finset α
H : ¬a ∈ s
⊢ ∀ (x : α), ¬(x = a ∧ x ∈ s)

tactic: exact H h
state_before: case intro
α : Type u_1
β : Type ?u.187446
γ : Type ?u.187449
inst✝ : DecidableEq α
s✝ s₁ s₂ t t₁ t₂ u v : Finset α
a b : α
s : Finset α
x : α
h : x ∈ s
H : ¬x ∈ s
⊢ False
Theorem: Int.eq_pow_of_mul_eq_pow_bit1_left
File: Mathlib/RingTheory/Int/Basic.lean

tactic: obtain ⟨d, hd⟩ := exists_associated_pow_of_mul_eq_pow' hab h
state_before: a b c : ℤ
hab : IsCoprime a b
k : ℕ
h : a * b = c ^ bit1 k
⊢ ∃ d, a = d ^ bit1 k

tactic: replace hd := hd.symm
state_before: case intro
a b c : ℤ
hab : IsCoprime a b
k : ℕ
h : a * b = c ^ bit1 k
d : ℤ
hd : Associated (d ^ bit1 k) a
⊢ ∃ d, a = d ^ bit1 k

tactic: rw [associated_iff_natAbs, natAbs_eq_natAbs_iff, ← neg_pow_bit1] at hd
state_before: case intro
a b c : ℤ
hab : IsCoprime a b
k : ℕ
h : a * b = c ^ bit1 k
d : ℤ
hd : Associated a (d ^ bit1 k)
⊢ ∃ d, a = d ^ bit1 k

tactic: obtain rfl | rfl := hd <;> exact ⟨_, rfl⟩
state_before: case intro
a b c : ℤ
hab : IsCoprime a b
k : ℕ
h : a * b = c ^ bit1 k
d : ℤ
hd : a = d ^ bit1 k ∨ a = (-d) ^ bit1 k
⊢ ∃ d, a = d ^ bit1 k
Theorem: List.rotate_eq_singleton_iff
File: Mathlib/Data/List/Rotate.lean

tactic: rw [rotate_eq_iff, rotate_singleton]
state_before: α : Type u
l : List α
n : ℕ
x : α
⊢ rotate l n = [x] ↔ l = [x]
Theorem: Set.Ioc_insert_left
File: Mathlib/Data/Set/Intervals/Basic.lean

tactic: rw [insert_eq, union_comm, Ioc_union_left h]
state_before: α : Type u_1
β : Type ?u.48253
inst✝ : PartialOrder α
a b c : α
h : a ≤ b
⊢ insert a (Ioc a b) = Icc a b
Theorem: tendsto_norm_one
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa using tendsto_norm_div_self (1 : E)
state_before: 𝓕 : Type ?u.458542
𝕜 : Type ?u.458545
α : Type ?u.458548
ι : Type ?u.458551
κ : Type ?u.458554
E : Type u_1
F : Type ?u.458560
G : Type ?u.458563
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ Tendsto (fun a => ‖a‖) (𝓝 1) (𝓝 0)
Theorem: MvPolynomial.totalDegree_finset_sum
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: induction' s using Finset.cons_induction with a s has hind
state_before: R : Type u
S : Type v
σ : Type u_2
τ : Type ?u.472729
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
ι : Type u_1
s : Finset ι
f : ι → MvPolynomial σ R
⊢ totalDegree (Finset.sum s f) ≤ Finset.sup s fun i => totalDegree (f i)

tactic: exact zero_le _
state_before: case empty
R : Type u
S : Type v
σ : Type u_2
τ : Type ?u.472729
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
ι : Type u_1
f : ι → MvPolynomial σ R
⊢ totalDegree (Finset.sum ∅ f) ≤ Finset.sup ∅ fun i => totalDegree (f i)

tactic: rw [Finset.sum_cons, Finset.sup_cons, sup_eq_max]
state_before: case cons
R : Type u
S : Type v
σ : Type u_2
τ : Type ?u.472729
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
ι : Type u_1
f : ι → MvPolynomial σ R
a : ι
s : Finset ι
has : ¬a ∈ s
hind : totalDegree (Finset.sum s f) ≤ Finset.sup s fun i => totalDegree (f i)
⊢ totalDegree (Finset.sum (Finset.cons a s has) f) ≤ Finset.sup (Finset.cons a s has) fun i => totalDegree (f i)

tactic: exact (MvPolynomial.totalDegree_add _ _).trans (max_le_max le_rfl hind)
state_before: case cons
R : Type u
S : Type v
σ : Type u_2
τ : Type ?u.472729
r : R
e : ℕ
n m : σ
s✝ : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
ι : Type u_1
f : ι → MvPolynomial σ R
a : ι
s : Finset ι
has : ¬a ∈ s
hind : totalDegree (Finset.sum s f) ≤ Finset.sup s fun i => totalDegree (f i)
⊢ totalDegree (f a + ∑ x in s, f x) ≤ max (totalDegree (f a)) (Finset.sup s fun i => totalDegree (f i))
Theorem: MvPolynomial.weightedHomogeneousSubmodule_eq_finsupp_supported
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: ext x
state_before: R : Type u_1
M : Type u_3
inst✝¹ : CommSemiring R
σ : Type u_2
inst✝ : AddCommMonoid M
w : σ → M
m : M
⊢ weightedHomogeneousSubmodule R w m = supported R R {d | ↑(weightedDegree' w) d = m}

tactic: rw [mem_supported, Set.subset_def]
state_before: case h
R : Type u_1
M : Type u_3
inst✝¹ : CommSemiring R
σ : Type u_2
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ x ∈ supported R R {d | ↑(weightedDegree' w) d = m}

tactic: simp only [Finsupp.mem_support_iff, mem_coe]
state_before: case h
R : Type u_1
M : Type u_3
inst✝¹ : CommSemiring R
σ : Type u_2
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ (x_1 : σ →₀ ℕ), x_1 ∈ ↑x.support → x_1 ∈ {d | ↑(weightedDegree' w) d = m}

tactic: rfl
state_before: case h
R : Type u_1
M : Type u_3
inst✝¹ : CommSemiring R
σ : Type u_2
inst✝ : AddCommMonoid M
w : σ → M
m : M
x : MvPolynomial σ R
⊢ x ∈ weightedHomogeneousSubmodule R w m ↔ ∀ (x_1 : σ →₀ ℕ), ↑x x_1 ≠ 0 → x_1 ∈ {d | ↑(weightedDegree' w) d = m}
Theorem: Set.pairwise_disjoint_Ioc_mul_zpow
File: Mathlib/Data/Set/Intervals/Group.lean

tactic: simp_rw [Function.onFun, Set.disjoint_iff]
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
⊢ Pairwise (Disjoint on fun n => Ioc (a * b ^ n) (a * b ^ (n + 1)))

tactic: intro m n hmn x hx
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
⊢ Pairwise fun x y => Ioc (a * b ^ x) (a * b ^ (x + 1)) ∩ Ioc (a * b ^ y) (a * b ^ (y + 1)) ⊆ ∅

tactic: apply hmn
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
⊢ x ∈ ∅

tactic: have hb : 1 < b := by
  have : a * b ^ m < a * b ^ (m + 1) := hx.1.1.trans_le hx.1.2
  rwa [mul_lt_mul_iff_left, ← mul_one (b ^ m), zpow_add_one, mul_lt_mul_iff_left] at this
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
⊢ m = n

tactic: have i1 := hx.1.1.trans_le hx.2.2
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
hb : 1 < b
⊢ m = n

tactic: have i2 := hx.2.1.trans_le hx.1.2
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
hb : 1 < b
i1 : a * b ^ m < a * b ^ (n + 1)
⊢ m = n

tactic: rw [mul_lt_mul_iff_left, zpow_lt_zpow_iff hb, Int.lt_add_one_iff] at i1 i2
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
hb : 1 < b
i1 : a * b ^ m < a * b ^ (n + 1)
i2 : a * b ^ n < a * b ^ (m + 1)
⊢ m = n

tactic: exact le_antisymm i1 i2
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
hb : 1 < b
i1 : m ≤ n
i2 : n ≤ m
⊢ m = n

tactic: have : a * b ^ m < a * b ^ (m + 1) := hx.1.1.trans_le hx.1.2
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
⊢ 1 < b

tactic: rwa [mul_lt_mul_iff_left, ← mul_one (b ^ m), zpow_add_one, mul_lt_mul_iff_left] at this
state_before: α : Type u_1
inst✝ : OrderedCommGroup α
a b : α
m n : ℤ
hmn : m ≠ n
x : α
hx : x ∈ Ioc (a * b ^ m) (a * b ^ (m + 1)) ∩ Ioc (a * b ^ n) (a * b ^ (n + 1))
this : a * b ^ m < a * b ^ (m + 1)
⊢ 1 < b
Theorem: mul_neg_geom_series
File: Mathlib/Analysis/SpecificLimits/Normed.lean

tactic: have := (NormedRing.summable_geometric_of_norm_lt_1 x h).hasSum.mul_left (1 - x)
state_before: α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
⊢ ((1 - x) * ∑' (i : ℕ), x ^ i) = 1

tactic: refine' tendsto_nhds_unique this.tendsto_sum_nat _
state_before: α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this : HasSum (fun i => (1 - x) * x ^ i) ((1 - x) * ∑' (b : ℕ), x ^ b)
⊢ ((1 - x) * ∑' (i : ℕ), x ^ i) = 1

tactic: have : Tendsto (fun n : ℕ ↦ 1 - x ^ n) atTop (nhds 1) := by
  simpa using tendsto_const_nhds.sub (tendsto_pow_atTop_nhds_0_of_norm_lt_1 h)
state_before: α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this : HasSum (fun i => (1 - x) * x ^ i) ((1 - x) * ∑' (b : ℕ), x ^ b)
⊢ Tendsto (fun n => ∑ i in Finset.range n, (1 - x) * x ^ i) atTop (𝓝 1)

tactic: convert← this
state_before: α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this✝ : HasSum (fun i => (1 - x) * x ^ i) ((1 - x) * ∑' (b : ℕ), x ^ b)
this : Tendsto (fun n => 1 - x ^ n) atTop (𝓝 1)
⊢ Tendsto (fun n => ∑ i in Finset.range n, (1 - x) * x ^ i) atTop (𝓝 1)

tactic: rw [← mul_neg_geom_sum, Finset.mul_sum]
state_before: case h.e'_3.h
α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this✝ : HasSum (fun i => (1 - x) * x ^ i) ((1 - x) * ∑' (b : ℕ), x ^ b)
this : Tendsto (fun n => 1 - x ^ n) atTop (𝓝 1)
x✝ : ℕ
⊢ 1 - x ^ x✝ = ∑ i in Finset.range x✝, (1 - x) * x ^ i

tactic: simpa using tendsto_const_nhds.sub (tendsto_pow_atTop_nhds_0_of_norm_lt_1 h)
state_before: α : Type ?u.1257326
β : Type ?u.1257329
ι : Type ?u.1257332
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : R
h : ‖x‖ < 1
this : HasSum (fun i => (1 - x) * x ^ i) ((1 - x) * ∑' (b : ℕ), x ^ b)
⊢ Tendsto (fun n => 1 - x ^ n) atTop (𝓝 1)
Theorem: finprod_mem_union''
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← finprod_mem_inter_mulSupport f s, ← finprod_mem_inter_mulSupport f t, ←
  finprod_mem_union hst hs ht, ← union_inter_distrib_right, finprod_mem_inter_mulSupport]
state_before: α : Type u_1
β : Type ?u.337656
ι : Type ?u.337659
G : Type ?u.337662
M : Type u_2
N : Type ?u.337668
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
hst : Disjoint (s ∩ mulSupport f) (t ∩ mulSupport f)
hs : Set.Finite (s ∩ mulSupport f)
ht : Set.Finite (t ∩ mulSupport f)
⊢ (∏ᶠ (i : α) (_ : i ∈ s ∪ t), f i) = (∏ᶠ (i : α) (_ : i ∈ s), f i) * ∏ᶠ (i : α) (_ : i ∈ t), f i