Product and coproduct filters #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define filter.prod f g (notation: f ×ᶠ g) and filter.coprod f g. The product
of two filters is the largest filter l such that filter.tendsto prod.fst l f and
filter.tendsto prod.snd l g.
Implementation details #
The product filter cannot be defined using the monad structure on filters. For example:
hence:
s ∈ F ↔ ∃ n, [n..∞] × univ ⊆ s
s ∈ G ↔ ∀ i:ℕ, ∃ n, [n..∞] × {i} ⊆ s
Now ⋃ i, [i..∞] × {i} is in G but not in F.
As product filter we want to have F as result.
Notations #
f ×ᶠ g:filter.prod f g, localized infilter.
Product of filters. This is the filter generated by cartesian products of elements of the component filters.
Equations
- f.prod g = filter.comap prod.fst f ⊓ filter.comap prod.snd g
Instances for filter.prod
A useful lemma when dealing with uniformities.
Coproducts of filters #
Coproduct of filters.
Equations
- f.coprod g = filter.comap prod.fst f ⊔ filter.comap prod.snd g
Instances for filter.coprod
Characterization of the coproduct of the filter.maps of two principal filters 𝓟 {a} and
𝓟 {i}, the first under the constant function λ a, b and the second under the identity function.
Together with the next lemma, map_prod_map_const_id_principal_coprod_principal, this provides an
example showing that the inequality in the lemma map_prod_map_coprod_le can be strict.
Characterization of the filter.map of the coproduct of two principal filters 𝓟 {a} and
𝓟 {i}, under the prod.map of two functions, respectively the constant function λ a, b and the
identity function. Together with the previous lemma,
map_const_principal_coprod_map_id_principal, this provides an example showing that the inequality
in the lemma map_prod_map_coprod_le can be strict.