order.filter.intervalMathlib.Order.Filter.Interval

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Data.Set.Intervals.OrdConnected
+import Order.Interval.Set.OrdConnected
 import Order.Filter.SmallSets
 import Order.Filter.AtTopBot
 
Diff
@@ -105,7 +105,7 @@ theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 #print Filter.tendstoIxxClass_principal /-
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Mathbin.Data.Set.Intervals.OrdConnected
-import Mathbin.Order.Filter.SmallSets
-import Mathbin.Order.Filter.AtTopBot
+import Data.Set.Intervals.OrdConnected
+import Order.Filter.SmallSets
+import Order.Filter.AtTopBot
 
 #align_import order.filter.interval from "leanprover-community/mathlib"@"a11f9106a169dd302a285019e5165f8ab32ff433"
 
@@ -105,7 +105,7 @@ theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 #print Filter.tendstoIxxClass_principal /-
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module order.filter.interval
-! leanprover-community/mathlib commit a11f9106a169dd302a285019e5165f8ab32ff433
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Set.Intervals.OrdConnected
 import Mathbin.Order.Filter.SmallSets
 import Mathbin.Order.Filter.AtTopBot
 
+#align_import order.filter.interval from "leanprover-community/mathlib"@"a11f9106a169dd302a285019e5165f8ab32ff433"
+
 /-!
 # Convergence of intervals
 
@@ -108,7 +105,7 @@ theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 #print Filter.tendstoIxxClass_principal /-
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
Diff
@@ -61,6 +61,7 @@ section Preorder
 
 variable [Preorder α]
 
+#print Filter.TendstoIxxClass /-
 /-- A pair of filters `l₁`, `l₂` has `tendsto_Ixx_class Ixx` property if `Ixx a b` tends to
 `l₂.small_sets` as `a` and `b` tend to `l₁`. In all instances `Ixx` is one of `Icc`, `Ico`, `Ioc`,
 or `Ioo`. The instances provide the best `l₂` for a given `l₁`. In many cases `l₁ = l₂` but
@@ -73,54 +74,71 @@ We mark `l₂` as an `out_param` so that Lean can automatically find an appropri
 class TendstoIxxClass (Ixx : α → α → Set α) (l₁ : Filter α) (l₂ : outParam <| Filter α) : Prop where
   tendsto_Ixx : Tendsto (fun p : α × α => Ixx p.1 p.2) (l₁ ×ᶠ l₁) l₂.smallSets
 #align filter.tendsto_Ixx_class Filter.TendstoIxxClass
+-/
 
+#print Filter.Tendsto.Icc /-
 theorem Tendsto.Icc {l₁ l₂ : Filter α} [TendstoIxxClass Icc l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Icc (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Icc Filter.Tendsto.Icc
+-/
 
+#print Filter.Tendsto.Ioc /-
 theorem Tendsto.Ioc {l₁ l₂ : Filter α} [TendstoIxxClass Ioc l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ioc (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ioc Filter.Tendsto.Ioc
+-/
 
+#print Filter.Tendsto.Ico /-
 theorem Tendsto.Ico {l₁ l₂ : Filter α} [TendstoIxxClass Ico l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ico (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ico Filter.Tendsto.Ico
+-/
 
+#print Filter.Tendsto.Ioo /-
 theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ioo (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+#print Filter.tendstoIxxClass_principal /-
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
   Iff.trans ⟨fun h => h.1, fun h => ⟨h⟩⟩ <| by
     simp only [small_sets_principal, prod_principal_principal, tendsto_principal_principal,
       forall_prod_set, mem_powerset_iff, mem_principal]
 #align filter.tendsto_Ixx_class_principal Filter.tendstoIxxClass_principal
+-/
 
+#print Filter.tendstoIxxClass_inf /-
 theorem tendstoIxxClass_inf {l₁ l₁' l₂ l₂' : Filter α} {Ixx} [h : TendstoIxxClass Ixx l₁ l₂]
     [h' : TendstoIxxClass Ixx l₁' l₂'] : TendstoIxxClass Ixx (l₁ ⊓ l₁') (l₂ ⊓ l₂') :=
   ⟨by simpa only [prod_inf_prod, small_sets_inf] using h.1.inf h'.1⟩
 #align filter.tendsto_Ixx_class_inf Filter.tendstoIxxClass_inf
+-/
 
+#print Filter.tendstoIxxClass_of_subset /-
 theorem tendstoIxxClass_of_subset {l₁ l₂ : Filter α} {Ixx Ixx' : α → α → Set α}
     (h : ∀ a b, Ixx a b ⊆ Ixx' a b) [h' : TendstoIxxClass Ixx' l₁ l₂] : TendstoIxxClass Ixx l₁ l₂ :=
   ⟨h'.1.smallSets_mono <| eventually_of_forall <| Prod.forall.2 h⟩
 #align filter.tendsto_Ixx_class_of_subset Filter.tendstoIxxClass_of_subset
+-/
 
+#print Filter.HasBasis.tendstoIxxClass /-
 theorem HasBasis.tendstoIxxClass {ι : Type _} {p : ι → Prop} {s} {l : Filter α}
     (hl : l.HasBasis p s) {Ixx : α → α → Set α}
     (H : ∀ i, p i → ∀ x ∈ s i, ∀ y ∈ s i, Ixx x y ⊆ s i) : TendstoIxxClass Ixx l l :=
   ⟨(hl.prod_self.tendsto_iffₓ hl.smallSets).2 fun i hi => ⟨i, hi, fun x hx => H i hi _ hx.1 _ hx.2⟩⟩
 #align filter.has_basis.tendsto_Ixx_class Filter.HasBasis.tendstoIxxClass
+-/
 
 #print Filter.tendsto_Icc_atTop_atTop /-
 instance tendsto_Icc_atTop_atTop : TendstoIxxClass Icc (atTop : Filter α) atTop :=
@@ -325,10 +343,12 @@ instance tendsto_uIcc_of_Icc {l : Filter α} [TendstoIxxClass Icc l l] : Tendsto
 #align filter.tendsto_uIcc_of_Icc Filter.tendsto_uIcc_of_Icc
 -/
 
+#print Filter.Tendsto.uIcc /-
 theorem Tendsto.uIcc {l : Filter α} [TendstoIxxClass Icc l l] {f g : β → α} {lb : Filter β}
     (hf : Tendsto f lb l) (hg : Tendsto g lb l) : Tendsto (fun x => [f x, g x]) lb l.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| hf.prod_mk hg
 #align filter.tendsto.uIcc Filter.Tendsto.uIcc
+-/
 
 end LinearOrder
 
Diff
@@ -98,7 +98,7 @@ theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
   Iff.trans ⟨fun h => h.1, fun h => ⟨h⟩⟩ <| by
Diff
@@ -51,7 +51,7 @@ that need topology are defined in `topology/algebra/ordered`.
 
 variable {α β : Type _}
 
-open Classical Filter Interval
+open scoped Classical Filter Interval
 
 open Set Function
 
Diff
@@ -61,12 +61,6 @@ section Preorder
 
 variable [Preorder α]
 
-/- warning: filter.tendsto_Ixx_class -> Filter.TendstoIxxClass is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α], (α -> α -> (Set.{u1} α)) -> (Filter.{u1} α) -> (outParam.{succ u1} (Filter.{u1} α)) -> Prop
-but is expected to have type
-  forall {α : Type.{u1}}, (α -> α -> (Set.{u1} α)) -> (Filter.{u1} α) -> (outParam.{succ u1} (Filter.{u1} α)) -> Prop
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class Filter.TendstoIxxClassₓ'. -/
 /-- A pair of filters `l₁`, `l₂` has `tendsto_Ixx_class Ixx` property if `Ixx a b` tends to
 `l₂.small_sets` as `a` and `b` tend to `l₁`. In all instances `Ixx` is one of `Icc`, `Ico`, `Ioc`,
 or `Ioo`. The instances provide the best `l₂` for a given `l₁`. In many cases `l₁ = l₂` but
@@ -80,60 +74,30 @@ class TendstoIxxClass (Ixx : α → α → Set α) (l₁ : Filter α) (l₂ : ou
   tendsto_Ixx : Tendsto (fun p : α × α => Ixx p.1 p.2) (l₁ ×ᶠ l₁) l₂.smallSets
 #align filter.tendsto_Ixx_class Filter.TendstoIxxClass
 
-/- warning: filter.tendsto.Icc -> Filter.Tendsto.Icc is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α} [_inst_2 : Filter.TendstoIxxClass.{u1} α _inst_1 (Set.Icc.{u1} α _inst_1) l₁ l₂] {lb : Filter.{u2} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u2, u1} β α u₁ lb l₁) -> (Filter.Tendsto.{u2, u1} β α u₂ lb l₁) -> (Filter.Tendsto.{u2, u1} β (Set.{u1} α) (fun (x : β) => Set.Icc.{u1} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u1} α l₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] {l₁ : Filter.{u2} α} {l₂ : Filter.{u2} α} [_inst_2 : Filter.TendstoIxxClass.{u2} α (Set.Icc.{u2} α _inst_1) l₁ l₂] {lb : Filter.{u1} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u1, u2} β α u₁ lb l₁) -> (Filter.Tendsto.{u1, u2} β α u₂ lb l₁) -> (Filter.Tendsto.{u1, u2} β (Set.{u2} α) (fun (x : β) => Set.Icc.{u2} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u2} α l₂))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.Icc Filter.Tendsto.Iccₓ'. -/
 theorem Tendsto.Icc {l₁ l₂ : Filter α} [TendstoIxxClass Icc l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Icc (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Icc Filter.Tendsto.Icc
 
-/- warning: filter.tendsto.Ioc -> Filter.Tendsto.Ioc is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α} [_inst_2 : Filter.TendstoIxxClass.{u1} α _inst_1 (Set.Ioc.{u1} α _inst_1) l₁ l₂] {lb : Filter.{u2} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u2, u1} β α u₁ lb l₁) -> (Filter.Tendsto.{u2, u1} β α u₂ lb l₁) -> (Filter.Tendsto.{u2, u1} β (Set.{u1} α) (fun (x : β) => Set.Ioc.{u1} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u1} α l₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] {l₁ : Filter.{u2} α} {l₂ : Filter.{u2} α} [_inst_2 : Filter.TendstoIxxClass.{u2} α (Set.Ioc.{u2} α _inst_1) l₁ l₂] {lb : Filter.{u1} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u1, u2} β α u₁ lb l₁) -> (Filter.Tendsto.{u1, u2} β α u₂ lb l₁) -> (Filter.Tendsto.{u1, u2} β (Set.{u2} α) (fun (x : β) => Set.Ioc.{u2} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u2} α l₂))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.Ioc Filter.Tendsto.Iocₓ'. -/
 theorem Tendsto.Ioc {l₁ l₂ : Filter α} [TendstoIxxClass Ioc l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ioc (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ioc Filter.Tendsto.Ioc
 
-/- warning: filter.tendsto.Ico -> Filter.Tendsto.Ico is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α} [_inst_2 : Filter.TendstoIxxClass.{u1} α _inst_1 (Set.Ico.{u1} α _inst_1) l₁ l₂] {lb : Filter.{u2} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u2, u1} β α u₁ lb l₁) -> (Filter.Tendsto.{u2, u1} β α u₂ lb l₁) -> (Filter.Tendsto.{u2, u1} β (Set.{u1} α) (fun (x : β) => Set.Ico.{u1} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u1} α l₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] {l₁ : Filter.{u2} α} {l₂ : Filter.{u2} α} [_inst_2 : Filter.TendstoIxxClass.{u2} α (Set.Ico.{u2} α _inst_1) l₁ l₂] {lb : Filter.{u1} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u1, u2} β α u₁ lb l₁) -> (Filter.Tendsto.{u1, u2} β α u₂ lb l₁) -> (Filter.Tendsto.{u1, u2} β (Set.{u2} α) (fun (x : β) => Set.Ico.{u2} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u2} α l₂))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.Ico Filter.Tendsto.Icoₓ'. -/
 theorem Tendsto.Ico {l₁ l₂ : Filter α} [TendstoIxxClass Ico l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ico (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ico Filter.Tendsto.Ico
 
-/- warning: filter.tendsto.Ioo -> Filter.Tendsto.Ioo is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α} [_inst_2 : Filter.TendstoIxxClass.{u1} α _inst_1 (Set.Ioo.{u1} α _inst_1) l₁ l₂] {lb : Filter.{u2} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u2, u1} β α u₁ lb l₁) -> (Filter.Tendsto.{u2, u1} β α u₂ lb l₁) -> (Filter.Tendsto.{u2, u1} β (Set.{u1} α) (fun (x : β) => Set.Ioo.{u1} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u1} α l₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] {l₁ : Filter.{u2} α} {l₂ : Filter.{u2} α} [_inst_2 : Filter.TendstoIxxClass.{u2} α (Set.Ioo.{u2} α _inst_1) l₁ l₂] {lb : Filter.{u1} β} {u₁ : β -> α} {u₂ : β -> α}, (Filter.Tendsto.{u1, u2} β α u₁ lb l₁) -> (Filter.Tendsto.{u1, u2} β α u₂ lb l₁) -> (Filter.Tendsto.{u1, u2} β (Set.{u2} α) (fun (x : β) => Set.Ioo.{u2} α _inst_1 (u₁ x) (u₂ x)) lb (Filter.smallSets.{u2} α l₂))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.Ioo Filter.Tendsto.Iooₓ'. -/
 theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁ l₂] {lb : Filter β} {u₁ u₂ : β → α}
     (h₁ : Tendsto u₁ lb l₁) (h₂ : Tendsto u₂ lb l₁) :
     Tendsto (fun x => Ioo (u₁ x) (u₂ x)) lb l₂.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| h₁.prod_mk h₂
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 
-/- warning: filter.tendsto_Ixx_class_principal -> Filter.tendstoIxxClass_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {s : Set.{u1} α} {t : Set.{u1} α} {Ixx : α -> α -> (Set.{u1} α)}, Iff (Filter.TendstoIxxClass.{u1} α _inst_1 Ixx (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Ixx x y) t)))
-but is expected to have type
-  forall {α : Type.{u1}} {_inst_1 : Set.{u1} α} {s : Set.{u1} α} {t : α -> α -> (Set.{u1} α)}, Iff (Filter.TendstoIxxClass.{u1} α t (Filter.principal.{u1} α _inst_1) (Filter.principal.{u1} α s)) (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x _inst_1) -> (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y _inst_1) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (t x y) s)))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class_principal Filter.tendstoIxxClass_principalₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
@@ -142,34 +106,16 @@ theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
       forall_prod_set, mem_powerset_iff, mem_principal]
 #align filter.tendsto_Ixx_class_principal Filter.tendstoIxxClass_principal
 
-/- warning: filter.tendsto_Ixx_class_inf -> Filter.tendstoIxxClass_inf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : Filter.{u1} α} {Ixx : α -> α -> (Set.{u1} α)} [h : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁ l₂] [h' : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁' l₂'], Filter.TendstoIxxClass.{u1} α _inst_1 Ixx (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l₁ l₁') (Inf.inf.{u1} (outParam.{succ u1} (Filter.{u1} α)) (Filter.hasInf.{u1} α) l₂ l₂')
-but is expected to have type
-  forall {α : Type.{u1}} {_inst_1 : Filter.{u1} α} {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : α -> α -> (Set.{u1} α)} [Ixx : Filter.TendstoIxxClass.{u1} α l₂' _inst_1 l₁'] [h : Filter.TendstoIxxClass.{u1} α l₂' l₁ l₂], Filter.TendstoIxxClass.{u1} α l₂' (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) _inst_1 l₁) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l₁' l₂)
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class_inf Filter.tendstoIxxClass_infₓ'. -/
 theorem tendstoIxxClass_inf {l₁ l₁' l₂ l₂' : Filter α} {Ixx} [h : TendstoIxxClass Ixx l₁ l₂]
     [h' : TendstoIxxClass Ixx l₁' l₂'] : TendstoIxxClass Ixx (l₁ ⊓ l₁') (l₂ ⊓ l₂') :=
   ⟨by simpa only [prod_inf_prod, small_sets_inf] using h.1.inf h'.1⟩
 #align filter.tendsto_Ixx_class_inf Filter.tendstoIxxClass_inf
 
-/- warning: filter.tendsto_Ixx_class_of_subset -> Filter.tendstoIxxClass_of_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α} {Ixx : α -> α -> (Set.{u1} α)} {Ixx' : α -> α -> (Set.{u1} α)}, (forall (a : α) (b : α), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Ixx a b) (Ixx' a b)) -> (forall [h' : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx' l₁ l₂], Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁ l₂)
-but is expected to have type
-  forall {α : Type.{u1}} {_inst_1 : Filter.{u1} α} {l₁ : Filter.{u1} α} {l₂ : α -> α -> (Set.{u1} α)} {Ixx : α -> α -> (Set.{u1} α)}, (forall (ᾰ : α) (ᾰ_1 : α), HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (l₂ ᾰ ᾰ_1) (Ixx ᾰ ᾰ_1)) -> (forall [h : Filter.TendstoIxxClass.{u1} α Ixx _inst_1 l₁], Filter.TendstoIxxClass.{u1} α l₂ _inst_1 l₁)
-Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class_of_subset Filter.tendstoIxxClass_of_subsetₓ'. -/
 theorem tendstoIxxClass_of_subset {l₁ l₂ : Filter α} {Ixx Ixx' : α → α → Set α}
     (h : ∀ a b, Ixx a b ⊆ Ixx' a b) [h' : TendstoIxxClass Ixx' l₁ l₂] : TendstoIxxClass Ixx l₁ l₂ :=
   ⟨h'.1.smallSets_mono <| eventually_of_forall <| Prod.forall.2 h⟩
 #align filter.tendsto_Ixx_class_of_subset Filter.tendstoIxxClass_of_subset
 
-/- warning: filter.has_basis.tendsto_Ixx_class -> Filter.HasBasis.tendstoIxxClass is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {l : Filter.{u1} α}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (forall {Ixx : α -> α -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (s i)) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y (s i)) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (Ixx x y) (s i))))) -> (Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l l))
-but is expected to have type
-  forall {α : Type.{u1}} {_inst_1 : Type.{u2}} {ι : _inst_1 -> Prop} {p : _inst_1 -> (Set.{u1} α)} {s : Filter.{u1} α}, (Filter.HasBasis.{u1, succ u2} α _inst_1 s ι p) -> (forall {hl : α -> α -> (Set.{u1} α)}, (forall (ᾰ : _inst_1), (ι ᾰ) -> (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (p ᾰ)) -> (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y (p ᾰ)) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (hl x y) (p ᾰ))))) -> (Filter.TendstoIxxClass.{u1} α hl s s))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.tendsto_Ixx_class Filter.HasBasis.tendstoIxxClassₓ'. -/
 theorem HasBasis.tendstoIxxClass {ι : Type _} {p : ι → Prop} {s} {l : Filter α}
     (hl : l.HasBasis p s) {Ixx : α → α → Set α}
     (H : ∀ i, p i → ∀ x ∈ s i, ∀ y ∈ s i, Ixx x y ⊆ s i) : TendstoIxxClass Ixx l l :=
@@ -379,12 +325,6 @@ instance tendsto_uIcc_of_Icc {l : Filter α} [TendstoIxxClass Icc l l] : Tendsto
 #align filter.tendsto_uIcc_of_Icc Filter.tendsto_uIcc_of_Icc
 -/
 
-/- warning: filter.tendsto.uIcc -> Filter.Tendsto.uIcc is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {l : Filter.{u1} α} [_inst_2 : Filter.TendstoIxxClass.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) (Set.Icc.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) l l] {f : β -> α} {g : β -> α} {lb : Filter.{u2} β}, (Filter.Tendsto.{u2, u1} β α f lb l) -> (Filter.Tendsto.{u2, u1} β α g lb l) -> (Filter.Tendsto.{u2, u1} β (Set.{u1} α) (fun (x : β) => Set.uIcc.{u1} α (LinearOrder.toLattice.{u1} α _inst_1) (f x) (g x)) lb (Filter.smallSets.{u1} α l))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrder.{u2} α] {l : Filter.{u2} α} [_inst_2 : Filter.TendstoIxxClass.{u2} α (Set.Icc.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α (Lattice.toSemilatticeInf.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)))))) l l] {f : β -> α} {g : β -> α} {lb : Filter.{u1} β}, (Filter.Tendsto.{u1, u2} β α f lb l) -> (Filter.Tendsto.{u1, u2} β α g lb l) -> (Filter.Tendsto.{u1, u2} β (Set.{u2} α) (fun (x : β) => Set.uIcc.{u2} α (DistribLattice.toLattice.{u2} α (instDistribLattice.{u2} α _inst_1)) (f x) (g x)) lb (Filter.smallSets.{u2} α l))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.uIcc Filter.Tendsto.uIccₓ'. -/
 theorem Tendsto.uIcc {l : Filter α} [TendstoIxxClass Icc l l] {f g : β → α} {lb : Filter β}
     (hf : Tendsto f lb l) (hg : Tendsto g lb l) : Tendsto (fun x => [f x, g x]) lb l.smallSets :=
   TendstoIxxClass.tendsto_Ixx.comp <| hf.prod_mk hg
Diff
@@ -324,10 +324,8 @@ section PartialOrder
 variable [PartialOrder α]
 
 #print Filter.tendsto_Icc_pure_pure /-
-instance tendsto_Icc_pure_pure {a : α} : TendstoIxxClass Icc (pure a) (pure a : Filter α) :=
-  by
-  rw [← principal_singleton]
-  exact tendsto_Ixx_class_principal.2 ord_connected_singleton.out
+instance tendsto_Icc_pure_pure {a : α} : TendstoIxxClass Icc (pure a) (pure a : Filter α) := by
+  rw [← principal_singleton]; exact tendsto_Ixx_class_principal.2 ord_connected_singleton.out
 #align filter.tendsto_Icc_pure_pure Filter.tendsto_Icc_pure_pure
 -/
 
@@ -376,10 +374,8 @@ instance tendsto_uIcc_of_Icc {l : Filter α} [TendstoIxxClass Icc l l] : Tendsto
   exact mem_prod_self_iff.1 (mem_map.1 (tendsto_fst.Icc tendsto_snd hs))
   refine' ⟨t, htl, fun p hp => _⟩
   cases le_total p.1 p.2
-  · rw [mem_preimage, uIcc_of_le h]
-    exact hts p hp
-  · rw [mem_preimage, uIcc_of_ge h]
-    exact hts ⟨p.2, p.1⟩ ⟨hp.2, hp.1⟩
+  · rw [mem_preimage, uIcc_of_le h]; exact hts p hp
+  · rw [mem_preimage, uIcc_of_ge h]; exact hts ⟨p.2, p.1⟩ ⟨hp.2, hp.1⟩
 #align filter.tendsto_uIcc_of_Icc Filter.tendsto_uIcc_of_Icc
 -/
 
Diff
@@ -178,8 +178,8 @@ theorem HasBasis.tendstoIxxClass {ι : Type _} {p : ι → Prop} {s} {l : Filter
 
 #print Filter.tendsto_Icc_atTop_atTop /-
 instance tendsto_Icc_atTop_atTop : TendstoIxxClass Icc (atTop : Filter α) atTop :=
-  (hasBasis_infᵢ_principal_finite _).TendstoIxxClass fun s hs =>
-    Set.OrdConnected.out <| ordConnected_binterᵢ fun i hi => ordConnected_Ici
+  (hasBasis_iInf_principal_finite _).TendstoIxxClass fun s hs =>
+    Set.OrdConnected.out <| ordConnected_biInter fun i hi => ordConnected_Ici
 #align filter.tendsto_Icc_at_top_at_top Filter.tendsto_Icc_atTop_atTop
 -/
 
@@ -203,8 +203,8 @@ instance tendsto_Ioo_atTop_atTop : TendstoIxxClass Ioo (atTop : Filter α) atTop
 
 #print Filter.tendsto_Icc_atBot_atBot /-
 instance tendsto_Icc_atBot_atBot : TendstoIxxClass Icc (atBot : Filter α) atBot :=
-  (hasBasis_infᵢ_principal_finite _).TendstoIxxClass fun s hs =>
-    Set.OrdConnected.out <| ordConnected_binterᵢ fun i hi => ordConnected_Iic
+  (hasBasis_iInf_principal_finite _).TendstoIxxClass fun s hs =>
+    Set.OrdConnected.out <| ordConnected_biInter fun i hi => ordConnected_Iic
 #align filter.tendsto_Icc_at_bot_at_bot Filter.tendsto_Icc_atBot_atBot
 -/
 
Diff
@@ -134,7 +134,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {_inst_1 : Set.{u1} α} {s : Set.{u1} α} {t : α -> α -> (Set.{u1} α)}, Iff (Filter.TendstoIxxClass.{u1} α t (Filter.principal.{u1} α _inst_1) (Filter.principal.{u1} α s)) (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x _inst_1) -> (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y _inst_1) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (t x y) s)))
 Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class_principal Filter.tendstoIxxClass_principalₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x y «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y «expr ∈ » s) -/
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
     TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
   Iff.trans ⟨fun h => h.1, fun h => ⟨h⟩⟩ <| by
Diff
@@ -144,9 +144,9 @@ theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
 
 /- warning: filter.tendsto_Ixx_class_inf -> Filter.tendstoIxxClass_inf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : Filter.{u1} α} {Ixx : α -> α -> (Set.{u1} α)} [h : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁ l₂] [h' : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁' l₂'], Filter.TendstoIxxClass.{u1} α _inst_1 Ixx (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l₁ l₁') (HasInf.inf.{u1} (outParam.{succ u1} (Filter.{u1} α)) (Filter.hasInf.{u1} α) l₂ l₂')
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : Filter.{u1} α} {Ixx : α -> α -> (Set.{u1} α)} [h : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁ l₂] [h' : Filter.TendstoIxxClass.{u1} α _inst_1 Ixx l₁' l₂'], Filter.TendstoIxxClass.{u1} α _inst_1 Ixx (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l₁ l₁') (Inf.inf.{u1} (outParam.{succ u1} (Filter.{u1} α)) (Filter.hasInf.{u1} α) l₂ l₂')
 but is expected to have type
-  forall {α : Type.{u1}} {_inst_1 : Filter.{u1} α} {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : α -> α -> (Set.{u1} α)} [Ixx : Filter.TendstoIxxClass.{u1} α l₂' _inst_1 l₁'] [h : Filter.TendstoIxxClass.{u1} α l₂' l₁ l₂], Filter.TendstoIxxClass.{u1} α l₂' (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) _inst_1 l₁) (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) l₁' l₂)
+  forall {α : Type.{u1}} {_inst_1 : Filter.{u1} α} {l₁ : Filter.{u1} α} {l₁' : Filter.{u1} α} {l₂ : Filter.{u1} α} {l₂' : α -> α -> (Set.{u1} α)} [Ixx : Filter.TendstoIxxClass.{u1} α l₂' _inst_1 l₁'] [h : Filter.TendstoIxxClass.{u1} α l₂' l₁ l₂], Filter.TendstoIxxClass.{u1} α l₂' (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) _inst_1 l₁) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l₁' l₂)
 Case conversion may be inaccurate. Consider using '#align filter.tendsto_Ixx_class_inf Filter.tendstoIxxClass_infₓ'. -/
 theorem tendstoIxxClass_inf {l₁ l₁' l₂ l₂' : Filter α} {Ixx} [h : TendstoIxxClass Ixx l₁ l₂]
     [h' : TendstoIxxClass Ixx l₁' l₂'] : TendstoIxxClass Ixx (l₁ ⊓ l₁') (l₂ ⊓ l₂') :=

Changes in mathlib4

mathlib3
mathlib4
chore: Move intervals (#11765)

Move Set.Ixx, Finset.Ixx, Multiset.Ixx together under two different folders:

  • Order.Interval for their definition and basic properties
  • Algebra.Order.Interval for their algebraic properties

Move the definitions of Multiset.Ixx to what is now Order.Interval.Multiset. I believe we could just delete this file in a later PR as nothing uses it (and I already had doubts when defining Multiset.Ixx three years ago).

Move the algebraic results out of what is now Order.Interval.Finset.Basic to a new file Algebra.Order.Interval.Finset.Basic.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
 -/
-import Mathlib.Data.Set.Intervals.OrdConnected
+import Mathlib.Order.Interval.Set.OrdConnected
 import Mathlib.Order.Filter.SmallSets
 import Mathlib.Order.Filter.AtTopBot
 
chore: remove stream-of-conciousness syntax for obtain (#11045)

This covers many instances, but is not exhaustive.

Independently of whether that syntax should be avoided (similar to #10534), I think all these changes are small improvements.

Diff
@@ -287,8 +287,8 @@ instance tendsto_Ioc_uIcc_uIcc {a b : α} : TendstoIxxClass Ioc (𝓟 [[a, b]])
 instance tendsto_uIcc_of_Icc {l : Filter α} [TendstoIxxClass Icc l l] :
     TendstoIxxClass uIcc l l := by
   refine' ⟨fun s hs => mem_map.2 <| mem_prod_self_iff.2 _⟩
-  obtain ⟨t, htl, hts⟩ : ∃ t ∈ l, ∀ p ∈ (t : Set α) ×ˢ t, Icc (p : α × α).1 p.2 ∈ s
-  exact mem_prod_self_iff.1 (mem_map.1 (tendsto_fst.Icc tendsto_snd hs))
+  obtain ⟨t, htl, hts⟩ : ∃ t ∈ l, ∀ p ∈ (t : Set α) ×ˢ t, Icc (p : α × α).1 p.2 ∈ s :=
+    mem_prod_self_iff.1 (mem_map.1 (tendsto_fst.Icc tendsto_snd hs))
   refine' ⟨t, htl, fun p hp => _⟩
   rcases le_total p.1 p.2 with h | h
   · rw [mem_preimage, uIcc_of_le h]
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9184)

Search for [∀∃].*(_ and manually replace some occurrences with more readable versions. In case of , the new expressions are defeq to the old ones. In case of , they differ by exists_prop.

In some rare cases, golf proofs that needed fixing.

Diff
@@ -128,7 +128,7 @@ protected theorem Tendsto.Ioo {l₁ l₂ : Filter α} [TendstoIxxClass Ioo l₁
 #align filter.tendsto.Ioo Filter.Tendsto.Ioo
 
 theorem tendstoIxxClass_principal {s t : Set α} {Ixx : α → α → Set α} :
-    TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s), Ixx x y ⊆ t :=
+    TendstoIxxClass Ixx (𝓟 s) (𝓟 t) ↔ ∀ᵉ (x ∈ s) (y ∈ s), Ixx x y ⊆ t :=
   Iff.trans ⟨fun h => h.1, fun h => ⟨h⟩⟩ <| by
     simp only [smallSets_principal, prod_principal_principal, tendsto_principal_principal,
       forall_prod_set, mem_powerset_iff, mem_principal]
chore: remove uses of cases' (#9171)

I literally went through and regex'd some uses of cases', replacing them with rcases; this is meant to be a low effort PR as I hope that tools can do this in the future.

rcases is an easier replacement than cases, though with better tools we could in future do a second pass converting simple rcases added here (and existing ones) to cases.

Diff
@@ -290,7 +290,7 @@ instance tendsto_uIcc_of_Icc {l : Filter α} [TendstoIxxClass Icc l l] :
   obtain ⟨t, htl, hts⟩ : ∃ t ∈ l, ∀ p ∈ (t : Set α) ×ˢ t, Icc (p : α × α).1 p.2 ∈ s
   exact mem_prod_self_iff.1 (mem_map.1 (tendsto_fst.Icc tendsto_snd hs))
   refine' ⟨t, htl, fun p hp => _⟩
-  cases' le_total p.1 p.2 with h h
+  rcases le_total p.1 p.2 with h | h
   · rw [mem_preimage, uIcc_of_le h]
     exact hts p hp
   · rw [mem_preimage, uIcc_of_ge h]
feat: non-integrability results of derivatives on [a, +oo) (#8712)

We have in the library the lemma not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_filter, saying that if a function tends to infinity at a point in an interval [a, b], then its derivative is not interval-integrable on [a, b]. We generalize this result to allow for any set instead of [a, b], and apply it to half-infinite intervals.

In particular, we characterize integrability of x^s on [a, +oo), and deduce that x^s is never integrable on [0, +oo). This makes it possible to remove one assumption in Lemma mellin_comp_rpow on the Mellin transform.

Diff
@@ -12,10 +12,41 @@ import Mathlib.Order.Filter.AtTopBot
 /-!
 # Convergence of intervals
 
+## Motivation
+
+If a function tends to infinity somewhere, then its derivative is not integrable around this place.
+One should be careful about this statement: "somewhere" could mean a point, but also convergence
+from the left or from the right, or it could also be infinity, and "around this place" will refer
+to these directed neighborhoods. Therefore, the above theorem has many variants. Instead of stating
+all these variants, one can look for the common abstraction and have a single version. One has to
+be careful: if one considers convergence along a sequence, then the function may tend to infinity
+but have a derivative which is small along the sequence (with big jumps inbetween), so in the end
+the derivative may be integrable on a neighborhood of the sequence. What really matters for such
+calculus issues in terms of derivatives is that whole intervals are included in the sets we
+consider.
+
+The right common abstraction is provided in this file, as the `TendstoIxxClass` typeclass.
+It takes as parameters a class of bounded intervals and two real filters `l₁` and `l₂`.
+An instance `TendstoIxxClass Icc l₁ l₂` registers that, if `aₙ` and `bₙ` are converging towards
+the filter `l₁`, then the intervals `Icc aₙ bₙ` are eventually contained in any given set
+belonging to `l₂`. For instance, for `l₁ = 𝓝[>] x` and `l₂ = 𝓝[≥] x`, the strict and large right
+neighborhoods of `x` respectively, then given any large right neighborhood `s ∈ 𝓝[≥] x` and any two
+sequences `xₙ` and `yₙ` converging strictly to the right of `x`,
+then the interval `[xₙ, yₙ]` is eventually contained in `s`. Therefore, the instance
+`TendstoIxxClass Icc (𝓝[>] x) (𝓝[≥] x)` holds. Note that one could have taken as
+well `l₂ = 𝓝[>] x`, but that `l₁ = 𝓝[≥] x` and `l₂ = 𝓝[>] x` wouldn't work.
+
+With this formalism, the above theorem would read: if `TendstoIxxClass Icc l l` and `f` tends
+to infinity along `l`, then its derivative is not integrable on any element of `l`.
+Beyond this simple example, this typeclass plays a prominent role in generic formulations of
+the fundamental theorem of calculus.
+
+## Main definition
+
 If both `a` and `b` tend to some filter `l₁`, sometimes this implies that `Ixx a b` tends to
 `l₂.smallSets`, i.e., for any `s ∈ l₂` eventually `Ixx a b` becomes a subset of `s`. Here and below
-`Ixx` is one of `Set.Icc`, `Set.Ico`, `Set.Ioc`, and `Set.Ioo`. We define `Filter.TendstoIxxClass
-Ixx l₁ l₂` to be a typeclass representing this property.
+`Ixx` is one of `Set.Icc`, `Set.Ico`, `Set.Ioc`, and `Set.Ioo`.
+We define `Filter.TendstoIxxClass Ixx l₁ l₂` to be a typeclass representing this property.
 
 The instances provide the best `l₂` for a given `l₁`. In many cases `l₁ = l₂` but sometimes we can
 drop an endpoint from an interval: e.g., we prove
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -44,7 +44,7 @@ that need topology are defined in `Mathlib/Topology/Algebra/Ordered`.
 -/
 
 
-variable {α β : Type _}
+variable {α β : Type*}
 
 open Filter Set Function
 
@@ -113,7 +113,7 @@ theorem tendstoIxxClass_of_subset {l₁ l₂ : Filter α} {Ixx Ixx' : α → α
   ⟨h'.1.smallSets_mono <| eventually_of_forall <| Prod.forall.2 h⟩
 #align filter.tendsto_Ixx_class_of_subset Filter.tendstoIxxClass_of_subset
 
-theorem HasBasis.tendstoIxxClass {ι : Type _} {p : ι → Prop} {s} {l : Filter α}
+theorem HasBasis.tendstoIxxClass {ι : Type*} {p : ι → Prop} {s} {l : Filter α}
     (hl : l.HasBasis p s) {Ixx : α → α → Set α}
     (H : ∀ i, p i → ∀ x ∈ s i, ∀ y ∈ s i, Ixx x y ⊆ s i) : TendstoIxxClass Ixx l l :=
   ⟨(hl.prod_self.tendsto_iff hl.smallSets).2 fun i hi => ⟨i, hi, fun _ h => H i hi _ h.1 _ h.2⟩⟩
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury G. Kudryashov
-
-! This file was ported from Lean 3 source module order.filter.interval
-! leanprover-community/mathlib commit 8631e2d5ea77f6c13054d9151d82b83069680cb1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Set.Intervals.OrdConnected
 import Mathlib.Order.Filter.SmallSets
 import Mathlib.Order.Filter.AtTopBot
 
+#align_import order.filter.interval from "leanprover-community/mathlib"@"8631e2d5ea77f6c13054d9151d82b83069680cb1"
+
 /-!
 # Convergence of intervals
 
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

Currently, the following notations are changed from · ×ˢ · because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | :

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -68,11 +68,11 @@ eventually to `Set.Iic a`, then the interval `Set.Ico (u₁ n) (u₂ n)` is even
 We mark `l₂` as an `outParam` so that Lean can automatically find an appropriate `l₂` based on
 `Ixx` and `l₁`. This way, e.g., `tendsto.Ico h₁ h₂` works without specifying explicitly `l₂`. -/
 class TendstoIxxClass (Ixx : α → α → Set α) (l₁ : Filter α) (l₂ : outParam <| Filter α) : Prop where
-  /-- `Function.uncurry Ixx` tends to `l₂.smallSets` along `l₁ ×ᶠ l₁`. In other words, for any
+  /-- `Function.uncurry Ixx` tends to `l₂.smallSets` along `l₁ ×ˢ l₁`. In other words, for any
   `s ∈ l₂` there exists `t ∈ l₁` such that `Ixx x y ⊆ s` whenever `x ∈ t` and `y ∈ t`.
 
   Use lemmas like `Filter.Tendsto.Icc` instead. -/
-  tendsto_Ixx : Tendsto (fun p : α × α => Ixx p.1 p.2) (l₁ ×ᶠ l₁) l₂.smallSets
+  tendsto_Ixx : Tendsto (fun p : α × α => Ixx p.1 p.2) (l₁ ×ˢ l₁) l₂.smallSets
 #align filter.tendsto_Ixx_class Filter.TendstoIxxClass
 
 protected theorem Tendsto.Icc {l₁ l₂ : Filter α} [TendstoIxxClass Icc l₁ l₂] {lb : Filter β}
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -123,8 +123,8 @@ theorem HasBasis.tendstoIxxClass {ι : Type _} {p : ι → Prop} {s} {l : Filter
 #align filter.has_basis.tendsto_Ixx_class Filter.HasBasis.tendstoIxxClass
 
 instance tendsto_Icc_atTop_atTop : TendstoIxxClass Icc (atTop : Filter α) atTop :=
-  (hasBasis_infᵢ_principal_finite _).tendstoIxxClass fun _ _ =>
-    Set.OrdConnected.out <| ordConnected_binterᵢ fun _ _ => ordConnected_Ici
+  (hasBasis_iInf_principal_finite _).tendstoIxxClass fun _ _ =>
+    Set.OrdConnected.out <| ordConnected_biInter fun _ _ => ordConnected_Ici
 #align filter.tendsto_Icc_at_top_at_top Filter.tendsto_Icc_atTop_atTop
 
 instance tendsto_Ico_atTop_atTop : TendstoIxxClass Ico (atTop : Filter α) atTop :=
@@ -140,8 +140,8 @@ instance tendsto_Ioo_atTop_atTop : TendstoIxxClass Ioo (atTop : Filter α) atTop
 #align filter.tendsto_Ioo_at_top_at_top Filter.tendsto_Ioo_atTop_atTop
 
 instance tendsto_Icc_atBot_atBot : TendstoIxxClass Icc (atBot : Filter α) atBot :=
-  (hasBasis_infᵢ_principal_finite _).tendstoIxxClass fun _ _ =>
-    Set.OrdConnected.out <| ordConnected_binterᵢ fun _ _ => ordConnected_Iic
+  (hasBasis_iInf_principal_finite _).tendstoIxxClass fun _ _ =>
+    Set.OrdConnected.out <| ordConnected_biInter fun _ _ => ordConnected_Iic
 #align filter.tendsto_Icc_at_bot_at_bot Filter.tendsto_Icc_atBot_atBot
 
 instance tendsto_Ico_atBot_atBot : TendstoIxxClass Ico (atBot : Filter α) atBot :=
feat: port Data.Finset.LocallyFinite (#1837)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Jon Eugster <eugster.jon@gmail.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Diff
@@ -244,6 +244,8 @@ end PartialOrder
 
 section LinearOrder
 
+open Interval
+
 variable [LinearOrder α]
 
 instance tendsto_Icc_uIcc_uIcc {a b : α} : TendstoIxxClass Icc (𝓟 [[a, b]]) (𝓟 [[a, b]]) :=
@@ -276,4 +278,3 @@ protected theorem Tendsto.uIcc {l : Filter α} [TendstoIxxClass Icc l l] {f g :
 end LinearOrder
 
 end Filter
-
feat: port Order.Filter.Interval (#1820)

Dependencies 7 + 261

262 files ported (97.4%)
112932 lines ported (97.4%)
Show graph

The unported dependencies are