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
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.map
s 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.