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 ∈ 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)