Analysis I, Appendix B.2: The decimal representation of real numbers
An implementation of the decimal representation of Mathlib's real numbers ℝ.
This is separate from the way decimal numerals are already represented in Mathlib. We also represent the integer part of the natural numbers just by ℕ, avoiding using the decimal representation from the
previous section, although we still retain the Digit class.
namespace AppendixBstructure NNRealDecimal where
intPart : ℕ
fracPart : ℕ → Digitopen NNReal NNRealDecimal@[coe]
noncomputable def NNRealDecimal.toNNReal (d:NNRealDecimal) : NNReal :=
d.intPart + ∑' i, (d.fracPart i) * (10:NNReal) ^ (-i-1:ℝ)noncomputable instance NNRealDecimal.instCoeNNReal : Coe NNRealDecimal NNReal where
coe := toNNRealExercise B.2.1
theorem NNRealDecimal.toNNReal_conv (d:NNRealDecimal) :
Summable fun i ↦ (d.fracPart i) * (10:NNReal) ^ (-i-1:ℝ) := d:NNRealDecimal⊢ Summable fun i => ↑↑(d.fracPart i) * 10 ^ (-↑i - 1)
All goals completed! 🐙theorem NNRealDecimal.surj (x:NNReal) : ∃ d:NNRealDecimal, x = d := x:ℝ≥0⊢ ∃ d, x = ↑d
-- This proof is written to follow the structure of the original text.
x:ℝ≥0h:x = 0⊢ ∃ d, x = ↑dx:ℝ≥0h:¬x = 0⊢ ∃ d, x = ↑d
x:ℝ≥0h:x = 0⊢ ∃ d, x = ↑d x:ℝ≥0h:x = 0⊢ x = ↑{ intPart := 0, fracPart := fun x => 0 }; All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊⊢ ∃ d, x = ↑d
have hs (n:ℕ) : s n ≤ x * 10^n := Nat.floor_le (x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊n:ℕ⊢ 0 ≤ x * 10 ^ n All goals completed! 🐙)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)⊢ ∃ d, x = ↑d
have hdigit (n:ℕ) : ∃ a:Digit, s (n+1) = 10 * s n + (a:ℕ) := x:ℝ≥0⊢ ∃ d, x = ↑d
have hl : (10:NNReal) * s n < s (n+1) + 1 := calc
_ ≤ 10 * (x * 10^n) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕ⊢ 10 * ↑(s n) ≤ 10 * (x * 10 ^ n) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕ⊢ ↑(s n) ≤ x * 10 ^ n; All goals completed! 🐙
_ = x * 10^(n+1) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕ⊢ 10 * (x * 10 ^ n) = x * 10 ^ (n + 1) All goals completed! 🐙
_ < _ := hs' _
have hu : s (n+1) < (10:NNReal) * s n + 10 := calc
_ ≤ x * 10^(n+1) := hs (n+1)
_ = 10 * (x * 10^n) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * ↑(@_fvar.10801 _fvar.15937) < ↑(@_fvar.10801 (_fvar.15937 + 1)) + 1 :=
Trans.trans
(Trans.trans (mul_le_mul_left' (AppendixB.NNRealDecimal.surj._proof_2 _fvar.8365 _fvar.12730 _fvar.15937) 10)
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℕ (Eq.refl 1)))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.pow_one_cast (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0) (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(eq_self (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(@_fvar.15930 (_fvar.15937 + 1))⊢ x * 10 ^ (n + 1) = 10 * (x * 10 ^ n) All goals completed! 🐙
_ < 10 * (s n + 1) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * ↑(@_fvar.10801 _fvar.15937) < ↑(@_fvar.10801 (_fvar.15937 + 1)) + 1 :=
Trans.trans
(Trans.trans (mul_le_mul_left' (AppendixB.NNRealDecimal.surj._proof_2 _fvar.8365 _fvar.12730 _fvar.15937) 10)
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℕ (Eq.refl 1)))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.pow_one_cast (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0) (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(eq_self (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(@_fvar.15930 (_fvar.15937 + 1))⊢ 10 * (x * 10 ^ n) < 10 * (↑(s n) + 1) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * ↑(@_fvar.10801 _fvar.15937) < ↑(@_fvar.10801 (_fvar.15937 + 1)) + 1 :=
Trans.trans
(Trans.trans (mul_le_mul_left' (AppendixB.NNRealDecimal.surj._proof_2 _fvar.8365 _fvar.12730 _fvar.15937) 10)
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℕ (Eq.refl 1)))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.pow_one_cast (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0) (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(eq_self (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(@_fvar.15930 (_fvar.15937 + 1))⊢ x * 10 ^ n < ↑(s n) + 1; All goals completed! 🐙
_ = _ := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * ↑(@_fvar.10801 _fvar.15937) < ↑(@_fvar.10801 (_fvar.15937 + 1)) + 1 :=
Trans.trans
(Trans.trans (mul_le_mul_left' (AppendixB.NNRealDecimal.surj._proof_2 _fvar.8365 _fvar.12730 _fvar.15937) 10)
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1) +
0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf _fvar.8365)
(Mathlib.Tactic.Ring.pow_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.15937)
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℕ (Eq.refl 1)))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.pow_add (Mathlib.Tactic.Ring.pow_one_cast (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.pow_add
(Mathlib.Tactic.Ring.single_pow
(Mathlib.Tactic.Ring.pow_prod_atom (Nat.rawCast 10)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)))
(Mathlib.Tactic.Ring.pow_zero (Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ 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
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0)
(_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.8365 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 10 + 0) (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.8365 ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.8365 ^ Nat.rawCast 1 *
((Nat.rawCast 10 + 0) ^ (_fvar.15937 ^ Nat.rawCast 1 * Nat.rawCast 1) * Nat.rawCast 10) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.8365) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.8365)))
(congrArg (fun x => x * 10)
(congr (congrArg HPow.hPow (add_zero 10))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow _fvar.15937) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one _fvar.15937)))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one _fvar.15937)))))
(Mathlib.Tactic.RingNF.mul_assoc_rev _fvar.8365 (10 ^ _fvar.15937) 10)))
(add_zero (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(eq_self (_fvar.8365 * 10 ^ _fvar.15937 * 10)))))
(@_fvar.15930 (_fvar.15937 + 1))⊢ 10 * (↑(s n) + 1) = 10 * ↑(s n) + 10 All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * s n < s (n + 1) + 1hu:s (n + 1) < 10 * s n + 10⊢ ∃ a, s (n + 1) = 10 * s n + ↑a
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)n:ℕhl:10 * s n < s (n + 1) + 1hu:s (n + 1) < 10 * s n + 10d:ℕ := @_fvar.10801 (_fvar.15937 + 1) - 10 * @_fvar.10801 _fvar.15937⊢ ∃ a, s (n + 1) = 10 * s n + ↑a
have hd : d < 10 := x:ℝ≥0⊢ ∃ d, x = ↑d All goals completed! 🐙
have : s (n+1) = 10 * s n + d := x:ℝ≥0⊢ ∃ d, x = ↑d All goals completed! 🐙
All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)⊢ ∃ d, x = ↑d
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }⊢ ∃ d, x = ↑d; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }⊢ x = ↑d
have hsum (n:ℕ) : s n * (10:NNReal)^(-n:ℝ) = s 0 + ∑ i ∈ .range n, a i * (10:NNReal)^(-i-1:ℝ) := x:ℝ≥0⊢ ∃ d, x = ↑d
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }⊢ ↑(s 0) * 10 ^ (-↑0) = ↑(s 0) + ∑ i ∈ Finset.range 0, ↑↑(a i) * 10 ^ (-↑i - 1)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s (n + 1)) * 10 ^ (-↑(n + 1)) = ↑(s 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1); x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s (n + 1)) * 10 ^ (-↑(n + 1)) = ↑(s 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(10 * s n + ↑(a n)) * 10 ^ (-↑(n + 1)) = ↑(s 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1); calc
_ = s n * (10:NNReal)^(-n:ℝ) + a n * 10^(-n-1:ℝ) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(10 * s n + ↑(a n)) * 10 ^ (-↑(n + 1)) = ↑(s n) * 10 ^ (-↑n) + ↑↑(a n) * 10 ^ (-↑n - 1)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ 10 * ↑(s n) * 10 ^ (-1 + -↑n) + ↑↑(a n) * 10 ^ (-1 + -↑n) = ↑(s n) * 10 ^ (-↑n) + ↑↑(a n) * 10 ^ (-↑n - 1); x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s n) * 10 ^ (-1 - ↑n) * 10 + 10 ^ (-1 - ↑n) * ↑↑(a n) = ↑(s n) * 10 ^ (-↑n) + 10 ^ (-1 - ↑n) * ↑↑(a n); x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s n) * 10 ^ (-1 - ↑n) * 10 = ↑(s n) * 10 ^ (-↑n)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s n) * 10 ^ (-1 - ↑n + 1) = ↑(s n) * 10 ^ (-↑n)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ 10 ≠ 0; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ 10 ≠ 0; All goals completed! 🐙
_ = s 0 + (∑ i ∈ .range n, a i * (10:NNReal)^(-i-1:ℝ) + a n * 10^(-n-1:ℝ)) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s n) * 10 ^ (-↑n) + ↑↑(a n) * 10 ^ (-↑n - 1) =
↑(s 0) + (∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1) + ↑↑(a n) * 10 ^ (-↑n - 1)) All goals completed! 🐙
_ = _ := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ↑(s 0) + (∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1) + ↑↑(a n) * 10 ^ (-↑n - 1)) =
↑(s 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1) + ↑↑(a n) * 10 ^ (-↑n - 1) =
∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1); x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }n:ℕhn:↑(s n) * 10 ^ (-↑n) = ↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1)⊢ ∑ i ∈ Finset.range (n + 1), ↑↑(a i) * 10 ^ (-↑i - 1) =
∑ i ∈ Finset.range n, ↑↑(a i) * 10 ^ (-↑i - 1) + ↑↑(a n) * 10 ^ (-↑n - 1); All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:?_mvar.101197 :=
Filter.Tendsto.const_add (↑(@_fvar.10801 0))
(Summable.tendsto_sum_tsum_nat (AppendixB.NNRealDecimal.toNNReal_conv _fvar.51407))⊢ x = ↑d
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:?_mvar.101197 :=
Filter.Tendsto.const_add (↑(@_fvar.10801 0))
(Summable.tendsto_sum_tsum_nat (AppendixB.NNRealDecimal.toNNReal_conv _fvar.51407))⊢ (fun k => ↑(s 0) + ∑ i ∈ Finset.range k, ↑↑(d.fracPart i) * 10 ^ (-↑i - 1)) = fun n => ↑(s n) * 10 ^ (-↑n)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ x = ↑d
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:?_mvar.101197 :=
Filter.Tendsto.const_add (↑(@_fvar.10801 0))
(Summable.tendsto_sum_tsum_nat (AppendixB.NNRealDecimal.toNNReal_conv _fvar.51407))⊢ (fun k => ↑(s 0) + ∑ i ∈ Finset.range k, ↑↑(d.fracPart i) * 10 ^ (-↑i - 1)) = fun n => ↑(s n) * 10 ^ (-↑n) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:?_mvar.101197 :=
Filter.Tendsto.const_add (↑(@_fvar.10801 0))
(Summable.tendsto_sum_tsum_nat (AppendixB.NNRealDecimal.toNNReal_conv _fvar.51407))n:ℕ⊢ ↑(↑(s 0) + ∑ i ∈ Finset.range n, ↑↑(d.fracPart i) * 10 ^ (-↑i - 1)) = ↑(↑(s n) * 10 ^ (-↑n)); All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds x)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun n => x - 10 ^ (-↑n)) Filter.atTop (nhds x)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun x_1 => x) Filter.atTop (nhds x)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ (fun n => x - 10 ^ (-↑n)) ≤ fun n => ↑(s n) * 10 ^ (-↑n)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ (fun n => ↑(s n) * 10 ^ (-↑n)) ≤ fun x_1 => x
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun n => x - 10 ^ (-↑n)) Filter.atTop (nhds x) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ x = x - 0x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun n => 10 ^ (-↑n)) Filter.atTop (nhds 0)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ x = x - 0 All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ^ (-↑n) = (1 / 10) ^ nx:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ 1 / 10 < 1
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ^ (-↑n) = (1 / 10) ^ n All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ 1 < 10; All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ Filter.Tendsto (fun x_1 => x) Filter.atTop (nhds x) All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)⊢ (fun n => x - 10 ^ (-↑n)) ≤ fun n => ↑(s n) * 10 ^ (-↑n) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ (fun n => x - 10 ^ (-↑n)) n ≤ (fun n => ↑(s n) * 10 ^ (-↑n)) n; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x ≤ ↑(s n) * 10 ^ (-↑n) + 10 ^ (-↑n); calc
_ = (x * 10^n) * (10:NNReal)^(-n:ℝ) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x = x * 10 ^ n * 10 ^ (-↑n)
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x = x * 10 ^ (↑n + -↑n)x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ≠ 0; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ≠ 0; All goals completed! 🐙
_ ≤ ((s n:NNReal) + 1)*(10:NNReal)^(-n:ℝ) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x * 10 ^ n * 10 ^ (-↑n) ≤ (↑(s n) + 1) * 10 ^ (-↑n) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x * 10 ^ n ≤ ↑(s n) + 1; All goals completed! 🐙
_ = _ := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ (↑(s n) + 1) * 10 ^ (-↑n) = ↑(s n) * 10 ^ (-↑n) + 10 ^ (-↑n) All goals completed! 🐙
x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ (fun n => ↑(s n) * 10 ^ (-↑n)) n ≤ (fun x_1 => x) n; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n := fun n => Nat.floor_le (@?_mvar.12729 n)hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n => @?_mvar.57011 nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ ↑(s n) * 10 ^ (-↑n) ≤ x; calc
_ ≤ (x * 10^n) * (10:NNReal)^(-n:ℝ) := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ ↑(s n) * 10 ^ (-↑n) ≤ x * 10 ^ n * 10 ^ (-↑n) x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ ↑(s n) ≤ x * 10 ^ n; All goals completed! 🐙
_ = x := x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x * 10 ^ n * 10 ^ (-↑n) = x x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ x * 10 ^ (↑n + -↑n) = xx:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ≠ 0; x:ℝ≥0h:¬x = 0s:ℕ → ℕ := fun n => ⌊_fvar.8365 * 10 ^ n⌋₊hs:∀ (n : ℕ), ↑(@_fvar.10801 n) ≤ _fvar.8365 * 10 ^ n :=
fun n =>
Nat.floor_le
(le_of_lt
(mul_pos (lt_of_le_of_ne' (zero_le _fvar.8365) _fvar.8442)
(pow_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Eq.refl (Nat.ble 1 10)))
n)))hs':∀ (n : ℕ), _fvar.8365 * 10 ^ n < ↑(@_fvar.10801 n) + 1 := fun n => Nat.lt_floor_add_one (_fvar.8365 * 10 ^ n)a:ℕ → Digitha:∀ (n : ℕ), s (n + 1) = 10 * s n + ↑(a n)d:AppendixB.NNRealDecimal := { intPart := @_fvar.10801 0, fracPart := _fvar.51385 }hsum:∀ (n : ℕ),
↑(@_fvar.10801 n) * 10 ^ (-↑n) = ↑(@_fvar.10801 0) + ∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) :=
fun n =>
Nat.recAux
(of_eq_true
(Eq.trans
(congr
(congrArg Eq
(Eq.trans
(congrArg (HMul.hMul ↑(@_fvar.10801 0))
(Eq.trans (congrArg (HPow.hPow 10) (Eq.trans (congrArg Neg.neg (CharP.cast_eq_zero ℝ 0)) neg_zero))
(NNReal.rpow_zero 10)))
(mul_one ↑(@_fvar.10801 0))))
(add_zero ↑(@_fvar.10801 0)))
(eq_self ↑(@_fvar.10801 0))))
(fun n hn =>
Eq.mpr
(id
(congrArg
(fun _a =>
↑_a * 10 ^ (-↑(n + 1)) =
↑(@_fvar.10801 0) + ∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(@_fvar.51390 n)))
(Trans.trans
(Trans.trans
(Eq.mpr
(id
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (Nat.cast_add (10 * @_fvar.10801 n) ↑(@_fvar.51385 n))
(congrArg (fun x => x + ↑↑(@_fvar.51385 n)) (Nat.cast_mul 10 (@_fvar.10801 n)))))
(congrArg (HPow.hPow 10)
(Eq.trans
(congrArg Neg.neg (Eq.trans (Nat.cast_add n 1) (congrArg (HAdd.hAdd ↑n) Nat.cast_one)))
(neg_add_rev (↑n) 1))))
(add_mul (10 * ↑(@_fvar.10801 n)) (↑↑(@_fvar.51385 n)) (10 ^ (-1 + -↑n))))))
(Eq.mpr
(id
(congr
(congrArg Eq
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10)))
(Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0)))
(Mathlib.Tactic.Ring.zero_mul (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10 + 0))))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 10))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(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.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 10))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(congrArg (fun x => x * 10)
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n))))))
(Mathlib.Tactic.RingNF.mul_assoc_rev (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)))))))
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf (10 ^ (-↑n)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑↑(@_fvar.51385 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.atom_pf ↑n)
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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.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
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Eq.trans
(congr
(congrArg HAdd.hAdd
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))
(Mathlib.Tactic.RingNF.add_neg (-1) ↑n)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-1 - ↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_left (↑↑(@_fvar.51385 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 *
(↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Mathlib.Tactic.Ring.add_pf_add_lt
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 * ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_zero_add
((10 ^ (-1 - ↑n)) ^ Nat.rawCast 1 * (↑↑(@_fvar.51385 n) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(congr
(congrArg HAdd.hAdd
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans (congrArg (HPow.hPow (10 ^ (-1 - ↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-1 - ↑n)))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑↑(@_fvar.51385 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑↑(@_fvar.51385 n))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one ↑↑(@_fvar.51385 n)))))
(add_zero (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 n) * 10 ^ (-1 - ↑n) * 10) (↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.mpr
(id
(congrArg (fun _a => _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(mul_assoc (↑(@_fvar.10801 n)) (10 ^ (-1 - ↑n)) 10)))
(Eq.mpr
(id
(congrArg (fun _a => ↑(@_fvar.10801 n) * _a = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.symm
(NNReal.rpow_add_one
(Mathlib.Meta.NormNum.isNat_eq_false
(Mathlib.Meta.NormNum.isNat_ofNat NNReal (Eq.refl 10))
(Mathlib.Meta.NormNum.isNat_ofNat NNReal Nat.cast_zero) (Eq.refl false))
(-1 - ↑n)))))
(of_eq_true
(Eq.trans
(congrArg (fun x => x = ↑(@_fvar.10801 n) * 10 ^ (-↑n))
(Eq.trans
(Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.atom_pf ↑(@_fvar.10801 n))
(Mathlib.Tactic.Ring.atom_pf'
(congrArg (HPow.hPow 10)
(Eq.trans
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_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.atom_pf ↑n)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (↑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_lt (Int.negOfNat 1).rawCast
(Mathlib.Tactic.Ring.add_pf_zero_add
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(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_zero
(↑n ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Eq.trans
(congrArg (fun x => x + 0)
(Eq.trans
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑n) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑n)))
(Eq.trans Mathlib.Tactic.RingNF.int_rawCast_neg
(congrArg Neg.neg Mathlib.Tactic.RingNF.nat_rawCast_1)))
(Mathlib.Tactic.RingNF.mul_neg (↑n) 1))
(congrArg Neg.neg (mul_one ↑n))))
(add_zero (-↑n))))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left (↑(@_fvar.10801 n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_pf_right (10 ^ (-↑n)) (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))))
(Mathlib.Tactic.Ring.mul_zero (↑(@_fvar.10801 n) ^ Nat.rawCast 1 * Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0)))
(Mathlib.Tactic.Ring.zero_mul ((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(↑(@_fvar.10801 n) ^ Nat.rawCast 1 *
((10 ^ (-↑n)) ^ Nat.rawCast 1 * Nat.rawCast 1) +
0))))
(Eq.trans
(congrArg (fun x => x + 0)
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow ↑(@_fvar.10801 n)) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one ↑(@_fvar.10801 n))))
(Eq.trans
(congr
(congrArg HMul.hMul
(Eq.trans
(congrArg (HPow.hPow (10 ^ (-↑n))) Mathlib.Tactic.RingNF.nat_rawCast_1)
(pow_one (10 ^ (-↑n)))))
Mathlib.Tactic.RingNF.nat_rawCast_1)
(mul_one (10 ^ (-↑n))))))
(add_zero (↑(@_fvar.10801 n) * 10 ^ (-↑n))))))
(eq_self (↑(@_fvar.10801 n) * 10 ^ (-↑n)))))))
(10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n)) (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))
(Eq.refl (10 ^ (-1 - ↑n) * ↑↑(@_fvar.51385 n))))))
(AppendixB.NNRealDecimal.surj._proof_6 _fvar.8365 _fvar.51385 _fvar.51390 n hn))
((fun {α β γ} [HAdd α β γ] a a_1 e_a =>
Eq.rec (motive := fun a_2 e_a => ∀ (a_3 a_4 : β), a_3 = a_4 → a + a_3 = a_2 + a_4)
(fun a_2 a_3 e_a => e_a ▸ Eq.refl (a + a_2)) e_a)
(↑(@_fvar.10801 0)) (↑(@_fvar.10801 0)) (Eq.refl ↑(@_fvar.10801 0))
(∑ i ∈ Finset.range n, ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1) + ↑↑(@_fvar.51385 n) * 10 ^ (-↑n - 1))
(∑ i ∈ Finset.range (n + 1), ↑↑(@_fvar.51385 i) * 10 ^ (-↑i - 1))
(Eq.symm (Finset.sum_range_succ (fun x => ↑↑(@_fvar.51385 x) * 10 ^ (-↑x - 1)) n)))))
nthis:Filter.Tendsto (fun n => ↑(s n) * 10 ^ (-↑n)) Filter.atTop (nhds ↑d)n:ℕ⊢ 10 ≠ 0; All goals completed! 🐙Proposition B.2.2
theorem NNRealDecimal.not_inj : (1:NNReal) = (mk 1 fun _ ↦ 0) ∧ (1:NNReal) = (mk 0 fun _ ↦ 9) := ⊢ 1 = ↑{ intPart := 1, fracPart := fun x => 0 } ∧ 1 = ↑{ intPart := 0, fracPart := fun x => 9 }
-- This proof is written to follow the structure of the original text.
⊢ 1 = ∑' (i : ℕ), 9 * 10 ^ (-↑i - 1)
this:?_mvar.147975 := Summable.tendsto_sum_tsum_nat (AppendixB.NNRealDecimal.toNNReal_conv { intPart := 0, fracPart := fun x => 9 })⊢ 1 = ∑' (i : ℕ), 9 * 10 ^ (-↑i - 1)
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ 1 = ∑' (i : ℕ), 9 * 10 ^ (-↑i - 1)
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds 1)
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕ⊢ ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ Filter.Tendsto (fun n => 1 - 10 ^ (-↑n)) Filter.atTop (nhds 1)
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕ⊢ ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n) this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ ∑ x ∈ Finset.range 0, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑0)this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)⊢ ∑ x ∈ Finset.range (n + 1), 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑(n + 1))
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ ∑ x ∈ Finset.range 0, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑0) All goals completed! 🐙
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)⊢ 1 - 10 ^ (-↑n) + 9 * 10 ^ (-↑n - 1) = 1 - 10 ^ (-↑n - 1)
have : (10:NNReal)^(-n:ℝ) = 10^(-n-1:ℝ) * 10 := ⊢ 1 = ↑{ intPart := 1, fracPart := fun x => 0 } ∧ 1 = ↑{ intPart := 0, fracPart := fun x => 9 }
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)⊢ 10 ^ (-↑n) = 10 ^ (-↑n - 1 + 1)this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)⊢ 10 ≠ 0; this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)⊢ 10 ≠ 0; All goals completed! 🐙
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ ↑(1 - 10 ^ (-↑n - 1) * 10) + 9 * 10 ^ (-↑n - 1) = ↑(1 - 10 ^ (-↑n - 1))
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ ↑1 - ↑(10 ^ (-↑n - 1) * 10) + 9 * 10 ^ (-↑n - 1) = ↑1 - ↑(10 ^ (-↑n - 1))this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ^ (-↑n - 1) ≤ 1this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ^ (-↑n - 1) * 10 ≤ 1
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ ↑1 - ↑(10 ^ (-↑n - 1) * 10) + 9 * 10 ^ (-↑n - 1) = ↑1 - ↑(10 ^ (-↑n - 1)) this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 1 - 10 ^ (-↑n - 1) * 10 + 9 * 10 ^ (-↑n - 1) = 1 - 10 ^ (-↑n - 1); All goals completed! 🐙
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ^ (-↑n - 1) ≤ 1 this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 1 ≤ 10this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ -↑n - 1 ≤ 0; this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ -↑n - 1 ≤ 0; All goals completed! 🐙
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ^ (-↑n - 1 + 1) ≤ 1this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ≠ 0
this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 1 ≤ 10this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ -↑n - 1 + 1 ≤ 0this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ≠ 0; this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ -↑n - 1 + 1 ≤ 0this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ≠ 0; this✝:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))n:ℕhn:∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1) = 1 - 10 ^ (-↑n)this:10 ^ (-↑_fvar.152126) = 10 ^ (-↑_fvar.152126 - 1) * 10 := ?_mvar.154648⊢ 10 ≠ 0; All goals completed! 🐙
this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ 1 = 1 - 0this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ Filter.Tendsto (fun n => 10 ^ (-↑n)) Filter.atTop (nhds 0); this:Filter.Tendsto (fun n => ∑ x ∈ Finset.range n, 9 * 10 ^ (-↑x - 1)) Filter.atTop (nhds (∑' (x : ℕ), 9 * 10 ^ (-↑x - 1)))⊢ Filter.Tendsto (fun n => 10 ^ (-↑n)) Filter.atTop (nhds 0)
convert tendsto_pow_atTop_nhds_zero_of_lt_one (show (1/10:NNReal) < 1 ⊢ 1 = ↑{ intPart := 1, fracPart := fun x => 0 } ∧ 1 = ↑{ intPart := 0, fracPart := fun x => 9 } All goals completed! 🐙) with n
All goals completed! 🐙inductive RealDecimal where
| pos : NNRealDecimal → RealDecimal
| neg : NNRealDecimal → RealDecimalnoncomputable instance RealDecimal.instCoeReal : Coe RealDecimal ℝ where
coe := fun d ↦ match d with
| RealDecimal.pos d => d.toNNReal
| RealDecimal.neg d => -(d.toNNReal:ℝ)theorem RealDecimal.surj (x:ℝ) : ∃ d:RealDecimal, x = d := x:ℝ⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d
x:ℝh:0 ≤ x⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑dx:ℝh:x < 0⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d
x:ℝh:0 ≤ x⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d x:ℝh:0 ≤ xd:NNRealDecimalhd:x.toNNReal = ↑d⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d; x:ℝh:0 ≤ xd:NNRealDecimalhd:x.toNNReal = ↑d⊢ x =
match pos d with
| pos d => ↑↑d
| neg d => -↑↑d; All goals completed! 🐙
x:ℝh:x < 0⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d x:ℝh:x < 0d:NNRealDecimalhd:(-x).toNNReal = ↑d⊢ ∃ d,
x =
match d with
| pos d => ↑↑d
| neg d => -↑↑d; x:ℝh:x < 0d:NNRealDecimalhd:(-x).toNNReal = ↑d⊢ x =
match neg d with
| pos d => ↑↑d
| neg d => -↑↑d; All goals completed! 🐙Exercise B.2.2
theorem RealDecimal.not_inj_one (d: RealDecimal) : (d:ℝ) = 1 ↔ (d = pos (mk 1 fun _ ↦ 0) ∨ d = pos (mk 0 fun _ ↦ 9)) := d:RealDecimal⊢ (match d with
| pos d => ↑↑d
| neg d => -↑↑d) =
1 ↔
d = pos { intPart := 1, fracPart := fun x => 0 } ∨ d = pos { intPart := 0, fracPart := fun x => 9 }
All goals completed! 🐙theorem RealDecimal.not_inj_terminating {x:ℝ} (hx: TerminatingDecimal x) : ∃ d₁ d₂:RealDecimal, d₁ ≠ d₂ ∧ ∀ d: RealDecimal, d = x ↔ d = d₁ ∨ d = d₂ := x:ℝhx:TerminatingDecimal x⊢ ∃ d₁ d₂,
d₁ ≠ d₂ ∧
∀ (d : RealDecimal),
(match d with
| pos d => ↑↑d
| neg d => -↑↑d) =
x ↔
d = d₁ ∨ d = d₂ All goals completed! 🐙theorem RealDecimal.inj_nonterminating {x:ℝ} (hx: ¬TerminatingDecimal x) : ∃! d:RealDecimal, d = x := x:ℝhx:¬TerminatingDecimal x⊢ ∃! d,
(match d with
| pos d => ↑↑d
| neg d => -↑↑d) =
x All goals completed! 🐙Exercise B.2.4. This is Corollary 8.3.4, but the intent is to rewrite the proof using the decimal system.
example : Uncountable ℝ := ⊢ Uncountable ℝ All goals completed! 🐙end AppendixB