Finsets are a Boolean algebra #
This file provides the BooleanAlgebra (Finset α) instance, under the assumption that α is a
Fintype.
Main results #
Finset.boundedOrder:Finset.univis the top element ofFinset αFinset.booleanAlgebra:Finset αis a Boolean algebra ifαis finite
@[simp]
@[simp]
@[simp]
@[simp]
@[implicit_reducible]
@[simp]
theorem
Finset.codisjoint_left
{α : Type u_1}
{s t : Finset α}
[Fintype α]
:
Codisjoint s t ↔ ∀ ⦃a : α⦄, a ∉ s → a ∈ t
theorem
Finset.codisjoint_right
{α : Type u_1}
{s t : Finset α}
[Fintype α]
:
Codisjoint s t ↔ ∀ ⦃a : α⦄, a ∉ t → a ∈ s
@[implicit_reducible]
instance
Finset.booleanAlgebra
{α : Type u_1}
[Fintype α]
[DecidableEq α]
:
BooleanAlgebra (Finset α)
@[simp]
theorem
Finset.mem_compl
{α : Type u_1}
{s : Finset α}
[Fintype α]
[DecidableEq α]
{a : α}
:
a ∈ sᶜ ↔ a ∉ s
theorem
Finset.notMem_compl
{α : Type u_1}
{s : Finset α}
[Fintype α]
[DecidableEq α]
{a : α}
:
a ∉ sᶜ ↔ a ∈ s
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Finset.subset_compl_singleton
{α : Type u_1}
{s : Finset α}
[Fintype α]
[DecidableEq α]
{a : α}
:
s ⊆ {a}ᶜ ↔ a ∉ s
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Finset.map_univ_equiv
{α : Type u_1}
{β : Type u_2}
[Fintype α]
[Fintype β]
(f : β ≃ α)
:
map f.toEmbedding univ = univ
theorem
Finset.univ_map_equiv_to_embedding
{α : Type u_4}
{β : Type u_5}
[Fintype α]
[Fintype β]
(e : α ≃ β)
:
map e.toEmbedding univ = univ
@[simp]
@[simp]
theorem
Finset.subtype_eq_univ
{α : Type u_1}
{s : Finset α}
{p : α → Prop}
[DecidablePred p]
[Fintype { a : α // p a }]
:
Finset.subtype p s = univ ↔ ∀ ⦃a : α⦄, p a → a ∈ s
@[simp]
theorem
Finset.subtype_univ
{α : Type u_1}
[Fintype α]
(p : α → Prop)
[DecidablePred p]
[Fintype { a : α // p a }]
:
Finset.subtype p univ = univ
theorem
Finset.univ_map_subtype
{α : Type u_1}
[Fintype α]
(p : α → Prop)
[DecidablePred p]
[Fintype { a : α // p a }]
:
map (Function.Embedding.subtype p) univ = filter p univ
theorem
Finset.univ_val_map_subtype_restrict
{α : Type u_1}
{β : Type u_2}
[Fintype α]
(f : α → β)
(p : α → Prop)
[DecidablePred p]
[Fintype { a : α // p a }]
:
Multiset.map (Subtype.restrict p f) univ.val = Multiset.map f (filter p univ).val
@[simp]
theorem
Finset.filter_univ_mem
{α : Type u_1}
[Fintype α]
[DecidableEq α]
(s : Finset α)
:
{x : α | x ∈ s} = s
@[implicit_reducible]
instance
Finset.decidableCodisjoint
{α : Type u_1}
{s t : Finset α}
[Fintype α]
[DecidableEq α]
:
Decidable (Codisjoint s t)
@[implicit_reducible]
instance
Finset.decidableIsCompl
{α : Type u_1}
{s t : Finset α}
[Fintype α]
[DecidableEq α]
:
Decidable (IsCompl s t)