Analysis I, Section 9.6: The maximum principle

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:

  • Continuous functions on closed and bounded intervals are bounded.

  • Continuous functions on closed and bounded intervals attain their maximum and minimum.

namespace Chapter9

Definition 9.6.1

abbrev BddAboveOn (f: ) (X:Set ) : Prop := M, x X, f x M
abbrev BddBelowOn (f: ) (X:Set ) : Prop := M, x X, -M f xabbrev BddOn (f: ) (X:Set ) : Prop := M, x X, |f x| M

Remark 9.6.2

theorem declaration uses `sorry`BddOn.iff (f: ) (X:Set ) : BddOn f X BddAboveOn f X BddBelowOn f X := f: X:Set BddOn f X BddAboveOn f X BddBelowOn f X All goals completed! 🐙
theorem declaration uses `sorry`BddOn.iff' (f: ) (X:Set ) : BddOn f X Bornology.IsBounded (f '' X) := f: X:Set BddOn f X Bornology.IsBounded (f '' X) All goals completed! 🐙theorem BddOn.of_bounded {f : } {X: Set } {M:} (h: x X, |f x| M) : BddOn f X := f: X:Set M:h: x X, |f x| MBddOn f X All goals completed! 🐙declaration uses `sorry`example : Continuous (fun x: x) := Continuous fun x => x All goals completed! 🐙declaration uses `sorry`example : ¬ BddOn (fun x: x) .univ := ¬BddOn (fun x => x) Set.univ All goals completed! 🐙declaration uses `sorry`example : BddOn (fun x: x) (.Icc 1 2) := BddOn (fun x => x) (Set.Icc 1 2) All goals completed! 🐙declaration uses `sorry`example : ContinuousOn (fun x: 1/x) (.Ioo 0 1) := ContinuousOn (fun x => 1 / x) (Set.Ioo 0 1) All goals completed! 🐙declaration uses `sorry`example : ¬ BddOn (fun x: 1/x) (.Ioo 0 1) := ¬BddOn (fun x => 1 / x) (Set.Ioo 0 1) All goals completed! 🐙theorem declaration uses `sorry`why_7_6_3 {n: } (hn: StrictMono n) (j:) : n j j := n: hn:StrictMono nj:n j j All goals completed! 🐙

Lemma 9.6.3

theorem BddOn.of_continuous_on_compact {a b:} (_h:a < b) {f: } (hf: ContinuousOn f (.Icc a b) ) : BddOn f (.Icc a b) := a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)BddOn f (Set.Icc a b) -- This proof is written to follow the structure of the original text. a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)hunbound: (M : ), x Set.Icc a b, M < |f x|False; a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)hunbound: (M : ), x, (a x x b) M < |f x|False a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .chooseFalse have hx (n:) : a x n x n b n < |f (x n)| := a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)BddOn f (Set.Icc a b) a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosen:h3:n < |f .choose|h1:a .chooseh2:.choose ba x n x n b n < |f (x n)|; All goals completed! 🐙 a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)False a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)False have haX (n:): x n X := a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)BddOn f (Set.Icc a b) a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)n:a x n x n b; a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .chooseX:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)n:hx:a x n x n b n < |f (x n)|a x n x n b; All goals completed! 🐙 a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)False a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhf:ContinuousOn f XhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jhf:ContinuousWithinAt f X L := ContinuousOn.continuousWithinAt _fvar.11023 hLXFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jhf:Convergesto X f (f L) LFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jhf:Filter.Tendsto (fun n_1 => f (x (n n_1))) Filter.atTop (nhds (f L)) := Convergesto.comp (AdherentPt.of_mem hLX) _fvar.21304 (fun j => haX (n j)) hconvFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jhf:Bornology.IsBounded (Set.range fun n_1 => f (x (n n_1)))False a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jhf: M > 0, (Set.range fun n_1 => f (x (n n_1))) Set.Icc (-M) MFalse; a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jM:hpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) Set.Icc (-M) MFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .choosehx: (n : ), a x n x n b n < |f (x n)| := fun n => And.casesOn (Exists.choose_spec (hunbound n)) fun left h3 => And.casesOn left fun h1 h2 => h1, h2, h3X:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jM:hpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) Set.Icc (-M) Mj:hj:M < jFalse a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .chooseX:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jM:hpos:M > 0hM:(Set.range fun n_1 => f (x (n n_1))) Set.Icc (-M) Mj:hj:M < jhx:(n j) < |f (x (n j))| := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)False replace hM : f (x (n j)) Set.Icc (-M) M := a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)BddOn f (Set.Icc a b) All goals completed! 🐙 a:b:_h:a < bf: hunbound: (M : ), x, (a x x b) M < |f x|x: := fun n => .chooseX:Set := Set.Icc a bhXclosed:IsClosed (Set.Icc a b)hXbounded:Bornology.IsBounded (Set.Icc a b)haX: (n : ), x n X := fun n => Eq.mpr (id Set.mem_Icc._simp_1) (of_continuous_on_compact._proof_2 hunbound n (hx n))n: hn:StrictMono nL:hLX:L Xhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds L)why: (j : ), n j j := fun j => why_7_6_3 hn jM:hpos:M > 0j:hj:M < jhx:(n j) < |f (x (n j))| := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hM:|f (x (n j))| MFalse have : n j (j:) := a:b:_h:a < bf: hf:ContinuousOn f (Set.Icc a b)BddOn f (Set.Icc a b) All goals completed! 🐙 All goals completed! 🐙
isMaxOn_iff.{u, v} {α : Type u} {β : Type v} [Preorder β] {f : α  β} {s : Set α} {a : α} :
  IsMaxOn f s a   x  s, f x  f a
isMinOn_iff.{u, v} {α : Type u} {β : Type v} [Preorder β] {f : α  β} {s : Set α} {a : α} :
  IsMinOn f s a   x  s, f a  f x

Remark 9.6.6

theorem declaration uses `sorry`BddAboveOn.isMaxOn {f: } {X:Set } {x₀:} (h: IsMaxOn f X x₀): BddAboveOn f X := f: X:Set x₀:h:IsMaxOn f X x₀BddAboveOn f X All goals completed! 🐙
theorem declaration uses `sorry`BddBelowOn.isMinOn {f: } {X:Set } {x₀:} (h: IsMinOn f X x₀): BddBelowOn f X := f: X:Set x₀:h:IsMinOn f X x₀BddBelowOn f X All goals completed! 🐙

Proposition 9.6.7 (Maximum principle)

theorem declaration uses `sorry`IsMaxOn.of_continuous_on_compact {a b:} (h:a < b) {f: } (hf: ContinuousOn f (.Icc a b)) : xmax Set.Icc a b, IsMaxOn f (.Icc a b) xmax := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax -- This proof is written to follow the structure of the original text. a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| M xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a b xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax have hE : E .Icc (-M) M := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bx:hx:x Set.Icc a bf x Set.Icc (-M) M; All goals completed! 🐙 have hnon : E := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))¬Set.Icc a b = ; a:b:f: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))h:Set.Icc a b = b a; All goals completed! 🐙 a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup E xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hy xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h✝:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyh: xmax Set.Icc a b, f xmax = m xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmaxa:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hy xmax Set.Icc a b, f xmax = m a:b:h✝:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyh: xmax Set.Icc a b, f xmax = m xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙 have claim2 (n:) : x Set.Icc a b, m - 1/(n+1:) < f x := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax have : 1/(n+1:) > 0 := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙 replace : m - 1/(n+1:) < sSup E := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax All goals completed! 🐙 a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E.Nonemptym: := sSup Eclaim1: {y : }, y E y mn:this:m - 1 / (n + 1) < sSup E x Set.Icc a b, m - 1 / (n + 1) < f x a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E.Nonemptym: := sSup Eclaim1: {y : }, y E y mn:this: a E, m - 1 / (n + 1) < a x Set.Icc a b, m - 1 / (n + 1) < f x All goals completed! 🐙 a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choose xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).left xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).right xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b) xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b) xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax) xmax Set.Icc a b, f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)f xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jf xmax = m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvf xmax = m have hlower (j:) : m - 1/(j+1:) < f (x (n j)) := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvj:m - 1 / (j + 1) m - 1 / ((n j) + 1); a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvj:j n j; All goals completed! 🐙 have hupper (j:) : f (x (n j)) m := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))j:f (x (n j)) E; a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))j: x_1, (a x_1 x_1 b) f x_1 = f (x (n j)); All goals completed! 🐙 have hconvm : Filter.atTop.Tendsto (fun j f (x (n j))) (nhds m) := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, IsMaxOn f (Set.Icc a b) xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))Filter.Tendsto (fun j => m - 1 / (j + 1)) Filter.atTop (nhds m)a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))Filter.Tendsto (fun x => m) Filter.atTop (nhds m)a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))(fun j => m - 1 / (j + 1)) fun j => f (x (n j))a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))(fun j => f (x (n j))) fun x => m a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))Filter.Tendsto (fun j => m - 1 / (j + 1)) Filter.atTop (nhds m) a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))m = m - 0; All goals completed! 🐙 a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))Filter.Tendsto (fun x => m) Filter.atTop (nhds m) All goals completed! 🐙 a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))(fun j => m - 1 / (j + 1)) fun j => f (x (n j)) a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)M:hM: x Set.Icc a b, |f x| ME:Set := f '' Set.Icc a bhE:E Set.Icc (-M) M := fun a_1 a_2 => Exists.casesOn a_2 fun x h => And.casesOn h fun hx right => right of_eq_true (Eq.trans Set.mem_Icc._simp_1 (Eq.trans BddOn.of_continuous_on_compact._simp_4 (eq_true (hM x hx))))hnon:E := Eq.mpr (id (congrArg Not Set.image_eq_empty._simp_1)) (Mathlib.Tactic.Contrapose.contrapose₃ (Eq.mpr (id (implies_congr (Eq.refl (Set.Icc a b = )) not_lt._simp_1)) fun h => of_continuous_on_compact._proof_1 h) h)m: := sSup Eclaim1: {y : }, y E y m := fun {y} hy => le_csSup (BddAbove.mono hE bddAbove_Icc) hyclaim2: (n : ), x Set.Icc a b, m - 1 / (n + 1) < f x := fun n => have this := div_pos (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1))) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))); have this := lt_of_not_ge fun a => Mathlib.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.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_zero (Nat.rawCast 1)) (Mathlib.Tactic.Ring.zero_mul 0) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.mul_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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.atom_pf (sSup E)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ 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 Nat.cast_one)) (Mathlib.Tactic.Ring.atom_pf m) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (sSup E) (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 (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * 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.div_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf n) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one)) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.div_pf (Mathlib.Tactic.Ring.atom_pf' (Eq.refl (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹)) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_mul (Mathlib.Tactic.Ring.mul_add (Mathlib.Tactic.Ring.mul_pf_right (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (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 ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))) (Mathlib.Tactic.Ring.zero_mul ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)) (Mathlib.Tactic.Ring.add_pf_add_zero ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast) (Mathlib.Tactic.Ring.add_pf_add_zero (sSup E ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsNat.to_raw_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Eq.refl (Int.ofNat 1))))))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (sSup E) (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.add_pf_add_gt ((Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (sSup E) (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.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.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (Nat.rawCast 1 + (n ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))⁻¹ (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl))) (Mathlib.Tactic.Linarith.sub_neg_of_lt this)) (Eq.mp (congrArg (fun _a => _a 0) (Mathlib.Tactic.Linarith.without_one_mul (Mathlib.Tactic.CancelDenoms.sub_subst rfl (Mathlib.Tactic.CancelDenoms.sub_subst rfl rfl)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))); of_continuous_on_compact._proof_2 n (exists_lt_of_lt_csSup (Eq.mp (congrArg (fun _a => _a) (Eq.symm (propext Set.nonempty_iff_ne_empty))) hnon) this)x: := fun n => .choosehx: (n : ), x n Set.Icc a b := fun n => (Exists.choose_spec (claim2 n)).lefthfx: (n : ), m - 1 / (n + 1) < f (x n) := fun n => (Exists.choose_spec (claim2 n)).righthclosed:IsClosed (Set.Icc a b)hbounded:Bornology.IsBounded (Set.Icc a b)n: hn:StrictMono nxmax:hmax:xmax Set.Icc a bhconv:Filter.Tendsto (fun j => x (n j)) Filter.atTop (nhds xmax)hn_lower: (j : ), n j j := fun j => why_7_6_3 hn jhconv':Filter.Tendsto (fun j => f (x (n j))) Filter.atTop (nhds (f xmax)) := Filter.Tendsto.comp_of_continuous hmax (ContinuousOn.continuousWithinAt hf hmax) (fun j => hx (n j)) hconvhlower: (j : ), m - 1 / (j + 1) < f (x (n j)) := fun j => lt_of_le_of_lt (sub_le_sub_left (div_le_div₀ (le_of_lt (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (le_refl 1) (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' j) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_one) (Eq.refl (Nat.ble 1 1)))) (add_le_add_left (Nat.mono_cast (of_continuous_on_compact._proof_5 n hn_lower j)) 1)) m) (hfx (n j))hupper: (j : ), f (x (n j)) m := fun j => claim1 (Eq.mpr (id (Eq.trans (Set.mem_image._simp_1 f (Set.Icc a b) (f (x (n j)))) (congrArg Exists (funext fun x_1 => congrFun' (congrArg And Set.mem_Icc._simp_1) (f x_1 = f (x (n j))))))) (Exists.intro (x (n j)) hx (n j), Eq.refl (f (x (n j)))))i✝:(fun j => m - 1 / (j + 1)) i✝ (fun j => f (x (n j))) i✝; All goals completed! 🐙 All goals completed! 🐙 All goals completed! 🐙
theorem declaration uses `sorry`IsMinOn.of_continuous_on_compact {a b:} (h:a < b) {f: } (hf: ContinuousOn f (.Icc a b)) : xmin Set.Icc a b, IsMinOn f (.Icc a b) xmin := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmin Set.Icc a b, IsMinOn f (Set.Icc a b) xmin All goals completed! 🐙declaration uses `sorry`example : IsMaxOn (fun x x^2) (.Icc (-2) 2) 2 := IsMaxOn (fun x => x ^ 2) (Set.Icc (-2) 2) 2 All goals completed! 🐙declaration uses `sorry`example : IsMaxOn (fun x x^2) (.Icc (-2) 2) (-2) := IsMaxOn (fun x => x ^ 2) (Set.Icc (-2) 2) (-2) All goals completed! 🐙theorem sSup.of_isMaxOn {f: } {X:Set } {x₀:} (hx₀: x₀ X) (h: IsMaxOn f X x₀) : sSup (f '' X) = f x₀ := f: X:Set x₀:hx₀:x₀ Xh:IsMaxOn f X x₀sSup (f '' X) = f x₀ f: X:Set x₀:hx₀:x₀ Xh:IsMaxOn f X x₀IsGreatest (f '' X) (f x₀) f: X:Set x₀:hx₀:x₀ Xh:IsMaxOn f X x₀(∃ x X, f x = f x₀) a X, f a f x₀ All goals completed! 🐙theorem sInf.of_isMinOn {f: } {X:Set } {x₀:} (hx₀: x₀ X) (h: IsMinOn f X x₀) : sInf (f '' X) = f x₀ := f: X:Set x₀:hx₀:x₀ Xh:IsMinOn f X x₀sInf (f '' X) = f x₀ f: X:Set x₀:hx₀:x₀ Xh:IsMinOn f X x₀IsLeast (f '' X) (f x₀) f: X:Set x₀:hx₀:x₀ Xh:IsMinOn f X x₀(∃ x X, f x = f x₀) a X, f x₀ f a All goals completed! 🐙theorem sSup.of_continuous_on_compact {a b:} (h:a < b) (f: ) (hf: ContinuousOn f (.Icc a b)) : xmax Set.Icc a b, sSup (f '' .Icc a b) = f xmax := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmax Set.Icc a b, sSup (f '' Set.Icc a b) = f xmax a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)x:hx:x Set.Icc a bh':IsMaxOn f (Set.Icc a b) x xmax Set.Icc a b, sSup (f '' Set.Icc a b) = f xmax All goals completed! 🐙theorem sInf.of_continuous_on_compact {a b:} (h:a < b) (f: ) (hf: ContinuousOn f (.Icc a b)) : xmin Set.Icc a b, sInf (f '' .Icc a b) = f xmin := a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b) xmin Set.Icc a b, sInf (f '' Set.Icc a b) = f xmin a:b:h:a < bf: hf:ContinuousOn f (Set.Icc a b)x:hx:x Set.Icc a bh':IsMinOn f (Set.Icc a b) x xmin Set.Icc a b, sInf (f '' Set.Icc a b) = f xmin All goals completed! 🐙

Exercise 9.6.1

declaration uses `sorry`example : f: , ContinuousOn f (.Ioo 1 2) BddOn f (.Ioo 1 2) x₀ Set.Ioo 1 2, IsMinOn f (.Ioo 1 2) x₀ ¬ x₀ Set.Ioo 1 2, IsMaxOn f (.Ioo 1 2) x₀ := f, ContinuousOn f (Set.Ioo 1 2) BddOn f (Set.Ioo 1 2) x₀ Set.Ioo 1 2, IsMinOn f (Set.Ioo 1 2) x₀ ¬ x₀ Set.Ioo 1 2, IsMaxOn f (Set.Ioo 1 2) x₀ All goals completed! 🐙

Exercise 9.6.1

declaration uses `sorry`example : f: , ContinuousOn f (.Ioo 1 2) BddOn f (.Ioo 1 2) x₀ Set.Ioo 1 2, IsMaxOn f (.Ioo 1 2) x₀ ¬ x₀ Set.Ioo 1 2, IsMinOn f (.Ioo 1 2) x₀ := f, ContinuousOn f (Set.Ioo 1 2) BddOn f (Set.Ioo 1 2) x₀ Set.Ioo 1 2, IsMaxOn f (Set.Ioo 1 2) x₀ ¬ x₀ Set.Ioo 1 2, IsMinOn f (Set.Ioo 1 2) x₀ All goals completed! 🐙

Exercise 9.6.1

declaration uses `sorry`example : f: , BddOn f (.Icc (-1) 1) ¬ x₀ Set.Icc (-1) 1, IsMinOn f (.Icc (-1) 1) x₀ ¬ x₀ Set.Icc (-1) 1, IsMaxOn f (.Icc (-1) 1) x₀ := f, BddOn f (Set.Icc (-1) 1) ¬ x₀ Set.Icc (-1) 1, IsMinOn f (Set.Icc (-1) 1) x₀ ¬ x₀ Set.Icc (-1) 1, IsMaxOn f (Set.Icc (-1) 1) x₀ All goals completed! 🐙

Exercise 9.6.1

declaration uses `sorry`example : f: , ¬ BddAboveOn f (.Icc (-1) 1) ¬ BddBelowOn f (.Icc (-1) 1) := f, ¬BddAboveOn f (Set.Icc (-1) 1) ¬BddBelowOn f (Set.Icc (-1) 1) All goals completed! 🐙
end Chapter9