(Co)product of a family of filters #
In this file we define two filters on Π i, α i
and prove some basic properties of these filters.
Filter.pi (f : Π i, Filter (α i))
to be the maximal filter onΠ i, α i
such that∀ i, Filter.Tendsto (Function.eval i) (Filter.pi f) (f i)
. It is defined asΠ i, Filter.comap (Function.eval i) (f i)
. This is a generalization ofFilter.prod
to indexed products.Filter.coprodᵢ (f : Π i, Filter (α i))
: a generalization ofFilter.coprod
; it is the supremum ofcomap (eval i) (f i)
.
theorem
Filter.tendsto_eval_pi
{ι : Type u_1}
{α : ι → Type u_2}
(f : (i : ι) → Filter (α i))
(i : ι)
:
Tendsto (Function.eval i) (pi f) (f i)
theorem
Filter.Tendsto.apply
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
{β : Type u_3}
{m : β → (i : ι) → α i}
{l : Filter β}
:
If a function tends to a product Filter.pi f
of filters, then its i
-th component tends to
f i
. See also Filter.Tendsto.apply_nhds
for the special case of converging to a point in a
product of topological spaces.
@[simp]
theorem
Filter.map_eval_pi
{ι : Type u_1}
{α : ι → Type u_2}
(f : (i : ι) → Filter (α i))
[∀ (i : ι), (f i).NeBot]
(i : ι)
:
map (Function.eval i) (pi f) = f i
n
-ary coproducts of filters #
def
Filter.coprodᵢ
{ι : Type u_1}
{α : ι → Type u_2}
(f : (i : ι) → Filter (α i))
:
Filter ((i : ι) → α i)
Coproduct of filters.
Equations
- Filter.coprodᵢ f = ⨆ (i : ι), Filter.comap (Function.eval i) (f i)
Instances For
theorem
Filter.mem_coprodᵢ_iff
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
{s : Set ((i : ι) → α i)}
:
s ∈ Filter.coprodᵢ f ↔ ∀ (i : ι), ∃ t₁ ∈ f i, Function.eval i ⁻¹' t₁ ⊆ s
theorem
Filter.compl_mem_coprodᵢ
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
{s : Set ((i : ι) → α i)}
:
sᶜ ∈ Filter.coprodᵢ f ↔ ∀ (i : ι), (Function.eval i '' s)ᶜ ∈ f i
theorem
Filter.coprodᵢ_neBot_iff'
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
:
(Filter.coprodᵢ f).NeBot ↔ (∀ (i : ι), Nonempty (α i)) ∧ ∃ (d : ι), (f d).NeBot
@[simp]
theorem
Filter.coprodᵢ_neBot_iff
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
[∀ (i : ι), Nonempty (α i)]
:
(Filter.coprodᵢ f).NeBot ↔ ∃ (d : ι), (f d).NeBot
@[simp]
theorem
Filter.NeBot.coprodᵢ
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
[∀ (i : ι), Nonempty (α i)]
{i : ι}
(h : (f i).NeBot)
:
(Filter.coprodᵢ f).NeBot
instance
Filter.coprodᵢ_neBot
{ι : Type u_1}
{α : ι → Type u_2}
[∀ (i : ι), Nonempty (α i)]
[Nonempty ι]
(f : (i : ι) → Filter (α i))
[H : ∀ (i : ι), (f i).NeBot]
:
(Filter.coprodᵢ f).NeBot
theorem
Filter.coprodᵢ_mono
{ι : Type u_1}
{α : ι → Type u_2}
{f₁ f₂ : (i : ι) → Filter (α i)}
(hf : ∀ (i : ι), f₁ i ≤ f₂ i)
:
Filter.coprodᵢ f₁ ≤ Filter.coprodᵢ f₂
theorem
Filter.map_pi_map_coprodᵢ_le
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
{β : ι → Type u_3}
{m : (i : ι) → α i → β i}
:
map (fun (k : (i : ι) → α i) (i : ι) => m i (k i)) (Filter.coprodᵢ f) ≤ Filter.coprodᵢ fun (i : ι) => map (m i) (f i)
theorem
Filter.Tendsto.pi_map_coprodᵢ
{ι : Type u_1}
{α : ι → Type u_2}
{f : (i : ι) → Filter (α i)}
{β : ι → Type u_3}
{m : (i : ι) → α i → β i}
{g : (i : ι) → Filter (β i)}
(h : ∀ (i : ι), Tendsto (m i) (f i) (g i))
:
Tendsto (fun (k : (i : ι) → α i) (i : ι) => m i (k i)) (Filter.coprodᵢ f) (Filter.coprodᵢ g)