Analysis I, Appendix B.2: The decimal representation of real numbers

An implementation of the decimal representation of Mathlib's real numbers : Type.

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 : Type, avoiding using the decimal representation from the previous section, although we still retain the Unknown identifier `Digit`Digit class.

namespace AppendixBstructure NNRealDecimal where intPart : fracPart : Digitopen NNReal NNRealDecimal
AppendixB.NNRealDecimal.mk (intPart : ) (fracPart :   Digit) : 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 := toNNReal

Exercise B.2.1

theorem declaration uses 'sorry'NNRealDecimal.toNNReal_conv (d:NNRealDecimal) : Summable fun i (d.fracPart i) * (10:NNReal) ^ (-i-1:) := d:NNRealDecimalSummable 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 = 0x = { 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.1546481 - (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.15464810 ^ (-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.15464810 ^ (-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.1546481 - (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.1546481 - 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.15464810 ^ (-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.1546481 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.15464810 ^ (-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.15464810 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.1546481 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.15464810 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.15464810 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.15464810 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 = dx = 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 = dx = match neg d with | pos d => d | neg d => -d; All goals completed! 🐙

Exercise B.2.2

theorem declaration uses 'sorry'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! 🐙

Exercise B.2.3

abbrev TerminatingDecimal (x:) : Prop := (n:) (m:), x = n / (10:)^m
theorem declaration uses 'sorry'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 declaration uses 'sorry'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.

declaration uses 'sorry'example : Uncountable := Uncountable All goals completed! 🐙
end AppendixB