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.
- univ_sets : Set.univ ∈ (↑self).sets
- 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
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.
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
- ⋯ = ⋯
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
- 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.