Interactions between embeddings and sets. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Embedding into with_top α
.
Equations
- function.embedding.coe_with_top = {to_fun := coe coe_to_lift, inj' := _}
@[simp]
@[simp]
theorem
function.embedding.option_elim_apply
{α : Type u_1}
{β : Type u_2}
(f : α ↪ β)
(x : β)
(h : x ∉ set.range ⇑f)
(ᾰ : option α) :
⇑(f.option_elim x h) ᾰ = option.elim x ⇑f ᾰ
@[simp]
theorem
function.embedding.option_embedding_equiv_apply_fst
(α : Type u_1)
(β : Type u_2)
(f : option α ↪ β) :
@[simp]
theorem
function.embedding.option_embedding_equiv_apply_snd_coe
(α : Type u_1)
(β : Type u_2)
(f : option α ↪ β) :
↑((⇑(function.embedding.option_embedding_equiv α β) f).snd) = ⇑f option.none
Equivalence between embeddings of option α
and a sigma type over the embeddings of α
.
A subtype {x // p x ∨ q x}
over a disjunction of p q : α → Prop
is equivalent to a sum of
subtypes {x // p x} ⊕ {x // q x}
such that ¬ p x
is sent to the right, when
disjoint p q
.
See also equiv.sum_compl
, for when is_compl p q
.
Equations
- subtype_or_equiv p q h = {to_fun := ⇑(subtype_or_left_embedding p q), inv_fun := sum.elim ⇑(subtype.imp_embedding (λ (x : α), p x) (λ (x : α), p x ∨ q x) _) ⇑(subtype.imp_embedding (λ (x : α), q x) (λ (x : α), p x ∨ q x) _), left_inv := _, right_inv := _}
@[simp]
theorem
subtype_or_equiv_apply
{α : Type u_1}
(p q : α → Prop)
[decidable_pred p]
(h : disjoint p q)
(ᾰ : {x // p x ∨ q x}) :
⇑(subtype_or_equiv p q h) ᾰ = ⇑(subtype_or_left_embedding p q) ᾰ
@[simp]
theorem
subtype_or_equiv_symm_inl
{α : Type u_1}
(p q : α → Prop)
[decidable_pred p]
(h : disjoint p q)
(x : {x // p x}) :
@[simp]
theorem
subtype_or_equiv_symm_inr
{α : Type u_1}
(p q : α → Prop)
[decidable_pred p]
(h : disjoint p q)
(x : {x // q x}) :