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 #
Finset.nonMemberSubfamily:π.nonMemberSubfamily ais the subfamily of sets not containinga.Finset.memberSubfamily:π.memberSubfamily ais the image of the subfamily of sets containingaunder removinga.Down.compression: Down-compression.
Notation #
π a π is notation for Down.compress a π in locale SetFamily.
References #
Tags #
compression, down-compression
Elements of π that do not contain a.
Equations
- Finset.nonMemberSubfamily a π = Finset.filter (fun (s : Finset Ξ±) => a β s) π
Instances For
Image of the elements of π which contain a under removing a. Finsets that do not contain
a such that insert a s β π.
Equations
- Finset.memberSubfamily a π = Finset.image (fun (s : Finset Ξ±) => s.erase a) (Finset.filter (fun (s : Finset Ξ±) => a β s) π)
Instances For
Induction principle for finset families. To prove a statement for every finset family, it suffices to prove it for
- the empty finset family.
- the finset family which only contains the empty finset.
β¬ βͺ {s βͺ {a} | s β π}assuming the property forβ¬andπ, whereais an element of the ground type andπandβ¬are families of finsets not containinga. Note that instead of givingβ¬andπ, thesubfamilycase gives youπ = β¬ βͺ {s βͺ {a} | s β π}, so thatβ¬ = π.nonMemberSubfamilyandπ = π.memberSubfamily.
This is a way of formalising induction on n where π is a finset family on n elements.
See also Finset.family_induction_on.
Induction principle for finset families. To prove a statement for every finset family, it suffices to prove it for
- the empty finset family.
- the finset family which only contains the empty finset.
{s βͺ {a} | s β π}assuming the property forπa family of finsets not containinga.β¬ βͺ πassuming the property forβ¬andπ, whereais an element of the ground type andβ¬is a family of finsets not containingaandπa family of finsets containinga. Note that instead of givingβ¬andπ, thesubfamilycase gives youπ = β¬ βͺ π, so thatβ¬ = {s β π | a β s}andπ = {s β π | a β s}.
This is a way of formalising induction on n where π is a finset family on n elements.
See also Finset.memberFamily_induction_on.
a-down-compressing π means removing a from the elements of π that contain it, when the
resulting Finset is not already in π.
Equations
- Down.compression a π = (Finset.filter (fun (s : Finset Ξ±) => s.erase a β π) π).disjUnion (Finset.filter (fun (s : Finset Ξ±) => s β π) (Finset.image (fun (s : Finset Ξ±) => s.erase a) π)) β―
Instances For
a-down-compressing π means removing a from the elements of π that contain it, when the
resulting Finset is not already in π.
Equations
- FinsetFamily.termπ = Lean.ParserDescr.node `FinsetFamily.termπ 1024 (Lean.ParserDescr.symbol "π ")
Instances For
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.
Down-compressing a family is idempotent.
Down-compressing a family doesn't change its size.