Analysis I, Section 7.5: The root and ratio tests
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
-
The root and ratio tests/
A point that is only implicitly stated in the text is that for the root and ratio tests, the lim inf and lim sup should be interpreted within the extended reals. The Lean formalizations below make this point more explicit.
namespace Chapter7open Filter Real ERealTheorem 7.5.1(a) (Root test). A technical condition is needed to ensure the limsup is finite.
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
-- This proof is written to follow the structure of the original text.
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! 🐙Theorem 7.5.1(b) (Root test)
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
-- This proof is written to follow the structure of the original text.
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! 🐙Theorem 7.5.1(c) (Root test) / Exercise 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! 🐙Theorem 7.5.1 (Root test) / Exercise 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! 🐙Lemma 7.5.2 / Exercise 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
-- This proof is written to follow the structure of the original text.
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! 🐙Corollary 7.5.3 (Ratio test)
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! 🐙Corollary 7.5.3 (Ratio test)
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! 🐙Corollary 7.5.3 (Ratio test) / Exercise 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! 🐙Corollary 7.5.3 (Ratio test) / Exercise 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! 🐙Proposition 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
-- This proof is written to follow the structure of the original text.
All goals completed! 🐙Exercise 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