Product and coproduct filters #
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:
F := do {x ← seq, y ← top, return (x, y)}
G := do {y ← top, x ← seq, return (x, y)}
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
.
If a function tends to a product g ×ˢ h
of filters, then its first component tends to
g
. See also Filter.Tendsto.fst_nhds
for the special case of converging to a point in a
product of two topological spaces.
If a function tends to a product g ×ˢ h
of filters, then its second component tends to
h
. See also Filter.Tendsto.snd_nhds
for the special case of converging to a point in a
product of two topological spaces.
Coproducts of filters #
Characterization of the coproduct of the Filter.map
s of two principal filters 𝓟 {a}
and
𝓟 {i}
, the first under the constant function fun 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 fun 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.