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 a
is the subfamily of sets not containinga
.Finset.memberSubfamily
:π.memberSubfamily a
is the image of the subfamily of sets containinga
under 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π
, wherea
is an element of the ground type andπ
andβ¬
are families of finsets not containinga
. Note that instead of givingβ¬
andπ
, thesubfamily
case gives youπ = β¬ βͺ {s βͺ {a} | s β π}
, so thatβ¬ = π.nonMemberSubfamily
andπ = π.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π
, wherea
is an element of the ground type andβ¬
is a family of finsets not containinga
andπ
a family of finsets containinga
. Note that instead of givingβ¬
andπ
, thesubfamily
case 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.