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]
@[instance_reducible]
Equations
- Finset.boundedOrder = { top := Finset.univ, le_top := ⋯, toOrderBot := inferInstance }
@[instance_reducible]
instance Finset.booleanAlgebra {α : Type u_1} [Fintype α] [DecidableEq α] :
BooleanAlgebra (Finset α)
@[simp]
@[simp]
theorem Finset.subset_compl_iff_disjoint_right {α : Type u_1} {s t : Finset α} [Fintype α] [DecidableEq α] :
theorem Finset.subset_compl_iff_disjoint_left {α : Type u_1} {s t : Finset α} [Fintype α] [DecidableEq α] :
@[simp]
theorem Finset.subset_compl_singleton {α : Type u_1} {s : Finset α} [Fintype α] [DecidableEq α] {a : α} :
@[simp]
@[simp]
@[simp]
theorem Finset.compl_filter {α : Type u_1} [Fintype α] [DecidableEq α] (p : α → Prop) [DecidablePred p] [(x : α) → Decidable ¬p x] :
theorem Finset.image_univ_of_surjective {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq α] [Fintype β] {f : β → α} (hf : Function.Surjective f) :
@[simp]
@[simp]
@[simp]
theorem Finset.univ_filter_exists {α : Type u_1} {β : Type u_2} [Fintype α] (f : α → β) [Fintype β] [DecidablePred fun (y : β) => ∃ (x : α), f x = y] [DecidableEq β] :
@[simp]
theorem Finset.subtype_univ {α : Type u_1} [Fintype α] (p : α → Prop) [DecidablePred p] [Fintype { a : α // p a }] :
theorem Finset.univ_val_map_subtype_val {α : Type u_1} [Fintype α] (p : α → Prop) [DecidablePred p] [Fintype { a : α // p a }] :
@[instance_reducible]
instance Finset.decidableCodisjoint {α : Type u_1} {s t : Finset α} [Fintype α] [DecidableEq α] :
Decidable (Codisjoint s t)
Equations
- Finset.decidableCodisjoint = decidable_of_iff (∀ ⦃a : α⦄, a ∉ s → a ∈ t) ⋯
@[instance_reducible]
Equations
- Finset.decidableIsCompl = decidable_of_iff' (Disjoint s t ∧ Codisjoint s t) ⋯