mathlib documentation

combinatorics.set_family.compression.down

Down-compressions #

This file defines down-compression.

Down-compressing π’œ : finset (finset Ξ±) along a : Ξ± means removing a from the elements of π’œ, when the resulting set is not already in π’œ.

Main declarations #

Notation #

𝓓 a π’œ is notation for down.compress a π’œ in locale set_family.

References #

Tags #

compression, down-compression

def finset.non_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
finset (finset Ξ±)

Elements of π’œ that do not contain a.

Equations
def finset.member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
finset (finset Ξ±)

Image of the elements of π’œ which contain a under removing a. Finsets that do not contain a such that insert a s ∈ π’œ.

Equations
@[simp]
theorem finset.mem_non_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} :
@[simp]
theorem finset.mem_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} :
theorem finset.non_member_subfamily_inter {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ ℬ : finset (finset Ξ±)) :
theorem finset.member_subfamily_inter {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ ℬ : finset (finset Ξ±)) :
theorem finset.non_member_subfamily_union {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ ℬ : finset (finset Ξ±)) :
theorem finset.member_subfamily_union {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ ℬ : finset (finset Ξ±)) :
theorem finset.card_member_subfamily_add_card_non_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
theorem finset.member_subfamily_union_non_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
finset.member_subfamily a π’œ βˆͺ finset.non_member_subfamily a π’œ = finset.image (Ξ» (s : finset Ξ±), s.erase a) π’œ
@[simp]
theorem finset.member_subfamily_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {a : Ξ±} :
@[simp]
theorem finset.member_subfamily_non_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {a : Ξ±} :
@[simp]
theorem finset.non_member_subfamily_member_subfamily {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {a : Ξ±} :
@[simp]
def down.compression {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
finset (finset Ξ±)

a-down-compressing π’œ means removing a from the elements of π’œ that contain it, when the resulting finset is not already in π’œ.

Equations
theorem down.mem_compression {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} :
s ∈ down.compression a π’œ ↔ s ∈ π’œ ∧ s.erase a ∈ π’œ ∨ s βˆ‰ π’œ ∧ has_insert.insert a s ∈ π’œ

a is in the down-compressed family iff it's in the original and its compression is in the original, or it's not in the original but it's the compression of something in the original.

theorem down.erase_mem_compression {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} (hs : s ∈ π’œ) :
theorem down.erase_mem_compression_of_mem_compression {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} :
s ∈ down.compression a π’œ β†’ s.erase a ∈ down.compression a π’œ
theorem down.mem_compression_of_insert_mem_compression {Ξ± : Type u_1} [decidable_eq Ξ±] {π’œ : finset (finset Ξ±)} {s : finset Ξ±} {a : Ξ±} (h : has_insert.insert a s ∈ down.compression a π’œ) :
@[simp]
theorem down.compression_idem {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :

Down-compressing a family is idempotent.

@[simp]
theorem down.card_compression {Ξ± : Type u_1} [decidable_eq Ξ±] (a : Ξ±) (π’œ : finset (finset Ξ±)) :
(down.compression a π’œ).card = π’œ.card

Down-compressing a family doesn't change its size.