@[instance]
Equations
- set.lattice_set = {sup := boolean_algebra.sup set.boolean_algebra, le := boolean_algebra.le set.boolean_algebra, lt := boolean_algebra.lt set.boolean_algebra, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := boolean_algebra.inf set.boolean_algebra, inf_le_left := _, inf_le_right := _, le_inf := _, top := boolean_algebra.top set.boolean_algebra, le_top := _, bot := boolean_algebra.bot set.boolean_algebra, bot_le := _, Sup := λ (s : set (set α)), {a : α | ∃ (t : set α) (H : t ∈ s), a ∈ t}, Inf := λ (s : set (set α)), {a : α | ∀ (t : set α), t ∈ s → a ∈ t}, le_Sup := _, Sup_le := _, Inf_le := _, le_Inf := _}
Image is monotone. See set.image_image
for the statement in terms of ⊆
.
theorem
set.monotone_set_of
{α : Type u}
{β : Type v}
[preorder α]
{p : α → β → Prop}
(hp : ∀ (b : β), monotone (λ (a : α), p a b)) :
monotone (λ (a : α), {b : β | p a b})
theorem
set.image_preimage
{α : Type u}
{β : Type v}
{f : α → β} :
galois_connection (set.image f) (set.preimage f)
kern_image f s
is the set of y
such that f ⁻¹ y ⊆ s
Equations
- set.kern_image f s = {y : β | ∀ ⦃x : α⦄, f x = y → x ∈ s}
theorem
set.set_of_exists
{β : Type v}
{ι : Sort x}
(p : ι → β → Prop) :
{x : β | ∃ (i : ι), p i x} = ⋃ (i : ι), {x : β | p i x}
theorem
set.set_of_forall
{β : Type v}
{ι : Sort x}
(p : ι → β → Prop) :
{x : β | ∀ (i : ι), p i x} = ⋂ (i : ι), {x : β | p i x}
theorem
set.mem_Inter_of_mem
{β : Type v}
{ι : Sort x}
{x : β}
{s : ι → set β}
(a : ∀ (i : ι), x ∈ s i) :
x ∈ ⋂ (i : ι), s i
theorem
set.Inter_subset_Inter
{α : Type u}
{ι : Sort x}
{s t : ι → set α}
(h : ∀ (i : ι), s i ⊆ t i) :
(⋂ (i : ι), s i) ⊆ ⋂ (i : ι), t i
theorem
set.Inter_set_of
{α : Type u}
{ι : Sort x}
(P : ι → α → Prop) :
(⋂ (i : ι), {x : α | P i x}) = {x : α | ∀ (i : ι), P i x}
theorem
set.directed_on_Union
{α : Type u}
{r : α → α → Prop}
{ι : Sort v}
{f : ι → set α}
(hd : directed has_subset.subset f)
(h : ∀ (x : ι), directed_on r (f x)) :
directed_on r (⋃ (x : ι), f x)
@[simp]
@[simp]
@[simp]
theorem
set.Union_subset_Union
{α : Type u}
{ι : Sort x}
{s t : ι → set α}
(h : ∀ (i : ι), s i ⊆ t i) :
(⋃ (i : ι), s i) ⊆ ⋃ (i : ι), t i
theorem
set.Union_subset_Union_const
{α : Type u}
{ι ι₂ : Sort x}
{s : set α}
(h : ι → ι₂) :
(⋃ (i : ι), s) ⊆ ⋃ (j : ι₂), s
@[instance]
Equations
- set.complete_boolean_algebra = {sup := boolean_algebra.sup set.boolean_algebra, le := boolean_algebra.le set.boolean_algebra, lt := boolean_algebra.lt set.boolean_algebra, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := boolean_algebra.inf set.boolean_algebra, inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, top := boolean_algebra.top set.boolean_algebra, le_top := _, bot := boolean_algebra.bot set.boolean_algebra, bot_le := _, compl := compl (boolean_algebra.to_has_compl (set α)), sdiff := has_sdiff.sdiff set.has_sdiff, inf_compl_le_bot := _, top_le_sup_compl := _, sdiff_eq := _, Sup := complete_lattice.Sup set.lattice_set, Inf := complete_lattice.Inf set.lattice_set, le_Sup := _, Sup_le := _, Inf_le := _, le_Inf := _, infi_sup_le_sup_Inf := _, inf_Sup_le_supr_inf := _}
theorem
set.Union_range_eq_Union
{ι : Type u_1}
{α : Type u_2}
{β : Type u_3}
(C : ι → set α)
{f : Π (x : ι), β → ↥(C x)}
(hf : ∀ (x : ι), function.surjective (f x)) :
maps_to
theorem
set.maps_to_sUnion
{α : Type u}
{β : Type v}
{S : set (set α)}
{t : set β}
{f : α → β}
(H : ∀ (s : set α), s ∈ S → set.maps_to f s t) :
set.maps_to f (⋃₀S) t
theorem
set.maps_to_Union
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
{t : set β}
{f : α → β}
(H : ∀ (i : ι), set.maps_to f (s i) t) :
set.maps_to f (⋃ (i : ι), s i) t
theorem
set.maps_to_bUnion
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : Π (i : ι), p i → set α}
{t : set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.maps_to f (s i hi) t) :
set.maps_to f (⋃ (i : ι) (hi : p i), s i hi) t
theorem
set.maps_to_Union_Union
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.maps_to f (s i) (t i)) :
set.maps_to f (⋃ (i : ι), s i) (⋃ (i : ι), t i)
theorem
set.maps_to_bUnion_bUnion
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : Π (i : ι), p i → set α}
{t : Π (i : ι), p i → set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.maps_to f (s i hi) (t i hi)) :
set.maps_to f (⋃ (i : ι) (hi : p i), s i hi) (⋃ (i : ι) (hi : p i), t i hi)
theorem
set.maps_to_sInter
{α : Type u}
{β : Type v}
{s : set α}
{T : set (set β)}
{f : α → β}
(H : ∀ (t : set β), t ∈ T → set.maps_to f s t) :
set.maps_to f s (⋂₀T)
theorem
set.maps_to_Inter
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.maps_to f s (t i)) :
set.maps_to f s (⋂ (i : ι), t i)
theorem
set.maps_to_bInter
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : set α}
{t : Π (i : ι), p i → set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.maps_to f s (t i hi)) :
set.maps_to f s (⋂ (i : ι) (hi : p i), t i hi)
theorem
set.maps_to_Inter_Inter
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.maps_to f (s i) (t i)) :
set.maps_to f (⋂ (i : ι), s i) (⋂ (i : ι), t i)
theorem
set.maps_to_bInter_bInter
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : Π (i : ι), p i → set α}
{t : Π (i : ι), p i → set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.maps_to f (s i hi) (t i hi)) :
set.maps_to f (⋂ (i : ι) (hi : p i), s i hi) (⋂ (i : ι) (hi : p i), t i hi)
inj_on
theorem
set.inj_on.image_Inter_eq
{α : Type u}
{β : Type v}
{ι : Sort x}
[nonempty ι]
{s : ι → set α}
{f : α → β}
(h : set.inj_on f (⋃ (i : ι), s i)) :
theorem
set.inj_on.image_bInter_eq
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : Π (i : ι), p i → set α}
(hp : ∃ (i : ι), p i)
{f : α → β}
(h : set.inj_on f (⋃ (i : ι) (hi : p i), s i hi)) :
theorem
set.inj_on_Union_of_directed
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
(hs : directed has_subset.subset s)
{f : α → β}
(hf : ∀ (i : ι), set.inj_on f (s i)) :
set.inj_on f (⋃ (i : ι), s i)
surj_on
theorem
set.surj_on_sUnion
{α : Type u}
{β : Type v}
{s : set α}
{T : set (set β)}
{f : α → β}
(H : ∀ (t : set β), t ∈ T → set.surj_on f s t) :
set.surj_on f s (⋃₀T)
theorem
set.surj_on_Union
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.surj_on f s (t i)) :
set.surj_on f s (⋃ (i : ι), t i)
theorem
set.surj_on_Union_Union
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.surj_on f (s i) (t i)) :
set.surj_on f (⋃ (i : ι), s i) (⋃ (i : ι), t i)
theorem
set.surj_on_bUnion
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : set α}
{t : Π (i : ι), p i → set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.surj_on f s (t i hi)) :
set.surj_on f s (⋃ (i : ι) (hi : p i), t i hi)
theorem
set.surj_on_bUnion_bUnion
{α : Type u}
{β : Type v}
{ι : Sort x}
{p : ι → Prop}
{s : Π (i : ι), p i → set α}
{t : Π (i : ι), p i → set β}
{f : α → β}
(H : ∀ (i : ι) (hi : p i), set.surj_on f (s i hi) (t i hi)) :
set.surj_on f (⋃ (i : ι) (hi : p i), s i hi) (⋃ (i : ι) (hi : p i), t i hi)
theorem
set.surj_on_Inter
{α : Type u}
{β : Type v}
{ι : Sort x}
[hi : nonempty ι]
{s : ι → set α}
{t : set β}
{f : α → β}
(H : ∀ (i : ι), set.surj_on f (s i) t)
(Hinj : set.inj_on f (⋃ (i : ι), s i)) :
set.surj_on f (⋂ (i : ι), s i) t
theorem
set.surj_on_Inter_Inter
{α : Type u}
{β : Type v}
{ι : Sort x}
[hi : nonempty ι]
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.surj_on f (s i) (t i))
(Hinj : set.inj_on f (⋃ (i : ι), s i)) :
set.surj_on f (⋂ (i : ι), s i) (⋂ (i : ι), t i)
bij_on
theorem
set.bij_on_Union
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.bij_on f (s i) (t i))
(Hinj : set.inj_on f (⋃ (i : ι), s i)) :
set.bij_on f (⋃ (i : ι), s i) (⋃ (i : ι), t i)
theorem
set.bij_on_Inter
{α : Type u}
{β : Type v}
{ι : Sort x}
[hi : nonempty ι]
{s : ι → set α}
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.bij_on f (s i) (t i))
(Hinj : set.inj_on f (⋃ (i : ι), s i)) :
set.bij_on f (⋂ (i : ι), s i) (⋂ (i : ι), t i)
theorem
set.bij_on_Union_of_directed
{α : Type u}
{β : Type v}
{ι : Sort x}
{s : ι → set α}
(hs : directed has_subset.subset s)
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.bij_on f (s i) (t i)) :
set.bij_on f (⋃ (i : ι), s i) (⋃ (i : ι), t i)
theorem
set.bij_on_Inter_of_directed
{α : Type u}
{β : Type v}
{ι : Sort x}
[nonempty ι]
{s : ι → set α}
(hs : directed has_subset.subset s)
{t : ι → set β}
{f : α → β}
(H : ∀ (i : ι), set.bij_on f (s i) (t i)) :
set.bij_on f (⋂ (i : ι), s i) (⋂ (i : ι), t i)
@[simp]
@[simp]
@[simp]
theorem
set.Union_image_left
{α : Type u}
{β : Type v}
{γ : Type w}
(f : α → β → γ)
{s : set α}
{t : set β} :
(⋃ (a : α) (H : a ∈ s), f a '' t) = set.image2 f s t
theorem
set.Union_image_right
{α : Type u}
{β : Type v}
{γ : Type w}
(f : α → β → γ)
{s : set α}
{t : set β} :
(⋃ (b : β) (H : b ∈ t), (λ (a : α), f a b) '' s) = set.image2 f s t
theorem
set.Union_prod_of_monotone
{α : Type u}
{β : Type v}
{γ : Type w}
[semilattice_sup α]
{s : α → set β}
{t : α → set γ}
(hs : monotone s)
(ht : monotone t) :
theorem
set.image_seq
{α : Type u}
{β : Type v}
{γ : Type w}
{f : β → γ}
{s : set (α → β)}
{t : set α} :
theorem
set.image2_eq_seq
{α : Type u}
{β : Type v}
{γ : Type w}
(f : α → β → γ)
(s : set α)
(t : set β) :
set.image2 f s t = (f '' s).seq t
We define some lemmas in the disjoint
namespace to be able to use projection notation.
theorem
set.pairwise_on_disjoint_fiber
{α : Type u}
{β : Type v}
(f : α → β)
(s : set β) :
s.pairwise_on (disjoint on λ (y : β), f ⁻¹' {y})
A collection of sets is pairwise_disjoint
, if any two different sets in this collection
are disjoint.
Equations
theorem
set.pairwise_disjoint.subset
{α : Type u}
{s t : set (set α)}
(h : s ⊆ t)
(ht : t.pairwise_disjoint) :
theorem
set.pairwise_disjoint.range
{α : Type u}
{s : set (set α)}
(f : ↥s → set α)
(hf : ∀ (x : ↥s), f x ⊆ x.val)
(ht : s.pairwise_disjoint) :
def
set.sigma_to_Union
{α : Type u}
{β : Type v}
(t : α → set β)
(x : Σ (i : α), ↥(t i)) :
↥⋃ (i : α), t i
If t
is an indexed family of sets, then there is a natural map from Σ i, t i
to ⋃ i, t i
sending ⟨i, x⟩
to x
.
Equations
- set.sigma_to_Union t x = ⟨↑(x.snd), _⟩
theorem
set.sigma_to_Union_injective
{α : Type u}
{β : Type v}
(t : α → set β)
(h : ∀ (i j : α), i ≠ j → disjoint (t i) (t j)) :
theorem
set.sigma_to_Union_bijective
{α : Type u}
{β : Type v}
(t : α → set β)
(h : ∀ (i j : α), i ≠ j → disjoint (t i) (t j)) :
def
set.Union_eq_sigma_of_disjoint
{α : Type u}
{β : Type v}
{t : α → set β}
(h : ∀ (i j : α), i ≠ j → disjoint (t i) (t j)) :
Equivalence between a disjoint union and a dependent sum.
Equations
def
set.bUnion_eq_sigma_of_disjoint
{α : Type u}
{β : Type v}
{s : set α}
{t : α → set β}
(h : s.pairwise_on (disjoint on t)) :
Equivalence between a disjoint bounded union and a dependent sum.
Equations
- set.bUnion_eq_sigma_of_disjoint h = (equiv.set_congr set.bUnion_eq_sigma_of_disjoint._proof_1).trans (set.Union_eq_sigma_of_disjoint _)