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:

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 EReal

Theorem 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 < 1s.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:α' < 1s.absConverges have hpos : 0 α' := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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:α' < 1IsBoundedUnder (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.1291s.absConverges have hαα' : α' = α := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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) / 2s.absConverges have : 0 < ε := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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 < 1s.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:0 < _fvar.8335 := ?_mvar.8462α < α + ε; All goals completed! 🐙 have : α + ε < 1 := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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: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 < 1s.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) / 2: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))))):_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 < 1s.absConverges have : n N' := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.absConverges All goals completed! 🐙 have npos : 0 < n := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2: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))))):_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) / 2: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))))):_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) / 2: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))))):_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) / 2: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))))):_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) / 2: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))))):_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) / 2: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))))):_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) / 2: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))))):_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 < 1s.absConverges All goals completed! 🐙 have hgeom : (fun n (α+ε) ^ n : Series).converges := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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)).convergess.absConverges have : (s.from N).absConverges := s:Seriesh:limsup (fun n => (|s.seq n| ^ (1 / n))) atTop < 1s.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:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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)).convergesmax 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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 < 1s.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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.57342n = 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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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.44825s.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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.44825s.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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.44825s.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) / 2: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))))):_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 Ns.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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 Nn < 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) / 2:0 < _fvar.8335 := ?_mvar.8462hε':_fvar.1291 < (_fvar.4877 + _fvar.8335) := ?_mvar.12146:_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 Ns.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 > 1s.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 > 1IsCoboundedUnder (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| < 1False 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| < 1False; 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.158950Falses: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| < 10 |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| < 10 < 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.158950Falses: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| < 10 |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| < 10 < 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) < 1False All goals completed! 🐙

Theorem 7.5.1(c) (Root test) / Exercise 7.5.3

theorem declaration uses 'sorry'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 declaration uses 'sorry'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 declaration uses 'sorry'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 > 0liminf (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 > 0liminf (fun n => (c (n + 1) / c n)) atTop liminf (fun n => (c n ^ (1 / n))) atTopc: m:hpos: n m, c n > 0IsBoundedUnder (fun x1 x2 => x1 x2) atTop fun n => (c n ^ (1 / n))c: m:hpos: n m, c n > 0IsBoundedUnder (fun x1 x2 => x1 x2) atTop fun n => (c n ^ (1 / n))c: m:hpos: n m, c n > 0limsup (fun n => (c n ^ (1 / n))) atTop limsup (fun n => (c (n + 1) / c n)) atTop c: m:hpos: n m, c n > 0liminf (fun n => (c (n + 1) / c n)) atTop liminf (fun n => (c n ^ (1 / n))) atTopc: m:hpos: n m, c n > 0IsBoundedUnder (fun x1 x2 => x1 x2) atTop fun n => (c n ^ (1 / n))c: m:hpos: n m, c n > 0IsBoundedUnder (fun x1 x2 => x1 x2) atTop fun n => (c n ^ (1 / n))c: m:hpos: n m, c n > 0limsup (fun n => (c n ^ (1 / n))) atTop limsup (fun n => (c (n + 1) / c n)) atTop try c: m:hpos: n m, c n > 0limsup (fun n => (c n ^ (1 / n))) atTop limsup (fun n => (c (n + 1) / c n)) atTop c: m:hpos: n m, c n > 0liminf (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.atToplimsup (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 > 0liminf (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 > 0liminf (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.169684limsup (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 > 0liminf (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' = L0 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' < ylimsup (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 > 0liminf (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.toReallimsup (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.175349limsup (fun n => (c n ^ (1 / n))) atTop y have : 0 < ε := c: m:hpos: n m, c n > 0liminf (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 > 0liminf (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.175349:0 < _fvar.178801 := ?_mvar.179007L + ε = 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.175349:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = (_fvar.175349 + _fvar.178801) := ?_mvar.182112limsup (fun n => (c n ^ (1 / n))) atTop (L + ε) have hε' : L' < (L+ε:) := c: m:hpos: n m, c n > 0liminf (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.175349:0 < _fvar.178801 := ?_mvar.179007this:_fvar.176263 = (_fvar.175349 + _fvar.178801) := ?_mvar.182112L < 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.175349: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.175349: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.175349: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.175349: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 > 0liminf (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 > 0liminf (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 > 0liminf (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.175349: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.175349: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.175349: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 > 0liminf (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.175349: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 > 0liminf (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 > 0liminf (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.175349: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 Nc n ^ (1 / n) A ^ (1 / n) * (L + ε) have hn' : n > 0 := c: m:hpos: n m, c n > 0liminf (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.175349: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 ac 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.175349: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 an 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.175349: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 a0 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.175349: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 a0 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.175349: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 a0 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.175349: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 a0 (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.175349: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 aA ^ (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.175349: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.175349: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.175349: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 an * (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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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.175349: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 < 1s.absConverges s:Serieshnon: n s.m, s.seq n 0h:limsup (fun n => (|s.seq (n + 1)| / |s.seq n|)) atTop < 1limsup (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 > 1s.diverges s:Serieshnon: n s.m, s.seq n 0h:liminf (fun n => (|s.seq (n + 1)| / |s.seq n|)) atTop > 1liminf (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 declaration uses 'sorry'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 declaration uses 'sorry'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 declaration uses 'sorry'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 declaration uses 'sorry'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