Finite sets in Option α #
In this file we define
Option.toFinset: construct an empty or singletonFinset αfrom anOption α;Finset.insertNone: givens : Finset α, lift it to a finset onOption αusingOption.someand then insertOption.none;Finset.eraseNone: givens : Finset (Option α), returnst : Finset αsuch thatx ∈ t ↔ some x ∈ s.
Then we prove some basic lemmas about these definitions.
Tags #
finset, option
Construct an empty or singleton finset from an Option
Instances For
@[simp]
@[simp]
Given a finset on α, lift it to being a finset on Option α
using Option.some and then insert Option.none.
Instances For
@[simp]
theorem
Finset.mem_insertNone
{α : Type u_1}
{s : Finset α}
{o : Option α}
:
o ∈ insertNone s ↔ ∀ a ∈ o, a ∈ s
theorem
Finset.forall_mem_insertNone
{α : Type u_1}
{s : Finset α}
{p : Option α → Prop}
:
(∀ a ∈ insertNone s, p a) ↔ p none ∧ ∀ a ∈ s, p (some a)
theorem
Finset.some_mem_insertNone
{α : Type u_1}
{s : Finset α}
{a : α}
:
some a ∈ insertNone s ↔ a ∈ s
@[simp]
@[simp]
theorem
Finset.mem_eraseNone
{α : Type u_1}
{s : Finset (Option α)}
{x : α}
:
x ∈ eraseNone s ↔ some x ∈ s
theorem
Finset.eraseNone_eq_biUnion
{α : Type u_1}
[DecidableEq α]
(s : Finset (Option α))
:
eraseNone s = s.biUnion Option.toFinset
@[simp]
theorem
Finset.eraseNone_map_some
{α : Type u_1}
(s : Finset α)
:
eraseNone (map Function.Embedding.some s) = s
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Finset.map_some_eraseNone
{α : Type u_1}
[DecidableEq (Option α)]
(s : Finset (Option α))
:
map Function.Embedding.some (eraseNone s) = s.erase none
@[simp]
theorem
Finset.insertNone_eraseNone
{α : Type u_1}
[DecidableEq (Option α)]
(s : Finset (Option α))
:
insertNone (eraseNone s) = insert none s
@[simp]