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