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' : Filter.NeBot ↑self
An ultrafilter is nontrivial.
- le_of_le : ∀ (g : Filter α), Filter.NeBot g → g ≤ ↑self → ↑self ≤ 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.
Instances For
Equations
- Ultrafilter.instCoeTCUltrafilterFilter = { coe := Ultrafilter.toFilter }
Equations
- Ultrafilter.instMembershipSetUltrafilter = { mem := fun (s : Set α) (f : Ultrafilter α) => 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
- Ultrafilter.comap u inj large = { toFilter := Filter.comap m ↑u, neBot' := ⋯, le_of_le := ⋯ }
Instances For
The principal ultrafilter associated to a point x
.
Equations
- Ultrafilter.instPureUltrafilter = { pure := fun {α : Type u_2} (a : α) => Ultrafilter.ofComplNotMemIff (pure a) ⋯ }
Equations
- ⋯ = ⋯
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)) ⋯
Instances For
Equations
- Ultrafilter.instBind = { bind := @Ultrafilter.bind }
Equations
- Ultrafilter.functor = { map := @Ultrafilter.map, mapConst := fun {α β : Type u_2} => 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.