Ultrafilters #
An ultrafilter is a minimal (maximal in the set order) proper filter. In this file we define
Ultrafilter.of
: an ultrafilter that is less than or equal to a given filter;Ultrafilter
: subtype of ultrafilters;pure x : Ultrafilter α
:pure x
as anUltrafilter
;Ultrafilter.map
,Ultrafilter.bind
,Ultrafilter.comap
: operations on ultrafilters;hyperfilter
: the ultrafilter extending the cofinite filter.
Filter α
is an atomic type: for every filter there exists an ultrafilter that is less than or
equal to this filter.
Equations
- One or more equations did not get rendered due to their size.
- univ_sets : Set.univ ∈ s.sets
- neBot' : Filter.NeBot ↑s
An ultrafilter is nontrivial.
- le_of_le : ∀ (g : Filter α), Filter.NeBot g → g ≤ ↑s → ↑s ≤ g
If
g
is a nontrivial filter that is less than or equal to an ultrafilter, then it is greater than or equal to the ultrafilter.
An ultrafilter is a minimal (maximal in the set order) proper filter.
Instances For
Equations
- Ultrafilter.instCoeTCUltrafilterFilter = { coe := Ultrafilter.toFilter }
Equations
- (_ : Filter.NeBot ↑f) = (_ : Filter.NeBot ↑f)
Alias of the forward direction of Ultrafilter.frequently_iff_eventually
.
If sᶜ ∉ f ↔ s ∈ f
, then f
is an ultrafilter. The other implication is given by
Ultrafilter.compl_not_mem_iff
.
Equations
- Ultrafilter.ofComplNotMemIff f h = { toFilter := f, neBot' := (_ : Filter.NeBot f), le_of_le := (_ : ∀ (g : Filter α), Filter.NeBot g → g ≤ f → ∀ (s : Set α), s ∈ g → s ∈ f) }
Instances For
If f : Filter α
is an atom, then it is an ultrafilter.
Equations
- Ultrafilter.ofAtom f hf = { toFilter := f, neBot' := (_ : Filter.NeBot f), le_of_le := (_ : ∀ (g : Filter α), Filter.NeBot g → g ≤ f → f ≤ g) }
Instances For
Pushforward for ultrafilters.
Equations
- Ultrafilter.map m f = Ultrafilter.ofComplNotMemIff (Filter.map m ↑f) (_ : ∀ (s : Set β), ¬(m ⁻¹' s)ᶜ ∈ f ↔ m ⁻¹' s ∈ f)
Instances For
The pullback of an ultrafilter along an injection whose range is large with respect to the given ultrafilter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The principal ultrafilter associated to a point x
.
Monadic bind for ultrafilters, coming from the one on filters defined in terms of map and join.
Equations
- Ultrafilter.bind f m = Ultrafilter.ofComplNotMemIff (Filter.bind ↑f fun x => ↑(m x)) (_ : ∀ (s : Set β), (¬sᶜ ∈ Filter.bind ↑f fun x => ↑(m x)) ↔ s ∈ Filter.bind ↑f fun x => ↑(m x))
Instances For
Equations
- Ultrafilter.instBind = { bind := @Ultrafilter.bind }
Equations
- Ultrafilter.functor = { map := @Ultrafilter.map, mapConst := fun {α β} => Ultrafilter.map ∘ Function.const β }
The ultrafilter lemma: Any proper filter is contained in an ultrafilter.
Alias of Ultrafilter.exists_le
.
The ultrafilter lemma: Any proper filter is contained in an ultrafilter.
Construct an ultrafilter extending a given filter. The ultrafilter lemma is the assertion that such a filter exists; we use the axiom of choice to pick one.
Equations
- Ultrafilter.of f = Classical.choose (_ : ∃ u, ↑u ≤ f)
Instances For
A filter equals the intersection of all the ultrafilters which contain it.
The tendsto
relation can be checked on ultrafilters.
The ultrafilter extending the cofinite filter.
Equations
- Filter.hyperfilter α = Ultrafilter.of Filter.cofinite
Instances For
Alias of Filter.nmem_hyperfilter_of_finite
.
Alias of Filter.compl_mem_hyperfilter_of_finite
.
Ultrafilter extending the inf of a comapped ultrafilter and a principal ultrafilter.