/- Copyright 2026 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ import FormalConjecturesUtil

Erdős Problem 1049

References:

    erdosproblems.com/1049

    [Er48] Erdős, P., On arithmetical properties of Lambert series. J. Indian Math. Soc. (N.S.) (1948), 63-66.

namespace Erdos1049 open ArithmeticFunction Filter

Let $t>1$ be a rational number. Is $\sum_{n=1}^\infty\frac{1}{t^n-1}=\sum_{n=1}^\infty \frac{\tau(n)}{t^n}$ irrational, where $\tau(n)$ counts the divisors of $n$?

A conjecture of Chowla.

@[category research open, AMS 11] theorem declaration uses 'sorry'erdos_1049 : answer(sorry) t : , t > 1 Irrational (∑' n : ℕ+, 1 / ((t : ) ^ (n : ) - 1)) := True t > 1, Irrational (∑' (n : ℕ+), 1 / (t ^ n - 1)) All goals completed! 🐙

Erdős [Er48] proved that this is true if $t\geq 2$ is an integer.

@[category research solved, AMS 11] theorem declaration uses 'sorry'erdos_1049.variants.geq_2_integer : t : , t 2 Irrational (∑' n : ℕ+, 1 / ((t : ) ^ (n : ) - 1)) := t 2, Irrational (∑' (n : ℕ+), 1 / (t ^ n - 1)) All goals completed! 🐙

Convergent case (|t| > 1).

Substitute r := t⁻¹ so ‖r‖ < 1, then apply Mathlib's series identity tsum_pow_div_one_sub_eq_tsum_sigma at k = 0: $$\sum_{n \ge 1} \frac{r^n}{1 - r^n} = \sum_{n \ge 1} \sigma_0(n) \cdot r^n.$$ After clearing denominators, both sides match the Lambert identity: LHS becomes 1/(t^n - 1) and RHS becomes τ(n) / t^n.

@[category API, AMS 11] private lemma lambert_convergent (t : ) (ht : 1 < |t|) : ∑' n : ℕ+, 1 / (t ^ (n : ) - 1) = ∑' n : ℕ+, ((n : ).divisors.card : ) / (t ^ (n : )) := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- `|t| > 1` implies `t ≠ 0`, hence `t^n ≠ 0` for all n. have ht0 : t 0 := fun h => t:ht:1 < |t|h:t = 0False ht:1 < |0|False; ht:1 < 0False; All goals completed! 🐙 t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- Substitution `r := t⁻¹`, so `|r| < 1`. t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rfl∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n have hr_norm : r < 1 := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rfl|t|⁻¹ < 1; All goals completed! 🐙 -- Apply the Mathlib identity. Now reduce each side of our goal to its form. t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n)t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0∑' (n : ℕ+), (↑n).divisors.card / t ^ n = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n -- LHS: show `1 / (t^n - 1) = r^n / (1 - r^n)`. After substituting `r = 1/t`, -- this is the algebraic identity `1/(t^n - 1) = (1/t^n) / (1 - 1/t^n)`, -- valid when `t^n ≠ 0` and `t^n ≠ 1`. t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0 (b : ℕ+), 1 / (t ^ b - 1) = b ^ 0 * r ^ b / (1 - r ^ b); t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+1 / (t ^ n - 1) = n ^ 0 * r ^ n / (1 - r ^ n) t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn n1 / (t ^ n - 1) = n ^ 0 * r ^ n / (1 - r ^ n) have hrn : r ^ (n : ) = (t ^ (n : ))⁻¹ := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 -- `t^n ≠ 1`: would imply `|t|^n = 1`, but `|t| > 1` gives `|t|^n > 1` since `n ≥ 1`. have hne1 : t ^ (n : ) - 1 0 := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn nhrn:r ^ n = (t ^ n)⁻¹ := Eq.mpr (_root_.id (congrArg (fun _a => _a ^ n = (t ^ n)⁻¹) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a = (t ^ n)⁻¹) (inv_pow t n))) (Eq.refl (t ^ n)⁻¹))hc:t ^ n - 1 = 0False have ht1 : t ^ (n : ) = 1 := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 have habs1 : |t| ^ (n : ) = 1 := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn nhrn:r ^ n = (t ^ n)⁻¹ := Eq.mpr (_root_.id (congrArg (fun _a => _a ^ n = (t ^ n)⁻¹) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a = (t ^ n)⁻¹) (inv_pow t n))) (Eq.refl (t ^ n)⁻¹))hc:t ^ n - 1 = 0ht1:t ^ n = 1 := Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt (t ^ n) 1 (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (neg_eq_zero.mpr (sub_eq_zero_of_eq hc)) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))) (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (sub_eq_zero_of_eq hc) (Mathlib.Tactic.Linarith.sub_neg_of_lt a))))|1| = 1; All goals completed! 🐙 t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn nhrn:r ^ n = (t ^ n)⁻¹ := Eq.mpr (_root_.id (congrArg (fun _a => _a ^ n = (t ^ n)⁻¹) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a = (t ^ n)⁻¹) (inv_pow t n))) (Eq.refl (t ^ n)⁻¹))hc:t ^ n - 1 = 0ht1:t ^ n = 1 := Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt (t ^ n) 1 (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (neg_eq_zero.mpr (sub_eq_zero_of_eq hc)) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))) (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (sub_eq_zero_of_eq hc) (Mathlib.Tactic.Linarith.sub_neg_of_lt a))))habs1:|t| ^ n = 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a = 1) (Eq.symm (abs_pow t n)))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) ht1)) (of_eq_true (Eq.trans (congrArg (fun x => x = 1) abs_one) (eq_self 1))))hlt:1 < |t| ^ n := one_lt_pow₀ ht (LT.lt.ne' (PNat.pos n))False All goals completed! 🐙 t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn nhrn:r ^ n = (t ^ n)⁻¹ := Eq.mpr (_root_.id (congrArg (fun _a => _a ^ n = (t ^ n)⁻¹) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a = (t ^ n)⁻¹) (inv_pow t n))) (Eq.refl (t ^ n)⁻¹))hne1:t ^ n - 1 0 := fun hc => have ht1 := Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt (t ^ n) 1 (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (neg_eq_zero.mpr (sub_eq_zero_of_eq hc)) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))) (Not.intro fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero ((Int.negOfNat 1).rawCast + (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf t) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (t ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (t ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero t (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (sub_eq_zero_of_eq hc) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))); have habs1 := Eq.mpr (_root_.id (congrArg (fun _a => _a = 1) (Eq.symm (abs_pow t n)))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) ht1)) (of_eq_true (Eq.trans (congrArg (fun x => x = 1) abs_one) (eq_self 1)))); have hlt := one_lt_pow₀ ht (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.lt_of_eq_of_lt (sub_eq_zero_of_eq habs1) (Mathlib.Tactic.Linarith.sub_neg_of_lt hlt))))1 / (t ^ n - 1) = n ^ 0 * (t ^ n)⁻¹ / (1 - (t ^ n)⁻¹); All goals completed! 🐙 -- RHS: `σ_0(n) · r^n = τ(n) / t^n` since `σ_0 = τ` and `r = 1/t`. t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0∑' (n : ℕ+), (↑n).divisors.card / t ^ n = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0 (b : ℕ+), (↑b).divisors.card / t ^ b = ((sigma 0) b) * r ^ b; t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+(↑n).divisors.card / t ^ n = ((sigma 0) n) * r ^ n t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn n(↑n).divisors.card / t ^ n = ((sigma 0) n) * r ^ n have hrn : r ^ (n : ) = (t ^ (n : ))⁻¹ := t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 t:ht:1 < |t|ht0:t 0 := fun h => Eq.ndrec (motive := fun t => 1 < |t| False) (fun ht => False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_neg (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_neg_of_lt (Eq.mp (congrArg (LT.lt 1) abs_zero) ht)))))) (Eq.symm h) hthtn: (n : ), t ^ n 0 := fun n => pow_ne_zero n ht0r: := t⁻¹hr_def:r = t⁻¹ := rflhr_norm:r < 1 := Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (Real.norm_eq_abs r))) (Eq.mpr (_root_.id (congrArg (fun _a => |_a| < 1) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a < 1) (abs_inv t))) (inv_lt_one_of_one_lt₀ ht)))h:∑' (n : ℕ+), n ^ 0 * r ^ n / (1 - r ^ n) = ∑' (n : ℕ+), ((sigma 0) n) * r ^ n := tsum_pow_div_one_sub_eq_tsum_sigma hr_norm 0n:ℕ+hp:t ^ n 0 := htn nhrn:r ^ n = (t ^ n)⁻¹ := Eq.mpr (_root_.id (congrArg (fun _a => _a ^ n = (t ^ n)⁻¹) hr_def)) (Eq.mpr (_root_.id (congrArg (fun _a => _a = (t ^ n)⁻¹) (inv_pow t n))) (Eq.refl (t ^ n)⁻¹))(↑n).divisors.card / t ^ n = (↑n).divisors.card * (t ^ n)⁻¹; All goals completed! 🐙

Divergent case (|t| ≤ 1).

Both tsums equal 0 in this regime, but for different reasons in each sub-case. We split on t ∈ {1, 0, -1} and the generic |t| < 1, t ≠ 0 remainder, and use the same key non-summability lemma below to handle the cases where the series diverges.

    t = 1: every LHS term is 1 / (1 - 1) = 0 (Lean convention), so the LHS sum is trivially 0. RHS is Σ τ(n), non-summable.

    t = 0: every RHS term is τ(n) / 0 = 0 (Lean convention), so the RHS sum is trivially 0. LHS is Σ (-1), non-summable.

    t = -1: alternating; LHS vanishes at even n but odd n give terms of magnitude 1/2, an infinite set. RHS terms have magnitude τ(n) ≥ 1.

    |t| < 1, t ≠ 0: standard; bounded denominator gives lower-bounded reciprocal on LHS, and |t^n| ≤ 1 plus τ(n) ≥ 1 gives the RHS bound.

In every case, Lean's tsum_eq_zero_of_not_summable collapses the non- summable side to 0, matching the 0 on the other side.

@[category API, AMS 11] private lemma lambert_divergent (t : ) (ht : |t| 1) : ∑' n : ℕ+, 1 / (t ^ (n : ) - 1) = ∑' n : ℕ+, ((n : ).divisors.card : ) / (t ^ (n : )) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- `key`: a function with infinitely many terms bounded away from zero is -- not summable. Standard contrapositive of `Summable.tendsto_cofinite_zero`. have key : (f : ℕ+ ) (c : ), 0 < c Set.Infinite {n : ℕ+ | c |f n|} ¬Summable f := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n intro f t:ht:|t| 1f:ℕ+ c:0 < c {n | c |f n|}.Infinite ¬Summable f t:ht:|t| 1f:ℕ+ c:hc:0 < c{n | c |f n|}.Infinite ¬Summable f t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinite¬Summable f t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fFalse t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh:Tendsto f cofinite (nhds 0) := Summable.tendsto_cofinite_zero hsumFalse t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh: ε > 0, ∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < εFalse t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh: ε > 0, ∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < εh1:∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < c := h c hcFalse t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh: ε > 0, ∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < εh1:{x | ¬dist (f x) 0 < c}.FiniteFalse t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh: ε > 0, ∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < εh1:{x | ¬dist (f x) 0 < c}.Finiten:ℕ+hn:n {n | c |f n|}n {x | ¬dist (f x) 0 < c} t:ht:|t| 1f:ℕ+ c:hc:0 < chinf:{n | c |f n|}.Infinitehsum:Summable fh: ε > 0, ∀ᶠ (x : ℕ+) in cofinite, dist (f x) 0 < εh1:{x | ¬dist (f x) 0 < c}.Finiten:ℕ+hn:n {n | c |f n|}c |f n| All goals completed! 🐙 -- Number of divisors of `n ∈ ℕ+` is at least 1 (since `1 ∈ n.divisors`). have hcard_pos : (n : ℕ+), (1 : ) ((n : ).divisors.card : ) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)n:ℕ+1 (↑n).divisors.card have : 0 < (n : ).divisors.card := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)n:ℕ+(↑n).divisors.Nonempty All goals completed! 🐙 All goals completed! 🐙 -- Case t = 1: LHS terms are 1/0 = 0 by Lean's convention, so LHS sum = 0. -- RHS terms are τ(n)/1 = τ(n) ≥ 1, so RHS is non-summable. t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:t = 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ nt:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:t = 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1∑' (n : ℕ+), 1 / (1 ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / 1 ^ n have hLzero : n : ℕ+, (1 : ) / ((1 : ) ^ (n : ) - 1) = 0 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1n:ℕ+1 / (1 ^ n - 1) = 0; All goals completed! 🐙 key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))0 = ∑' (n : ℕ+), (↑n).divisors.card / 1 ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))∑' (n : ℕ+), (↑n).divisors.card / 1 ^ n = 0; key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))¬Summable fun b => (↑b).divisors.card / 1 ^ b apply key _ 1 (key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))0 < 1 All goals completed! 🐙) key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0)){n | 1 |(↑n).divisors.card / 1 ^ n|} = Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))n:ℕ+n {n | 1 |(↑n).divisors.card / 1 ^ n|} n Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))n:ℕ+1 |(↑n).divisors.card| key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1hLzero: (n : ℕ+), 1 / (1 ^ n - 1) = 0 := fun n => of_eq_true (Eq.trans (congrArg (fun x => x = 0) (Eq.trans (congrArg (HDiv.hDiv 1) (Eq.trans (congrArg (fun x => x - 1) (one_pow n)) (sub_self 1))) (div_zero 1))) (eq_self 0))n:ℕ+1 (↑n).divisors.card; All goals completed! 🐙 -- Case t = 0: RHS terms are τ(n)/0 = 0 by Lean's convention, so RHS sum = 0. -- LHS terms are 1/(0 - 1) = -1, so LHS is non-summable. t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:t = 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ nt:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:t = 0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1∑' (n : ℕ+), 1 / (0 ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / 0 ^ n have hRzero : n : ℕ+, ((n : ).divisors.card : ) / ((0 : ) ^ (n : )) = 0 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1n:ℕ+(↑n).divisors.card / 0 ^ n = 0; key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1n:ℕ+(↑n).divisors.card / 0 = 0; All goals completed! 🐙 key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0)))∑' (n : ℕ+), 1 / (0 ^ n - 1) = 0 key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0)))¬Summable fun b => 1 / (0 ^ b - 1) apply key _ 1 (key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0)))0 < 1 All goals completed! 🐙) key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0))){n | 1 |1 / (0 ^ n - 1)|} = Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0)))n:ℕ+n {n | 1 |1 / (0 ^ n - 1)|} n Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|0| 1ht1:¬0 = 1hRzero: (n : ℕ+), (↑n).divisors.card / 0 ^ n = 0 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => (↑n).divisors.card / _a = 0) (zero_pow (LT.lt.ne' (PNat.pos n))))) (of_eq_true (Eq.trans (congrArg (fun x => x = 0) (div_zero (↑n).divisors.card)) (eq_self 0)))n:ℕ+1 |1 / -1| All goals completed! 🐙 -- Case t = -1: alternating signs make `1/(t^n - 1)` vanish at even n but -- equal -1/2 at odd n. The set of odd `n ∈ ℕ+` is infinite, which is enough -- to invoke `key` on the LHS. RHS magnitude is τ(n) ≥ 1 everywhere. t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:t = -1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ nt:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:t = -1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0∑' (n : ℕ+), 1 / ((-1) ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / (-1) ^ n -- Construct the infinite set of odd positive naturals via the injection -- `k ↦ 2k + 1`, which lands in `ℕ+` and is always odd. have hinf_odd : Set.Infinite {n : ℕ+ | Odd (n : )} := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0Function.Injective fun k => 2 * k + 1, key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0 (x : ), 2 * x + 1, {n | Odd n} key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0Function.Injective fun k => 2 * k + 1, intro a key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0a:b:(fun k => 2 * k + 1, ) a = (fun k => 2 * k + 1, ) b a = b key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0a:b:hab:(fun k => 2 * k + 1, ) a = (fun k => 2 * k + 1, ) ba = b; key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0a:b:hab:2 * a + 1 = 2 * b + 1a = b; All goals completed! 🐙 key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0 (x : ), 2 * x + 1, {n | Odd n} key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0k:2 * k + 1, {n | Odd n}; key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0k:Odd (2 * k + 1); All goals completed! 🐙 have hL : ¬ Summable (fun n : ℕ+ => 1 / (((-1 : )) ^ (n : ) - 1)) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n apply key _ (1/2) (key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)0 < 1 / 2 All goals completed! 🐙) key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl){n | Odd n} {n | 1 / 2 |1 / ((-1) ^ n - 1)|} intro n key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)n:ℕ+hn:n {n | Odd n}n {n | 1 / 2 |1 / ((-1) ^ n - 1)|} -- For odd n: (-1)^n = -1, so 1/((-1)^n - 1) = 1/(-2), magnitude 1/2. key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)n:ℕ+hn:n {n | Odd n}1 / 2 |1 / ((-1) ^ n - 1)| key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)n:ℕ+hn:n {n | Odd n}1 / 2 |1 / (-1 - 1)|; All goals completed! 🐙 have hR : ¬ Summable (fun n : ℕ+ => ((n : ).divisors.card : ) / ((-1 : ) ^ (n : ))) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n apply key _ 1 (key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true))))0 < 1 All goals completed! 🐙) key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true)))){n | 1 |(↑n).divisors.card / (-1) ^ n|} = Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true))))n:ℕ+n {n | 1 |(↑n).divisors.card / (-1) ^ n|} n Set.univ key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true))))n:ℕ+1 |(↑n).divisors.card / (-1) ^ n| -- |(-1)^n| = 1, so |τ(n) / (-1)^n| = τ(n) ≥ 1. key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true))))n:ℕ+1 |(↑n).divisors.card| key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0hinf_odd:{n | Odd n}.Infinite := Set.infinite_of_injective_forall_mem (fun a b hab => Decidable.byContradiction fun a_1 => lambert_divergent._proof_3 (Eq.mp (congrArg (fun _a => _a) (Subtype.mk.injEq (2 * a + 1) (Nat.succ_pos (2 * a)) (2 * b + 1) (Nat.succ_pos (2 * b)))) hab) a_1) fun k => _root_.id (Exists.intro k rfl)hL:¬Summable fun n => 1 / ((-1) ^ n - 1) := key (fun n => 1 / ((-1) ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) ((fun h => Set.Infinite.mono h hinf_odd) fun n hn => _root_.id (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 |1 / (_a - 1)|) (Odd.neg_one_pow hn))) (Mathlib.Meta.NormNum.isRat_le_true (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2)))) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.isNNRat_abs_neg (Mathlib.Meta.NormNum.isRat_div (Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNNRat.to_isRat (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one))) (Mathlib.Meta.NormNum.isRat_inv_neg (Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.isInt_sub (Eq.refl HSub.hSub) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Eq.refl (Int.negOfNat 2))))) (Eq.refl ((Int.ofNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))) (Eq.refl true))))n:ℕ+1 (↑n).divisors.card All goals completed! 🐙 All goals completed! 🐙 -- Remaining case: |t| ≤ 1 with t ∉ {1, 0, -1}, equivalently |t| < 1 and t ≠ 0. t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- First narrow `|t| ≤ 1` to `|t| < 1` using the case exclusions. have habs_lt : |t| < 1 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1h:|t| < 1|t| < 1t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1h:|t| = 1|t| < 1 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1h:|t| < 1|t| < 1 All goals completed! 🐙 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1h:|t| = 1|t| < 1 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1h:|t| = 1False key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1ht1:¬1 = 1ht0:¬1 = 0htneg1:¬1 = -1h:|1| = 1Falsekey: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0htneg1:¬-1 = -1h:|(-1)| = 1False key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|1| 1ht1:¬1 = 1ht0:¬1 = 0htneg1:¬1 = -1h:|1| = 1False All goals completed! 🐙 key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht:|(-1)| 1ht1:¬-1 = 1ht0:¬-1 = 0htneg1:¬-1 = -1h:|(-1)| = 1False All goals completed! 🐙 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- Since `|t| < 1`, `|t^n| ≤ 1` for all `n ∈ ℕ+`. have hbound : (n : ℕ+), |t ^ (n : )| 1 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0n:ℕ+|t ^ n| 1; t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0n:ℕ+|t| ^ n 1; All goals completed! 🐙 -- Since `|t| < 1` strictly, `t^n ≠ 1` (else `|t|^n = 1` but `|t|^n ≤ |t| < 1`). have htn_ne_one : (n : ℕ+), t ^ (n : ) 1 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n intro n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))n:ℕ+hn:t ^ n = 1False have h1 : |t ^ (n : )| = 1 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))n:ℕ+hn:t ^ n = 1|1| = 1; All goals completed! 🐙 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))n:ℕ+hn:t ^ n = 1h1:|t| ^ n = 1False have hle : |t| ^ (n : ) |t| := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 All goals completed! 🐙 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n -- LHS: `|t^n - 1| ≤ |t^n| + 1 ≤ 2`, so `|1 / (t^n - 1)| ≥ 1/2` everywhere. have hL : ¬ Summable (fun n : ℕ+ => 1 / (t ^ (n : ) - 1)) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n apply key _ (1/2) (t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht00 < 1 / 2 All goals completed! 🐙) t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0{n | 1 / 2 |1 / (t ^ n - 1)|} = Set.univ t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+n {n | 1 / 2 |1 / (t ^ n - 1)|} n Set.univ t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+1 / 2 |1 / (t ^ n - 1)| have hden_bound : |t ^ (n : ) - 1| 2 := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n calc |t ^ (n : ) - 1| |t ^ (n : )| + |(1 : )| := abs_sub _ _ _ 1 + 1 := t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+|t ^ n| + |1| 1 + 1 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+this:|t ^ n| 1 := hbound n|t ^ n| + |1| 1 + 1; t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+this:|t ^ n| 1 := hbound n|t ^ n| + 1 1 + 1; All goals completed! 🐙 _ = 2 := t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+1 + 1 = 2 All goals completed! 🐙 have hden_pos : 0 < |t ^ (n : ) - 1| := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+hden_bound:|t ^ n - 1| 2 := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))t ^ n 1; All goals completed! 🐙 t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0n:ℕ+hden_bound:|t ^ n - 1| 2 := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))hden_pos:0 < |t ^ n - 1| := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n))1 / 2 * |t ^ n - 1| 1; All goals completed! 🐙 -- RHS: `|τ(n) / t^n| = τ(n) / |t^n| ≥ τ(n) ≥ 1` since `|t^n| ≤ 1`. have hR : ¬ Summable (fun n : ℕ+ => ((n : ).divisors.card : ) / (t ^ (n : ))) := t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n apply key _ 1 (t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)0 < 1 All goals completed! 🐙) t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ){n | 1 |(↑n).divisors.card / t ^ n|} = Set.univ t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+n {n | 1 |(↑n).divisors.card / t ^ n|} n Set.univ t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+1 |(↑n).divisors.card / t ^ n| t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+1 * |t ^ n| |(↑n).divisors.card| t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+1 * |t ^ n| (↑n).divisors.card t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+this:|t ^ n| 1 := hbound n1 * |t ^ n| (↑n).divisors.card t:ht:|t| 1key: (f : ℕ+ ) (c : ), 0 < c {n | c |f n|}.Infinite ¬Summable f := fun f c hc hinf hsum => have h := Summable.tendsto_cofinite_zero hsum; have h1 := Eq.mp (congrArg (fun _a => _a) (propext Metric.tendsto_nhds)) h c hc; hinf (Set.Finite.subset (Eq.mp (congrArg (fun _a => _a) (propext eventually_cofinite)) h1) fun n hn => Eq.mpr (_root_.id (congrArg (fun x => n setOf x) (funext fun x => Eq.trans (congrArg (fun x => ¬|x| < c) (sub_zero (f x))) lambert_divergent._simp_1))) hn)hcard_pos: (n : ℕ+), 1 (↑n).divisors.card := fun n => have this := Finset.card_pos.mpr (Exists.intro 1 (Nat.one_mem_divisors.mpr (LT.lt.ne' n.property))); cast (Eq.symm (Eq.trans (congrArg (fun x => x (↑n).divisors.card) (Eq.symm Nat.cast_one)) Nat.cast_le._simp_1)) thisht1:¬t = 1ht0:¬t = 0htneg1:¬t = -1habs_lt:|t| < 1 := Or.casesOn (lt_or_eq_of_le ht) (fun h => h) fun h => False.elim (Or.casesOn ((abs_eq zero_le_one).mp h) (fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => ht1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h) fun h_1 => Eq.ndrec (motive := fun t => |t| 1 ¬t = 1 ¬t = 0 ¬t = -1 |t| = 1 False) (fun ht ht1 ht0 htneg1 h => htneg1 rfl) (Eq.symm h_1) ht ht1 ht0 htneg1 h)habs_pos:0 < |t| := abs_pos.mpr ht0hbound: (n : ℕ+), |t ^ n| 1 := fun n => Eq.mpr (_root_.id (congrArg (fun _a => _a 1) (abs_pow t n))) (pow_le_one₀ (abs_nonneg t) (le_of_lt habs_lt))htn_ne_one: (n : ℕ+), t ^ n 1 := fun n hn => have h1 := Eq.mpr (_root_.id (congrArg (fun _a => |_a| = 1) hn)) abs_one; have hle := pow_le_of_le_one (abs_nonneg t) (le_of_lt habs_lt) (LT.lt.ne' (PNat.pos n)); False.elim (Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (|t| ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.pow_congr (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.single_pow (Mathlib.Tactic.Ring.mul_pow (Mathlib.Tactic.Ring.mul_pf_right (↑n) (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.one_pow (n ^ Nat.rawCast 1 * Nat.rawCast 1)))) (Mathlib.Tactic.Ring.pow_zero (|t| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_left |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.atom_pf |t|) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (|t| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (|t| ^ (n ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t| (n ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.lt_of_lt_of_eq (Mathlib.Tactic.Linarith.sub_neg_of_lt habs_lt) (neg_eq_zero.mpr (sub_eq_zero_of_eq (Eq.mp (congrArg (fun _a => _a = 1) (abs_pow t n)) h1)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le hle))))htn_ne_zero: (n : ℕ+), t ^ n 0 := fun n => pow_ne_zero (↑n) ht0hL:¬Summable fun n => 1 / (t ^ n - 1) := key (fun n => 1 / (t ^ n - 1)) (1 / 2) (Mathlib.Meta.NormNum.isNNRat_lt_true (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) (Eq.refl true)) (Eq.mpr (eq_of_heq ((fun α s s' e'_2 => Eq.casesOn (motive := fun a x => s' = a e'_2 x s.Infinite s'.Infinite) e'_2 (fun h => Eq.ndrec (motive := fun s' => (e_2 : s = s'), e_2 Eq.refl s s.Infinite s'.Infinite) (fun e_2 h => HEq.refl s.Infinite) (Eq.symm h) e'_2) (Eq.refl s') (HEq.refl e'_2)) ℕ+ {n | 1 / 2 |1 / (t ^ n - 1)|} Set.univ (Set.ext fun n => Eq.mpr (_root_.id (Eq.trans (congrArg (Iff (1 / 2 |1 / (t ^ n - 1)|)) (lambert_divergent._simp_2 n)) (iff_true (1 / 2 |1 / (t ^ n - 1)|)))) (have hden_bound := Trans.trans (Trans.trans (abs_sub (t ^ n) 1) (have this := hbound n; Eq.mpr (_root_.id (congrArg (fun _a => |t ^ n| + _a 1 + 1) abs_one)) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Mathlib.Meta.NormNum.IsNat.of_raw 1) (Eq.refl 2))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_overlap (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le this) (Mathlib.Tactic.Linarith.sub_neg_of_lt a)))))) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))); have hden_pos := Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext abs_pos))) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext sub_ne_zero))) (htn_ne_one n)); Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a) (abs_div 1 (t ^ n - 1)))) (Eq.mpr (_root_.id (congrArg (fun _a => 1 / 2 _a / |t ^ n - 1|) abs_one)) (Eq.mpr (_root_.id (congrArg (fun _a => _a) (propext (le_div_iff₀ hden_pos)))) (le_of_not_gt fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.negOfNat 2))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt (Int.negOfNat 2).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf |t ^ n - 1|) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))) (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (|t ^ n - 1| ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 2) (Mathlib.Tactic.Ring.add_pf_zero_add (|t ^ n - 1| ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 2)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 2)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero |t ^ n - 1| (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le hden_bound) (Eq.mp (congrArg (fun _a => _a < 0) (CancelDenoms.derive_trans (Eq.trans (congrArg (HSub.hSub 1) (Eq.trans (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))) (congrArg (fun x => x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2))))) (congrArg (fun x => 1 - x * |t ^ n - 1|) (Mathlib.Meta.NormNum.IsNNRat.to_eq (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 1 1)) (Eq.refl 2))) Nat.cast_one (Eq.refl 2)))) (CancelDenoms.sub_subst rfl (CancelDenoms.mul_subst (CancelDenoms.div_subst rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_div (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNNRat.to_isNat (Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))) (Mathlib.Meta.NormNum.isNNRat_inv_pos (Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) (Eq.refl (Nat.mul 2 1)) (Eq.refl 2)))))) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)))) rfl (Mathlib.Meta.NormNum.isNat_eq_true (Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl 2)) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2))))))) (Mathlib.Tactic.Linarith.mul_neg (Mathlib.Tactic.Linarith.sub_neg_of_lt a) (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero) (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 2)) (Eq.refl false))))))))))))) Set.infinite_univ)n:ℕ+this✝:|t ^ n| 1 := hbound nthis:1 (↑n).divisors.card := hcard_pos n1 * |t ^ n| (↑n).divisors.card All goals completed! 🐙 All goals completed! 🐙

The classical Lambert series identity: $\sum_{n=1}^\infty \frac{1}{t^n - 1} = \sum_{n=1}^\infty \frac{\tau(n)}{t^n}$, where $\tau(n)$ counts the divisors of $n$.

@[category textbook, AMS 11] theorem lambert_series_eq_num_divisor_sum : t : , ∑' n : ℕ+, 1 / ((t : ) ^ (n : ) - 1) = ∑' n : ℕ+, (n : ).divisors.card / ((t : ) ^ (n : )) := (t : ), ∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ nt:ht:¬1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 t:ht:¬1 < |t|∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n t:ht:|t| 1∑' (n : ℕ+), 1 / (t ^ n - 1) = ∑' (n : ℕ+), (↑n).divisors.card / t ^ n All goals completed! 🐙 end Erdos1049