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 containing- a.
- Finset.memberSubfamily:- π.memberSubfamily ais the image of the subfamily of sets containing- aunder removing- a.
- Down.compression: Down-compression.
Notation #
π a π is notation for Down.compress a π in scope SetFamily.
References #
Tags #
compression, down-compression
Elements of π that do not contain a.
Equations
- Finset.nonMemberSubfamily a π = {s β π | 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) ({s β π | 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- π, where- ais an element of the ground type and- πand- β¬are families of finsets not containing- a. Note that instead of giving- β¬and- π, the- subfamilycase 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 containing- a.
- β¬ βͺ πassuming the property for- β¬and- π, where- ais an element of the ground type and- β¬is a family of finsets not containing- aand- πa family of finsets containing- a. Note that instead of giving- β¬and- π, the- subfamilycase 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 π = {s β π | s.erase a β π}.disjUnion ({s β Finset.image (fun (s : Finset Ξ±) => s.erase a) π | s β π}) β―
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.