@@ -524,4 +524,87 @@ lemma liminf_nhdsGT_eq_iSup₂ [NoMaxOrder α] (hf : Antitone f) (a : α) :
524524 (𝓝[>] a).liminf f = ⨆ r > a, f r :=
525525 hf.liminf_nhdsGT_eq_iSup₂_of_exists_gt a (exists_gt a)
526526
527+ lemma Antitone.limsup_nhdsGT_eq_iInf₂_of_exists_gt (hf : Antitone f) (a : α) (hb : ∃ b, a < b) :
528+ (𝓝[>] a).limsup f = ⨅ r > a, f r := by
529+ rw [(nhdsGT_basis_of_exists_gt hb).limsup_eq_iInf_iSup]
530+ refine le_antisymm (iInf₂_mono' fun r hr ↦ ?_) (iInf₂_mono' fun r hr ↦ ?_)
531+ · use r, hr
532+ apply iSup_le
533+ simp only [Set.mem_Ioo, iSup_le_iff, and_imp]
534+ intro i hi0 hir
535+ exact hf hi0.le
536+ · obtain ⟨b, hb⟩ := exists_between hr
537+ use b, hb.1
538+ exact iSup₂_le_iSup₂ b hb
539+
540+ lemma Antitone.limsup_nhdsGT_eq_iInf₂ [NoMaxOrder α] (hf : Antitone f) (a : α) :
541+ (𝓝[>] a).limsup f = ⨅ r > a, f r :=
542+ hf.limsup_nhdsGT_eq_iInf₂_of_exists_gt a (exists_gt a)
543+
544+ lemma Monotone.limsup_nhdsGT_eq_iSup₂_of_exists_gt (hf : Monotone f) (a : α) (hb : ∃ b, a < b) :
545+ (𝓝[>] a).limsup f = ⨆ r > a, f r :=
546+ hf.dual.liminf_nhdsGT_eq_iSup₂_of_exists_gt a hb
547+
548+ lemma Monotone.limsup_nhdsGT_eq_iSup₂ [NoMaxOrder α] (hf : Monotone f) (a : α) :
549+ (𝓝[>] a).limsup f = ⨆ r > a, f r :=
550+ hf.limsup_nhdsGT_eq_iSup₂_of_exists_gt a (exists_gt a)
551+
552+ lemma Monotone.liminf_nhdsGT_eq_iInf₂_of_exists_gt (hf : Monotone f) (a : α) (hb : ∃ b, a < b) :
553+ (𝓝[>] a).liminf f = ⨅ r > a, f r :=
554+ hf.dual.limsup_nhdsGT_eq_iInf₂_of_exists_gt a hb
555+
556+ lemma Monotone.liminf_nhdsGT_eq_iInf₂ [NoMaxOrder α] (hf : Monotone f) (a : α) :
557+ (𝓝[>] a).liminf f = ⨅ r > a, f r :=
558+ hf.liminf_nhdsGT_eq_iInf₂_of_exists_gt a (exists_gt a)
559+
560+ lemma Antitone.liminf_nhdsLT_eq_iSup₂_of_exists_lt (hf : Antitone f) (a : α) (hb : ∃ b, b < a) :
561+ (𝓝[<] a).liminf f = ⨆ r < a, f r := by
562+ rw [(nhdsLT_basis_of_exists_lt hb).liminf_eq_iSup_iInf]
563+ refine le_antisymm (iSup₂_mono' fun r hr ↦ ?_) (iSup₂_mono' fun r hr ↦ ?_)
564+ · obtain ⟨b, hb⟩ := exists_between hr
565+ use b, hb.2
566+ exact iInf₂_le b hb
567+ · use r, hr
568+ apply le_iInf
569+ simp only [Set.mem_Ioo, le_iInf_iff, and_imp]
570+ intro i hir _
571+ exact hf hir.le
572+
573+ lemma Antitone.liminf_nhdsLT_eq_iSup₂ [NoMinOrder α] (hf : Antitone f) (a : α) :
574+ (𝓝[<] a).liminf f = ⨆ r < a, f r :=
575+ hf.liminf_nhdsLT_eq_iSup₂_of_exists_lt a (exists_lt a)
576+
577+ lemma Antitone.limsup_nhdsLT_eq_iInf₂_of_exists_lt (hf : Antitone f) (a : α) (hb : ∃ b, b < a) :
578+ (𝓝[<] a).limsup f = ⨅ r < a, f r := by
579+ rw [(nhdsLT_basis_of_exists_lt hb).limsup_eq_iInf_iSup]
580+ refine le_antisymm (iInf₂_mono' fun r hr ↦ ?_) (iInf₂_mono' fun r hr ↦ ?_)
581+ · use r, hr
582+ apply iSup_le
583+ simp only [Set.mem_Ioo, iSup_le_iff, and_imp]
584+ intro i _ hia
585+ exact hf hia.le
586+ · obtain ⟨b, hb⟩ := exists_between hr
587+ use b, hb.2
588+ exact iSup₂_le_iSup₂ b hb
589+
590+ lemma Antitone.limsup_nhdsLT_eq_iInf₂ [NoMinOrder α] (hf : Antitone f) (a : α) :
591+ (𝓝[<] a).limsup f = ⨅ r < a, f r :=
592+ hf.limsup_nhdsLT_eq_iInf₂_of_exists_lt a (exists_lt a)
593+
594+ lemma Monotone.limsup_nhdsLT_eq_iSup₂_of_exists_lt (hf : Monotone f) (a : α) (hb : ∃ b, b < a) :
595+ (𝓝[<] a).limsup f = ⨆ r < a, f r :=
596+ hf.dual.liminf_nhdsLT_eq_iSup₂_of_exists_lt a hb
597+
598+ lemma Monotone.limsup_nhdsLT_eq_iSup₂ [NoMinOrder α] (hf : Monotone f) (a : α) :
599+ (𝓝[<] a).limsup f = ⨆ r < a, f r :=
600+ hf.limsup_nhdsLT_eq_iSup₂_of_exists_lt a (exists_lt a)
601+
602+ lemma Monotone.liminf_nhdsLT_eq_iInf₂_of_exists_lt (hf : Monotone f) (a : α) (hb : ∃ b, b < a) :
603+ (𝓝[<] a).liminf f = ⨅ r < a, f r :=
604+ hf.dual.limsup_nhdsLT_eq_iInf₂_of_exists_lt a hb
605+
606+ lemma Monotone.liminf_nhdsLT_eq_iInf₂ [NoMinOrder α] (hf : Monotone f) (a : α) :
607+ (𝓝[<] a).liminf f = ⨅ r < a, f r :=
608+ hf.liminf_nhdsLT_eq_iInf₂_of_exists_lt a (exists_lt a)
609+
527610end
0 commit comments