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.
An ultrafilter is a minimal (maximal in the set order) proper filter.
- neBot' : (↑self).NeBot
An ultrafilter is nontrivial.
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.
Instances For
Equations
- Ultrafilter.instCoeTCFilter = { coe := Ultrafilter.toFilter }
Equations
- Ultrafilter.instMembershipSet = { mem := fun (f : Ultrafilter α) (s : Set α) => s ∈ ↑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' := ⋯, le_of_le := ⋯ }
Instances For
If f : Filter α
is an atom, then it is an ultrafilter.
Equations
- Ultrafilter.ofAtom f hf = { toFilter := f, neBot' := ⋯, le_of_le := ⋯ }
Instances For
Pushforward for ultrafilters.
Equations
- Ultrafilter.map m f = Ultrafilter.ofComplNotMemIff (Filter.map m ↑f) ⋯
Instances For
The pullback of an ultrafilter along an injection whose range is large with respect to the given ultrafilter.
Equations
- u.comap inj large = { toFilter := Filter.comap m ↑u, neBot' := ⋯, le_of_le := ⋯ }
Instances For
The principal ultrafilter associated to a point x
.
Equations
- Ultrafilter.instPure = { pure := fun {α : Type ?u.6} (a : α) => Ultrafilter.ofComplNotMemIff (pure a) ⋯ }
Equations
- Ultrafilter.instInhabited = { default := pure default }
Monadic bind for ultrafilters, coming from the one on filters defined in terms of map and join.
Equations
- f.bind m = Ultrafilter.ofComplNotMemIff ((↑f).bind fun (x : α) => ↑(m x)) ⋯
Instances For
Equations
- Ultrafilter.instBind = { bind := @Ultrafilter.bind }
Equations
- Ultrafilter.functor = { map := @Ultrafilter.map, mapConst := fun {α β : Type ?u.8} => 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
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
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.