Lift filters along filter and set functions #
A variant on bind
using a function g
taking a set instead of a member of α
.
This is essentially a push-forward along a function mapping each set to a filter.
Equations
- Filter.lift f g = ⨅ (s : Set α) (_ : s ∈ f), g s
Instances For
If (p : ι → Prop, s : ι → Set α)
is a basis of a filter f
, g
is a monotone function
Set α → Filter γ
, and for each i
, (pg : β i → Prop, sg : β i → Set α)
is a basis
of the filter g (s i)
, then (λ (i : ι) (x : β i), p i ∧ pg i x, λ (i : ι) (x : β i), sg i x)
is a basis of the filter f.lift g
.
This basis is parametrized by i : ι
and x : β i
, so in order to formulate this fact using
Filter.HasBasis
one has to use Σ i, β i
as the index type, see Filter.HasBasis.lift
.
This lemma states the corresponding mem_iff
statement without using a sigma type.
If (p : ι → Prop, s : ι → Set α)
is a basis of a filter f
, g
is a monotone function
Set α → Filter γ
, and for each i
, (pg : β i → Prop, sg : β i → Set α)
is a basis
of the filter g (s i)
, then (λ (i : ι) (x : β i), p i ∧ pg i x, λ (i : ι) (x : β i), sg i x)
is a basis of the filter f.lift g
.
This basis is parametrized by i : ι
and x : β i
, so in order to formulate this fact using
has_basis
one has to use Σ i, β i
as the index type. See also Filter.HasBasis.mem_lift_iff
for the corresponding mem_iff
statement formulated without using a sigma type.
Specialize lift
to functions Set α → Set β
. This can be viewed as a generalization of map
.
This is essentially a push-forward along a function mapping each set to a set.
Equations
- Filter.lift' f h = Filter.lift f (Filter.principal ∘ h)