Finite sets in Option α #
In this file we define
- Option.toFinset: construct an empty or singleton- Finset αfrom an- Option α;
- Finset.insertNone: given- s : Finset α, lift it to a finset on- Option αusing- Option.someand then insert- Option.none;
- Finset.eraseNone: given- s : Finset (Option α), returns- t : Finset αsuch that- x ∈ t ↔ some x ∈ s.
Then we prove some basic lemmas about these definitions.
Tags #
finset, option
Given a finset on α, lift it to being a finset on Option α
using Option.some and then insert Option.none.
Equations
- Finset.insertNone = OrderEmbedding.ofMapLEIff (fun (s : Finset α) => Finset.cons none (Finset.map Function.Embedding.some s) ⋯) ⋯
Instances For
@[simp]
@[simp]
Given s : Finset (Option α), eraseNone s : Finset α is the set of x : α such that
some x ∈ s.
Equations
- Finset.eraseNone = (Finset.mapEmbedding (Equiv.optionIsSomeEquiv α).toEmbedding).toOrderHom.comp { toFun := Finset.subtype fun (x : Option α) => x.isSome = true, monotone' := ⋯ }
Instances For
@[simp]
@[simp]
@[simp]
theorem
Finset.eraseNone_union
{α : Type u_1}
[DecidableEq (Option α)]
[DecidableEq α]
(s t : Finset (Option α))
 :
@[simp]
theorem
Finset.eraseNone_inter
{α : Type u_1}
[DecidableEq (Option α)]
[DecidableEq α]
(s t : Finset (Option α))
 :
@[simp]
@[simp]
theorem
Finset.insertNone_eraseNone
{α : Type u_1}
[DecidableEq (Option α)]
(s : Finset (Option α))
 :
@[simp]