Аналіз I, Розділ 7.5: Ознаки кореня та відношення
Я (прим. перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним підходом Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підправити", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
-
Ознаки кореня та відношення
Одне, що лише імпліцитно вказане в тексті, — це те, що для ознаки кореня та ознаки відношення нижню та верхню границі (lim inf і lim sup) слід розуміти в розширених дійсних числах. Формалізації в Lean нижче роблять це твердження більш явним.
namespace Chapter7open Filter Real ERealТвердження 7.5.1(a) (Ознака кореня). Потрібна технічна умова для забезпечення скінченності limsup.
theorem Series.root_test_pos {s : Series}
(h : atTop.limsup (fun n ↦ ((|s.seq n|^(1/(n:ℝ)):ℝ):EReal)) < 1) : s.absConverges := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
-- Доведення написане так, щоб відповідати структурі оригінального тексту.
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1⊢ s.absConverges
have hpos : 0 ≤ α' := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
apply le_limsup_of_frequently_le (Frequently.of_forall _) (s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1⊢ IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(|s.seq n| ^ (1 / ↑n)) All goals completed! 🐙)
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1x✝:ℤ⊢ 0 ≤ ↑(|s.seq x✝| ^ (1 / ↑x✝)); All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291⊢ s.absConverges
have hαα' : α' = α := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291⊢ ↑α = α'; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291⊢ α' ≠ ⊤s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291⊢ α' ≠ ⊥
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291⊢ α' ≠ ⊤ s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hpos:0 ≤ _fvar.1291 := ?_mvar.1416α:ℝ := EReal.toReal _fvar.1291h:α' = ⊤⊢ 1 ≤ α'; All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)h:α' < 1α:ℝ := EReal.toReal _fvar.1291hpos:α' = ⊥⊢ α' < 0; All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hpos:0 ≤ ↑αh:↑α < 1hαα':α' = ↑α⊢ s.absConverges; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ α⊢ s.absConverges
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2⊢ s.absConverges
have hε : 0 < ε := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2⊢ α < 1; All goals completed! 🐙
have hε' : α' < (α+ε:ℝ) := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462⊢ α < α + ε; All goals completed! 🐙
have hα : α + ε < 1 := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146⊢ α + (1 - α) / 2 < 1; All goals completed! 🐙
have hα' : 0 < α + ε := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges All goals completed! 🐙
have := eventually_lt_of_limsup_lt hε' (s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))⊢ IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(|s.seq n| ^ (1 / ↑n)) All goals completed! 🐙)
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934this:∃ a, ∀ b ≥ a, ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)⊢ s.absConverges
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)⊢ s.absConverges; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ s.absConverges
have (n:ℤ) (hn: n ≥ N) : |s.seq n| ≤ (α + ε)^n := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
have : n ≥ N' := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges All goals completed! 🐙
have npos : 0 < n := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := ?_mvar.16862npos:0 < _fvar.16724 := ?_mvar.17078hN:↑(|s.seq n| ^ (1 / ↑n)) < ↑(α + ε)⊢ |s.seq n| ≤ (α + ε) ^ n
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := ?_mvar.16862npos:0 < _fvar.16724 := ?_mvar.17078hN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ |s.seq n| ≤ (α + ε) ^ n
calc
_ = (|s.seq n|^(1/(n:ℝ)))^n := s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ |s.seq n| = (|s.seq n| ^ (1 / ↑n)) ^ n
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ |s.seq n| = |s.seq n| ^ (1 / ↑n * ↑n)
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ |s.seq n| ^ (1 / ↑n * ↑n) = |s.seq n|; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ 1 / ↑n * ↑n = 1; All goals completed! 🐙
_ ≤ _ := s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ (|s.seq n| ^ (1 / ↑n)) ^ n ≤ (α + ε) ^ n
convert pow_le_pow_left₀ (s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ 0 ≤ |s.seq n| ^ (1 / ↑n) All goals completed! 🐙) (le_of_lt hN) n.toNat
all_goals s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤN:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:ℤhn:n ≥ Nthis:_fvar.16724 ≥ _fvar.16471 := Decidable.byContradiction fun a => Chapter7.Series.root_test_pos._proof_1 _fvar.16471 _fvar.16724 _fvar.16732 anpos:0 < _fvar.16724 :=
Decidable.byContradiction fun a =>
Chapter7.Series.root_test_pos._proof_2 _fvar.16471 _fvar.16724 _fvar.16732 _fvar.16863 ahN:|s.seq n| ^ (1 / ↑n) < α + ε⊢ n = ↑n.toNat; All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ s.absConverges
have hNk : N = s.m + k := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges All goals completed! 🐙
have hgeom : (fun n ↦ (α+ε) ^ n : Series).converges := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).converges⊢ s.absConverges
have : (s.from N).absConverges := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).converges⊢ (s.from N).m =
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m + ↑N.toNat)).ms:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).converges⊢ ∀ n ≥ (s.from N).m,
|(s.from N).seq n| ≤
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).seq
n
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).converges⊢ (s.from N).m =
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m + ↑N.toNat)).m s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).converges⊢ max s.m N = max N 0; All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:n ≥ (s.from N).m⊢ |(s.from N).seq n| ≤
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m + ↑N.toNat)).seq
n; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:s.m ≤ n ∧ N ≤ n⊢ |(s.from N).seq n| ≤
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m + ↑N.toNat)).seq
n
have hn' : n ≥ 0 := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop < 1⊢ s.absConverges All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:s.m ≤ n ∧ N ≤ nhn':_fvar.53974 ≥ 0 := ?_mvar.57342⊢ |s.seq n| ≤ (α + ε) ^ n.toNat
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:s.m ≤ n ∧ N ≤ nhn':_fvar.53974 ≥ 0 := ?_mvar.57342⊢ (α + ε) ^ n.toNat = (α + ε) ^ n; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:s.m ≤ n ∧ N ≤ nhn':_fvar.53974 ≥ 0 := ?_mvar.57342⊢ (α + ε) ^ n = (α + ε) ^ n.toNat; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesn:ℤhn:s.m ≤ n ∧ N ≤ nhn':_fvar.53974 ≥ 0 := ?_mvar.57342⊢ n = ↑n.toNat; All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825⊢ s.abs.converges
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825⊢ (s.abs.from (s.abs.m + ↑k)).converges; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825⊢ s.abs.from (s.abs.m + ↑k) = (s.from N).abs; s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825⊢ s.m + ↑k = max s.m N ∧
(fun n => if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) = fun n =>
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0; refine ⟨ s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 :=
Eq.mpr (id (Eq.trans (div_pos_iff_of_pos_right._simp_1 (of_eq_true Nat.ofNat_pos._simp_1)) one_lt_div'._simp_4))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a))))hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.4877 + _fvar.8335)) _fvar.6576))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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 (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))hα:_fvar.4877 + _fvar.8335 < 1 :=
id
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(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 (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.mul_one (Nat.rawCast 2)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 2))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 2 + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.mul_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_right _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.one_mul (Nat.rawCast 1)))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))
(Mathlib.Tactic.Ring.zero_mul (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.4877 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1)))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Meta.NormNum.IsNat.to_raw_eq
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1)))))
(Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.7965)
(Eq.mp
(congrArg (fun _a => _a ≤ 0)
(CancelDenoms.sub_subst rfl
(CancelDenoms.add_subst rfl
(CancelDenoms.div_subst (CancelDenoms.sub_subst rfl rfl)
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_div
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNNRat.to_isNat
(Mathlib.Meta.NormNum.isNNRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2))))
(Eq.refl (Nat.mul 2 1)) (Eq.refl 2))))))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Meta.NormNum.isNat_eq_true
(Mathlib.Meta.NormNum.isNat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl 2))
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))))))
(Mathlib.Tactic.Linarith.mul_nonpos (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)
(Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
(Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)) (Eq.refl false)))))))hα':0 < _fvar.4877 + _fvar.8335 :=
lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (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_zero_add (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
Mathlib.Tactic.Ring.neg_zero))
(Mathlib.Tactic.Ring.add_pf_zero_add
(Rat.rawCast (Int.negOfNat 1) 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_gt (Rat.rawCast (Int.negOfNat 1) 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.div_congr
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one))
(Mathlib.Tactic.Ring.atom_pf _fvar.4877)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.4877 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_lt (Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 2)))
(Mathlib.Tactic.Ring.div_pf
(Mathlib.Tactic.Ring.inv_single
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2)))))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.one_mul (NNRat.rawCast 1 2))
(Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1))
(Mathlib.Tactic.Ring.add_pf_add_zero (NNRat.rawCast 1 2 + 0)))
(Mathlib.Tactic.Ring.add_mul
(Mathlib.Tactic.Ring.mul_add
(Mathlib.Tactic.Ring.mul_pf_left _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsRat.to_raw_eq
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Tactic.Ring.mul_zero (_fvar.4877 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.zero_mul (NNRat.rawCast 1 2 + 0))
(Mathlib.Tactic.Ring.add_pf_add_zero
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0)))
(Mathlib.Tactic.Ring.add_pf_add_lt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_zero_add
(_fvar.4877 ^ Nat.rawCast 1 * Rat.rawCast (Int.negOfNat 1) 2 + 0))))))
(Mathlib.Tactic.Ring.add_pf_add_gt (NNRat.rawCast 1 2)
(Mathlib.Tactic.Ring.add_pf_add_overlap
(Mathlib.Tactic.Ring.add_overlap_pf _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsNNRat.to_raw_eq
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))
(Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero
(Mathlib.Tactic.Ring.add_pf_add_zero
(NNRat.rawCast 1 2 + (_fvar.4877 ^ Nat.rawCast 1 * NNRat.rawCast 1 2 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat (Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.4877 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.IsRat.to_isInt
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl ((Int.negOfNat 1).mul (Int.negOfNat 1))) (Eq.refl 2))))))
(Eq.refl (Int.negOfNat 1)) (Eq.refl 2))))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.IsRat.to_isNNRat
(Mathlib.Meta.NormNum.isRat_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNat.to_isNNRat (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1)))
(Mathlib.Meta.NormNum.IsRat.of_raw ℝ (Int.negOfNat 1) 2
(Mathlib.Meta.NormNum.IsRat.den_nz
(Mathlib.Meta.NormNum.isRat_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.to_isRat
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)))
(Mathlib.Meta.NormNum.IsNNRat.to_isRat
(Mathlib.Meta.NormNum.IsNNRat.of_raw ℝ 1 2
(Mathlib.Meta.NormNum.IsNNRat.den_nz
(Mathlib.Meta.NormNum.isNNRat_inv_pos
(Mathlib.Meta.NormNum.IsNat.to_isNNRat
(Mathlib.Meta.NormNum.IsNat.of_raw ℝ 2))))))
(Eq.refl ((Int.negOfNat 1).mul (Int.ofNat 1))) (Eq.refl 2))))
(Eq.refl (Int.ofNat 1)) (Eq.refl 2))))))
(Eq.refl (Int.ofNat 0)) (Eq.refl 4)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le
(Mathlib.Tactic.Linarith.add_lt_of_le_of_neg (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.8142)
(Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.8463))
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)k:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊢ s.m + ↑k = max s.m N All goals completed! 🐙, ?_ ⟩
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤ⊢ (if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) =
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.m⊢ (if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) =
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:¬n ≥ s.m⊢ (if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) =
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0 s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.m⊢ (if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) =
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:¬n ≥ s.m⊢ (if s.m + ↑k ≤ n then if s.m ≤ n then |s.seq n| else 0 else 0) =
if s.m ≤ n ∧ N ≤ n then |if s.m ≤ n ∧ N ≤ n then s.seq n else 0| else 0 All goals completed! 🐙
s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:n ≥ N⊢ (if s.m + ↑k ≤ n then |s.seq n| else 0) = if N ≤ n then |if N ≤ n then s.seq n else 0| else 0s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:¬n ≥ N⊢ (if s.m + ↑k ≤ n then |s.seq n| else 0) = if N ≤ n then |if N ≤ n then s.seq n else 0| else 0 s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:n ≥ N⊢ (if s.m + ↑k ≤ n then |s.seq n| else 0) = if N ≤ n then |if N ≤ n then s.seq n else 0| else 0s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:¬n ≥ N⊢ (if s.m + ↑k ≤ n then |s.seq n| else 0) = if N ≤ n then |if N ≤ n then s.seq n else 0| else 0 s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:¬n ≥ N⊢ s.m + ↑k ≤ n → s.seq n = 0 s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:n ≥ N⊢ n < s.m + ↑k → 0 = |s.seq n|s:Seriesα':EReal := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)α:ℝ := EReal.toReal _fvar.1291hαα':α' = ↑αh:α < 1hpos:0 ≤ αε:ℝ := (1 - _fvar.4877) / 2hε:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < ↑(_fvar.4877 + _fvar.8335) := ?_mvar.12146hα:_fvar.4877 + _fvar.8335 < 1 := ?_mvar.12437hα':0 < _fvar.4877 + _fvar.8335 := ?_mvar.14934N':ℤhN:∀ b ≥ N', ↑(|s.seq b| ^ (1 / ↑b)) < ↑(α + ε)N:ℤ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this✝:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n hn => @?_mvar.16849 n hnk:ℕ := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hNk:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40555hgeom:({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.from
({ m := 0, seq := fun n => if n ≥ 0 then (fun n => (α + ε) ^ n) n.toNat else 0, vanish := ⋯ }.m +
↑N.toNat)).convergesthis:(Chapter7.Series.from _fvar.669 _fvar.16568).abs.converges := ?_mvar.44825n:ℤhnm:n ≥ s.mhn:¬n ≥ N⊢ s.m + ↑k ≤ n → s.seq n = 0 All goals completed! 🐙Теорема 7.5.1(b) (Ознака кореня)
theorem Series.root_test_neg {s : Series}
(h : atTop.limsup (fun n ↦ ((|s.seq n|^(1/(n:ℝ)):ℝ):EReal)) > 1) : s.diverges := s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop > 1⊢ s.diverges
-- Доведення написане так, щоб відповідати структурі оригінального тексту.
apply frequently_lt_of_lt_limsup (s:Seriesh:limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop > 1⊢ IsCoboundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(|s.seq n| ^ (1 / ↑n)) All goals completed! 🐙) at h
s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))⊢ ¬Tendsto s.seq atTop (nhds 0)
s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:Tendsto s.seq atTop (nhds 0)⊢ False; s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ ε > 0, ∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < ε⊢ False; specialize this 1 (s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ ε > 0, ∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < ε⊢ 1 > 0 All goals completed! 🐙)
s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n - 0| < 1⊢ False
s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n| < 1⊢ False; s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':?_mvar.158753 := Real.rpow_lt_one ?_mvar.158756 _fvar.158748 ?_mvar.158950⊢ Falses:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n| < 1⊢ 0 ≤ |s.seq n|s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n| < 1⊢ 0 < 1 / ↑n s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':?_mvar.158753 := Real.rpow_lt_one ?_mvar.158756 _fvar.158748 ?_mvar.158950⊢ Falses:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n| < 1⊢ 0 ≤ |s.seq n|s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < ↑(|s.seq n| ^ (1 / ↑n))hs':|s.seq n| < 1⊢ 0 < 1 / ↑n try All goals completed! 🐙
s:Seriesh:∃ᶠ (x : ℤ) in atTop, 1 < ↑(|s.seq x| ^ (1 / ↑x))this:∀ᶠ (b : ℤ) in atTop, |s.seq b - 0| < 1n:ℤhn:n ≥ 1hs:1 < |s.seq n| ^ (1 / ↑n)hs':|s.seq n| ^ (1 / ↑n) < 1⊢ False
All goals completed! 🐙Теорема 7.5.1(c) (Ознака кореня) / Вправа 7.5.3
theorem Series.root_test_inconclusive: ∃ s:Series,
atTop.Tendsto (fun n ↦ |s.seq n|^(1/(n:ℝ))) (nhds 1) ∧ s.diverges := ⊢ ∃ s, Tendsto (fun n => |s.seq n| ^ (1 / ↑n)) atTop (nhds 1) ∧ s.diverges
All goals completed! 🐙Теорема 7.5.1 (Ознака кореня) / Вправа 7.5.3
theorem Series.root_test_inconclusive' : ∃ s:Series,
atTop.Tendsto (fun n ↦ |s.seq n|^(1/(n:ℝ))) (nhds 1) ∧ s.absConverges := ⊢ ∃ s, Tendsto (fun n => |s.seq n| ^ (1 / ↑n)) atTop (nhds 1) ∧ s.absConverges
All goals completed! 🐙Лема 7.5.2 / Вправа 7.5.1
theorem Series.ratio_ineq {c:ℤ → ℝ} (m:ℤ) (hpos: ∀ n ≥ m, c n > 0) :
atTop.liminf (fun n ↦ ((c (n+1) / c n:ℝ):EReal)) ≤
atTop.liminf (fun n ↦ ↑((c n)^(1/(n:ℝ)):ℝ))
∧ atTop.liminf (fun n ↦ (((c n)^(1/(n:ℝ)):ℝ):EReal)) ≤
atTop.limsup (fun n ↦ ↑((c n)^(1/(n:ℝ)):ℝ))
∧ atTop.limsup (fun n ↦ (((c n)^(1/(n:ℝ)):ℝ):EReal)) ≤
atTop.limsup (fun n ↦ ↑(c (n+1) / c n:ℝ))
:= c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
-- Доведення написане так, щоб відповідати структурі оригінального тексту.
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTopc:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(c n ^ (1 / ↑n))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ IsBoundedUnder (fun x1 x2 => x1 ≥ x2) atTop fun n => ↑(c n ^ (1 / ↑n))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTopc:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(c n ^ (1 / ↑n))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ IsBoundedUnder (fun x1 x2 => x1 ≥ x2) atTop fun n => ↑(c n ^ (1 / ↑n))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop try c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTop⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:L' = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'
have hL'pos : 0 ≤ L' := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤⊢ ∃ᶠ (a : ℤ) in atTop, 0 ≤ ↑(c (a + 1) / c a)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤⊢ ∀ (a : ℤ), ∃ b ≥ a, 0 ≤ ↑(c (b + 1) / c b)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤N:ℤ⊢ ∃ b ≥ N, 0 ≤ ↑(c (b + 1) / c b); use max N m, c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤N:ℤ⊢ max N m ≥ N All goals completed! 🐙
have hpos1 := hpos (max N m) (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤N:ℤ⊢ max N m ≥ m All goals completed! 🐙)
have hpos2 := hpos ((max N m)+1) (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤N:ℤhpos1:@_fvar.168394 (max _fvar.171758 _fvar.168395) > 0 := @_fvar.168396 (max _fvar.171758 _fvar.168395) ⋯⊢ max N m + 1 ≥ m All goals completed! 🐙)
All goals completed! 🐙
have why : L' ≠ ⊥ := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ L'
have hLpos : 0 ≤ L := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL'pos:0 ≤ ↑LhL':L' = ↑L⊢ 0 ≤ L; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656⊢ ∀ (a : EReal), L' < a → limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ a
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < y⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ y
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < yhy':y = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ yc:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < yhy':¬y = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ y; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < yhy':¬y = ⊤⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ y
have : y = y.toReal := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < yhy':¬y = ⊤⊢ ↑y.toReal = y; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L' < yhy':¬y = ⊤⊢ y ≠ ⊥; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy':¬y = ⊤hy:y = ⊥⊢ y ≤ L'; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤this:y = ↑y.toReal⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ y
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤this:y = ↑y.toRealε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ y
have hε : 0 < ε := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop All goals completed! 🐙
replace this : y = (L+ε:ℝ) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤this:y = ↑y.toRealε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007⊢ L + ε = y.toReal; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ ↑(L + ε)
have hε' : L' < (L+ε:ℝ) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112⊢ L < L + ε; All goals completed! 🐙
have := eventually_lt_of_limsup_lt hε' (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))⊢ IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(c (n + 1) / c n) All goals completed! 🐙)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656this:∃ a, ∀ b ≥ a, ↑(c (b + 1) / c b) < ↑(L + ε)⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ ↑(L + ε); c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ ↑(L + ε)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ ↑(L + ε)
have (n:ℤ) (hn: n ≥ N) : c (n+1) / c n ≤ (L + ε) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
have : n ≥ N' := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop All goals completed! 🐙
have npos : 0 < n := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤN:ℤ := max _fvar.185498 (max _fvar.168395 1)n:ℤhn:n ≥ Nthis:_fvar.185805 ≥ _fvar.185498 := ?_mvar.186004npos:0 < _fvar.185805 := ?_mvar.186232hN:↑(c (n + 1) / c n) < ↑(L + ε)⊢ c (n + 1) / c n ≤ L + ε; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤN:ℤ := max _fvar.185498 (max _fvar.168395 1)n:ℤhn:n ≥ Nthis:_fvar.185805 ≥ _fvar.185498 := ?_mvar.186004npos:0 < _fvar.185805 := ?_mvar.186232hN:c (n + 1) / c n < L + ε⊢ c (n + 1) / c n ≤ L + ε; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 := fun n hn => @?_mvar.185991 n hnA:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ ↑(L + ε)
have hA : 0 < A := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop specialize hpos N (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)⊢ N ≥ m All goals completed! 🐙); All goals completed! 🐙
have why2 (n:ℤ) (hn: n ≥ N) : c n ≤ A * (L+ε)^n := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
All goals completed! 🐙
have why2_root (n:ℤ) (hn: n ≥ N) : (((c n)^(1/(n:ℝ)):ℝ):EReal) ≤ (A^(1/(n:ℝ)) * (L+ε):ℝ) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 := ?_mvar.171007why:_fvar.169684 ≠ ⊥ := ?_mvar.175338L:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 := ?_mvar.175656y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 := ?_mvar.179007this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) := ?_mvar.182112hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) := ?_mvar.183656N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 := fun n hn => @?_mvar.185991 n hnA:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 := ?_mvar.193150why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => @?_mvar.206646 n hnn:ℤhn:n ≥ N⊢ c n ^ (1 / ↑n) ≤ A ^ (1 / ↑n) * (L + ε)
have hn' : n > 0 := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0⊢ liminf (fun n => ↑(c (n + 1) / c n)) atTop ≤ liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
liminf (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ∧
limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(c (n + 1) / c n)) atTop All goals completed! 🐙
calc
_ ≤ (A * (L+ε)^n)^(1/(n:ℝ)) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ c n ^ (1 / ↑n) ≤ (A * (L + ε) ^ n) ^ (1 / ↑n)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ n ≥ mc:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ 0 ≤ 1 / ↑n; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ 0 ≤ 1 / ↑n; All goals completed! 🐙
_ = A^(1/(n:ℝ)) * ((L+ε)^n)^(1/(n:ℝ)) := mul_rpow (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ 0 ≤ A All goals completed! 🐙) (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ 0 ≤ (L + ε) ^ n All goals completed! 🐙)
_ = _ := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ A ^ (1 / ↑n) * ((L + ε) ^ n) ^ (1 / ↑n) = A ^ (1 / ↑n) * (L + ε)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ ((L + ε) ^ n) ^ (1 / ↑n) = L + ε
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ (L + ε) ^ (↑n * (1 / ↑n)) = L + ε
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorryn:ℤhn:n ≥ Nhn':_fvar.206657 > 0 :=
Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 _fvar.206657 _fvar.206662 a⊢ ↑n * (1 / ↑n) = 1
All goals completed! 🐙
calc
_ ≤ atTop.limsup (fun n:ℤ ↦ ((A^(1/(n:ℝ)) * (L+ε):ℝ):EReal)) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(c n ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(A ^ (1 / ↑n) * (L + ε))) atTop
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ (fun n => ↑(c n ^ (1 / ↑n))) ≤ᶠ[atTop] fun n => ↑(A ^ (1 / ↑n) * (L + ε))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ autoParam (IsCoboundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(c n ^ (1 / ↑n))) _auto✝c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ autoParam (IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(A ^ (1 / ↑n) * (L + ε))) _auto✝ c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ (fun n => ↑(c n ^ (1 / ↑n))) ≤ᶠ[atTop] fun n => ↑(A ^ (1 / ↑n) * (L + ε))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ autoParam (IsCoboundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(c n ^ (1 / ↑n))) _auto✝c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ autoParam (IsBoundedUnder (fun x1 x2 => x1 ≤ x2) atTop fun n => ↑(A ^ (1 / ↑n) * (L + ε))) _auto✝ try All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∀ᶠ (x : ℤ) in atTop, (fun n => ↑(c n ^ (1 / ↑n))) x ≤ (fun n => ↑(A ^ (1 / ↑n) * (L + ε))) x; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∃ a, ∀ b ≥ a, (fun n => ↑(c n ^ (1 / ↑n))) b ≤ (fun n => ↑(A ^ (1 / ↑n) * (L + ε))) b
All goals completed! 🐙
_ ≤ (atTop.limsup (fun n:ℤ ↦ ((A^(1/(n:ℝ)):ℝ):EReal))) * (atTop.limsup (fun n:ℤ ↦ ((L+ε:ℝ):EReal))) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (1 / ↑n) * (L + ε))) atTop ≤
limsup (fun n => ↑(A ^ (1 / ↑n))) atTop * limsup (fun n => ↑(L + ε)) atTop
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))n:ℤ⊢ ↑(A ^ (1 / ↑n) * (L + ε)) = ((fun n => ↑(A ^ (1 / ↑n))) * fun n => ↑(L + ε)) nc:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∃ᶠ (x : ℤ) in atTop, 0 ≤ ↑(A ^ (1 / ↑x))c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ 0 ≤ᶠ[atTop] fun n => ↑(L + ε)c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (1 / ↑n))) atTop ≠ 0 ∨ limsup (fun n => ↑(L + ε)) atTop ≠ ⊤c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (1 / ↑n))) atTop ≠ ⊤ ∨ limsup (fun n => ↑(L + ε)) atTop ≠ 0
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))n:ℤ⊢ ↑(A ^ (1 / ↑n) * (L + ε)) = ((fun n => ↑(A ^ (1 / ↑n))) * fun n => ↑(L + ε)) n All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∃ᶠ (x : ℤ) in atTop, 0 ≤ ↑(A ^ (1 / ↑x)) c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∀ (x : ℤ), 0 ≤ ↑(A ^ (1 / ↑x)); c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))x✝:ℤ⊢ 0 ≤ ↑(A ^ (1 / ↑x✝)); All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ 0 ≤ᶠ[atTop] fun n => ↑(L + ε) c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ∀ (x : ℤ), 0 x ≤ (fun n => ↑(L + ε)) x; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ 0 ≤ ↑L + ↑ε; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (1 / ↑n))) atTop ≠ 0 ∨ limsup (fun n => ↑(L + ε)) atTop ≠ ⊤ All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ¬limsup (fun n => ↑(A ^ (↑n)⁻¹)) atTop = ⊤ ∨ ¬L + ε = 0; All goals completed! 🐙
_ = (L+ε:ℝ) := c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (1 / ↑n))) atTop * limsup (fun n => ↑(L + ε)) atTop = ↑(L + ε)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (↑n)⁻¹)) atTop * (↑L + ↑ε) = ↑L + ↑ε; c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ limsup (fun n => ↑(A ^ (↑n)⁻¹)) atTop = 1
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun n => ↑(A ^ (↑n)⁻¹)) atTop (nhds 1)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun x => ↑x) (nhds 1) (nhds 1)c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun n => A ^ (↑n)⁻¹) atTop (nhds 1)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun x => ↑x) (nhds 1) (nhds 1) c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ ↑1 = 1; All goals completed! 🐙
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun x => A ^ x) (nhds 0) (nhds 1)c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun n => (↑n)⁻¹) atTop (nhds 0)
c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ Tendsto (fun x => A ^ x) (nhds 0) (nhds 1) apply (continuous_const_rpow (c:ℤ → ℝm:ℤhpos:∀ n ≥ m, c n > 0L':EReal := Filter.limsup (fun n => ↑(@_fvar.168394 (n + 1) / @_fvar.168394 n)) Filter.atTophL:¬L' = ⊤hL'pos:0 ≤ _fvar.169684 :=
Filter.le_limsup_of_frequently_le'
(Eq.mpr (id (congrArg (fun _a => _a) (propext Filter.frequently_atTop))) fun N =>
Exists.intro (max N _fvar.168395)
⟨Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_1 _fvar.168395 N a,
have hpos1 :=
@_fvar.168396 (max N _fvar.168395)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_2 _fvar.168395 N a);
have hpos2 :=
@_fvar.168396 (max N _fvar.168395 + 1)
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_3 _fvar.168395 N a);
le_of_lt (EReal.coe_pos.mpr (div_pos hpos2 hpos1))⟩)why:_fvar.169684 ≠ ⊥ := sorryL:ℝ := EReal.toReal _fvar.169684hL':_fvar.169684 = ↑_fvar.175349 := Eq.symm (EReal.coe_toReal _fvar.169914 _fvar.175339)hLpos:0 ≤ _fvar.175349 :=
Eq.mp
(Eq.trans
(Eq.trans (congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.symm Nat.cast_zero))
(Eq.trans
(congrArg (fun x => x ≤ ↑_fvar.175349) (Eq.trans Nat.cast_zero (Eq.symm (congrArg Real.toEReal Nat.cast_zero))))
EReal.coe_le_coe_iff._simp_1))
(congrArg (fun x => x ≤ _fvar.175349) Nat.cast_zero))
(Eq.mp (congrArg (fun _a => 0 ≤ _a) _fvar.175596) _fvar.171008)y:ERealhy:L < y.toRealhy':¬y = ⊤ε:ℝ := EReal.toReal _fvar.176263 - _fvar.175349hε:0 < _fvar.178801 :=
Chapter7.Series.ratio_ineq._proof_4 _fvar.168395 _fvar.168396 _fvar.169914 _fvar.171008 _fvar.175339 _fvar.175596
_fvar.175657 _fvar.176263 _fvar.178744 _fvar.178747 _fvar.178748this✝:_fvar.176263 = ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr
(eq_of_heq
((fun α a a_1 a' e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a')) e'_3
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a') (HEq.refl e'_3))
EReal _fvar.176263 (↑(_fvar.175349 + _fvar.178801)) (↑(EReal.toReal _fvar.176263))
(eq_of_heq
((fun a a' e'_1 =>
Eq.casesOn (motive := fun a_1 x => a' = a_1 → e'_1 ≍ x → ↑a ≍ ↑a') e'_1
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_1 : a = a'), e_1 ≍ Eq.refl a → ↑a ≍ ↑a') (fun e_1 h => HEq.refl ↑a)
(Eq.symm h) e'_1)
(Eq.refl a') (HEq.refl e'_1))
(_fvar.175349 + _fvar.178801) (EReal.toReal _fvar.176263)
(of_eq_true
(Eq.trans
(congrArg (fun x => x = EReal.toReal _fvar.176263)
(add_sub_cancel _fvar.175349 (EReal.toReal _fvar.176263)))
(eq_self (EReal.toReal _fvar.176263))))))))
_fvar.178748hε':_fvar.169684 < ↑(_fvar.175349 + _fvar.178801) :=
Eq.mpr (id (congrArg (fun _a => _a < ↑(_fvar.175349 + _fvar.178801)) _fvar.175596))
(Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_lt_coe_iff)))
(lt_of_not_ge fun a =>
Mathlib.Tactic.Linarith.lt_irrefl
(Eq.mp
(congrArg (fun _a => _a < 0)
(Mathlib.Tactic.Ring.of_eq
(Mathlib.Tactic.Ring.add_congr
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul (EReal.toReal _fvar.176263) (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 (_fvar.175349 ^ Nat.rawCast 1 * Nat.rawCast 1)
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))))
(Mathlib.Tactic.Ring.sub_congr
(Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf (EReal.toReal _fvar.176263))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))
(Mathlib.Tactic.Ring.atom_pf _fvar.175349)
(Mathlib.Tactic.Ring.sub_pf
(Mathlib.Tactic.Ring.neg_add
(Mathlib.Tactic.Ring.neg_mul _fvar.175349 (Nat.rawCast 1)
(Mathlib.Tactic.Ring.neg_one_mul
(Mathlib.Meta.NormNum.IsInt.to_raw_eq
(Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.negOfNat 1))))))
Mathlib.Tactic.Ring.neg_zero)
(Mathlib.Tactic.Ring.add_pf_add_gt (_fvar.175349 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast)
(Mathlib.Tactic.Ring.add_pf_add_zero
(EReal.toReal _fvar.176263 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.175349 (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_add_overlap_zero
(Mathlib.Tactic.Ring.add_overlap_pf_zero (EReal.toReal _fvar.176263) (Nat.rawCast 1)
(Mathlib.Meta.NormNum.IsInt.to_isNat
(Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd)
(Mathlib.Meta.NormNum.IsInt.of_raw ℝ (Int.negOfNat 1))
(Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℝ 1))
(Eq.refl (Int.ofNat 0)))))
(Mathlib.Tactic.Ring.add_pf_zero_add 0))))
(Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero))))
(Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.sub_neg_of_lt _fvar.178744)
(Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))N':ℤhN:∀ b ≥ N', ↑(c (b + 1) / c b) < ↑(L + ε)N:ℤ := max _fvar.185498 (max _fvar.168395 1)this:∀ n ≥ _fvar.185595, @_fvar.168394 (n + 1) / @_fvar.168394 n ≤ _fvar.175349 + _fvar.178801 :=
fun n hn =>
have this := Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_5 _fvar.168395 _fvar.185498 n hn a;
have npos :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_6 _fvar.168395 _fvar.185498 n hn this a;
Decidable.byContradiction fun a =>
ne_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801) Nat.cast_one))
(@_fvar.185502 n this))
(le_antisymm
(le_trans
(le_of_lt
(Eq.mp
(Eq.trans
(Eq.trans
(congrArg (fun x => ↑(@_fvar.168394 (n + x) / @_fvar.168394 n) < ↑(_fvar.175349 + _fvar.178801))
(Eq.symm Nat.cast_one))
EReal.coe_lt_coe_iff._simp_1)
(congrArg (fun x => @_fvar.168394 (n + x) / @_fvar.168394 n < _fvar.175349 + _fvar.178801)
Nat.cast_one))
(@_fvar.185502 n this)))
(le_refl (_fvar.175349 + _fvar.178801)))
(le_trans (le_of_not_ge a) (le_refl (@_fvar.168394 (n + 1) / @_fvar.168394 n))))A:ℝ := @_fvar.168394 _fvar.185595 * (_fvar.175349 + _fvar.178801) ^ (-_fvar.185595)hA:0 < _fvar.192882 :=
mul_pos
(@_fvar.168396 _fvar.185595
(Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_7 _fvar.168395 _fvar.185498 a))
(zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) (-_fvar.185595))why2:∀ n ≥ _fvar.185595, @_fvar.168394 n ≤ _fvar.192882 * (_fvar.175349 + _fvar.178801) ^ n := fun n hn => sorrywhy2_root:∀ n ≥ _fvar.185595, ↑(@_fvar.168394 n ^ (1 / ↑n)) ≤ ↑(_fvar.192882 ^ (1 / ↑n) * (_fvar.175349 + _fvar.178801)) :=
fun n hn =>
Eq.mpr (id (congrArg (fun _a => _a) (propext EReal.coe_le_coe_iff)))
(have hn' :=
Decidable.byContradiction fun a => Chapter7.Series.ratio_ineq._proof_8 _fvar.168395 _fvar.185498 n hn a;
Trans.trans
(Trans.trans
(Real.rpow_le_rpow
(le_of_lt
(@_fvar.168396 n
(Decidable.byContradiction fun a =>
Chapter7.Series.ratio_ineq._proof_9 _fvar.168395 _fvar.185498 n hn hn' a)))
(@_fvar.206647 n hn)
(le_of_lt
(div_pos
(Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one)
(Eq.refl (Nat.ble 1 1)))
(Int.cast_pos.mpr hn'))))
(Real.mul_rpow (le_of_lt _fvar.193151)
(le_of_lt (zpow_pos (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008) n))))
((fun {α β γ} [HMul α β γ] 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.192882 ^ (1 / ↑n)) (_fvar.192882 ^ (1 / ↑n)) (Eq.refl (_fvar.192882 ^ (1 / ↑n)))
(((_fvar.175349 + _fvar.178801) ^ n) ^ (1 / ↑n)) (_fvar.175349 + _fvar.178801)
(Eq.mpr
(id
(congrArg (fun _a => _a ^ (1 / ↑n) = _fvar.175349 + _fvar.178801)
(Eq.symm (Real.rpow_intCast (_fvar.175349 + _fvar.178801) n))))
(Eq.mpr
(id
(congrArg (fun _a => _a = _fvar.175349 + _fvar.178801)
(Eq.symm
(Real.rpow_mul
(le_of_lt (Right.add_pos_of_nonneg_of_pos (EReal.toReal_nonneg _fvar.171008) _fvar.179008)) (↑n)
(1 / ↑n)))))
(Eq.mpr
(eq_of_heq
((fun α a a' e'_2 a_1 a'_1 e'_3 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_2 ≍ x → (a = a_1) ≍ (a' = a'_1)) e'_2
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_2 : a = a'), e_2 ≍ Eq.refl a → (a = a_1) ≍ (a' = a'_1))
(fun e_2 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_3 ≍ x → (a = a_1) ≍ (a = a'_1)) e'_3
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_3 : a_1 = a'), e_3 ≍ Eq.refl a_1 → (a = a_1) ≍ (a = a'))
(fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3)
(Eq.refl a'_1) (HEq.refl e'_3))
(Eq.symm h) e'_2)
(Eq.refl a') (HEq.refl e'_2))
ℝ ((_fvar.175349 + _fvar.178801) ^ (↑n * (1 / ↑n))) ((_fvar.175349 + _fvar.178801) ^ 1)
(eq_of_heq
((fun α β γ self a a' e'_5 a_1 a'_1 e'_6 =>
Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_5 ≍ x → a ^ a_1 ≍ a' ^ a'_1) e'_5
(fun h =>
Eq.ndrec (motive := fun a' => ∀ (e_5 : a = a'), e_5 ≍ Eq.refl a → a ^ a_1 ≍ a' ^ a'_1)
(fun e_5 h =>
Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 → e'_6 ≍ x → a ^ a_1 ≍ a ^ a'_1) e'_6
(fun h =>
Eq.ndrec (motive := fun a' =>
∀ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 → a ^ a_1 ≍ a ^ a')
(fun e_6 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_6)
(Eq.refl a'_1) (HEq.refl e'_6))
(Eq.symm h) e'_5)
(Eq.refl a') (HEq.refl e'_5))
ℝ ℝ ℝ instHPow (_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801)
(Eq.refl (_fvar.175349 + _fvar.178801)) (↑n * (1 / ↑n)) 1
(of_eq_true
(Eq.trans
(congrArg (fun x => x = 1)
(Eq.trans (mul_div_assoc' (↑n) 1 ↑n)
(Eq.trans (congrArg (fun x => x / ↑n) (mul_one ↑n))
(div_self (ne_of_gt (Int.cast_pos.mpr hn'))))))
(eq_self 1)))))
(_fvar.175349 + _fvar.178801) (_fvar.175349 + _fvar.178801) (Eq.refl (_fvar.175349 + _fvar.178801))))
(Real.rpow_one (_fvar.175349 + _fvar.178801)))))))⊢ A ≠ 0 All goals completed! 🐙)).tendsto'; All goals completed! 🐙
All goals completed! 🐙Наслідок 7.5.3 (Ознака відношення)
theorem Series.ratio_test_pos {s : Series} (hnon: ∀ n ≥ s.m, s.seq n ≠ 0)
(h : atTop.limsup (fun n ↦ ((|s.seq (n+1)| / |s.seq n|:ℝ):EReal)) < 1) : s.absConverges := s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:limsup (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop < 1⊢ s.absConverges
s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:limsup (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop < 1⊢ limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop ≤ limsup (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop
s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:limsup (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop < 1⊢ ∀ n ≥ s.m, |s.seq n| > 0
s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:limsup (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop < 1n:ℤ⊢ n ≥ s.m → |s.seq n| > 0 ↔ n ≥ s.m → s.seq n ≠ 0
All goals completed! 🐙Наслідок 7.5.3 (Ознака відношення)
theorem Series.ratio_test_neg {s : Series} (hnon: ∀ n ≥ s.m, s.seq n ≠ 0)
(h : atTop.liminf (fun n ↦ ((|s.seq (n+1)| / |s.seq n|:ℝ):EReal)) > 1) : s.diverges := s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ s.diverges
s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop ≤ limsup (fun n => ↑(|s.seq n| ^ (1 / ↑n))) atTop
s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1n:ℤ⊢ |s.seq (n + 1)| = |s.seq (n + 1)|s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ ∀ n ≥ s.m, |s.seq n| > 0s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ ∀ n ≥ s.m, |s.seq n| > 0; s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ ∀ n ≥ s.m, |s.seq n| > 0s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1⊢ ∀ n ≥ s.m, |s.seq n| > 0
all_goals s:Serieshnon:∀ n ≥ s.m, s.seq n ≠ 0h:liminf (fun n => ↑(|s.seq (n + 1)| / |s.seq n|)) atTop > 1n:ℤ⊢ n ≥ s.m → |s.seq n| > 0 ↔ n ≥ s.m → s.seq n ≠ 0; All goals completed! 🐙Наслідок 7.5.3 (Ознака відношення) / Вправа 7.5.3
theorem Series.ratio_test_inconclusive: ∃ s:Series, (∀ n ≥ s.m, s.seq n ≠ 0) ∧
atTop.Tendsto (fun n ↦ |s.seq n+1| / |s.seq n|) (nhds 1) ∧ s.diverges := ⊢ ∃ s, (∀ n ≥ s.m, s.seq n ≠ 0) ∧ Tendsto (fun n => |s.seq n + 1| / |s.seq n|) atTop (nhds 1) ∧ s.diverges
All goals completed! 🐙Наслідок 7.5.3 (Ознака відношення) / Вправа 7.5.3
theorem Series.ratio_test_inconclusive' : ∃ s:Series, (∀ n ≥ s.m, s.seq n ≠ 0) ∧
atTop.Tendsto (fun n ↦ |s.seq n+1| / |s.seq n|) (nhds 1) ∧ s.absConverges := ⊢ ∃ s, (∀ n ≥ s.m, s.seq n ≠ 0) ∧ Tendsto (fun n => |s.seq n + 1| / |s.seq n|) atTop (nhds 1) ∧ s.absConverges
All goals completed! 🐙Твердження 7.5.4
theorem Series.root_self_converges : (fun (n:ℕ) ↦ (n:ℝ)^(1 / n : ℝ) : Series).convergesTo 1 := ⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => ↑n ^ (1 / ↑n)) n.toNat else 0, vanish := ⋯ }.convergesTo 1
-- цей доказ написан так, щоб співпадати із структурою оригінального тексту.
All goals completed! 🐙Вправа 7.5.2
theorem Series.poly_mul_geom_converges {x:ℝ} (hx: |x|<1) (q:ℝ) : (fun n:ℕ ↦ (n:ℝ)^q * x^n : Series).converges
∧ atTop.Tendsto (fun n:ℕ ↦ (n:ℝ)^q * x^n) (nhds 0) := x:ℝhx:|x| < 1q:ℝ⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => ↑n ^ q * x ^ n) n.toNat else 0, vanish := ⋯ }.converges ∧
Tendsto (fun n => ↑n ^ q * x ^ n) atTop (nhds 0)
All goals completed! 🐙end Chapter7