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.
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 }
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 ∈ 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
.
Equations
- (_ : Nonempty (Ultrafilter α)) = (_ : Nonempty (Ultrafilter α))
Monadic bind for ultrafilters, coming from the one on filters defined in terms of map and join.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Ultrafilter.instBind = { bind := @Ultrafilter.bind }
Equations
- Ultrafilter.functor = { map := @Ultrafilter.map, mapConst := fun {α β : Type u_2} => Ultrafilter.map ∘ Function.const β }
Equations
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 : Ultrafilter α), ↑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.