Cardinal-valued rank #
In a finitary matroid, all bases have the same cardinality.
In fact, something stronger holds: if each of I
and J
is a basis for a set X
,
then #(I \ J) = #(J \ I)
and (consequently) #I = #J
.
This file introduces a typeclass InvariantCardinalRank
that applies to any matroid
such that this property holds for all I
, J
and X
.
A matroid satisfying this condition has a well-defined cardinality-valued rank function, both for itself and all its minors.
Main Declarations #
Matroid.InvariantCardinalRank
: a typeclass capturing the idea that a matroid and all its minors have a well-behaved cardinal-valued rank function.Matroid.cRank M
is the supremum of the cardinalities of the bases of matroidM
.Matroid.cRk M X
is the supremum of the cardinalities of the bases of a setX
in a matroidM
.invariantCardinalRank_of_finitary
is the instance showing thatFinitary
matroids areInvariantCardinalRank
.cRk_inter_add_cRk_union_le
states that cardinal rank is submodular.
Notes #
It is not (provably) the case that all matroids are InvariantCardinalRank
,
since the equicardinality of bases in general matroids is independent of ZFC
(see the module docstring of Mathlib.Data.Matroid.Basic
).
Lemmas like Matroid.Base.cardinalMk_diff_comm
become true for all matroids
only if they are weakened by replacing Cardinal.mk
with the cruder ℕ∞
-valued Set.encard
.
The ℕ∞
-valued rank and rank functions Matroid.eRank
and Matroid.eRk
,
which have a more unconditionally strong API, are developed in Data.Matroid.Rank.ENat
.
Implementation Details #
Since the functions cRank
and cRk
are defined as suprema,
independently of the Matroid.InvariantCardinalRank
typeclass,
they are well-defined for all matroids.
However, for matroids that do not satisfy InvariantCardinalRank
, they are badly behaved.
For instance, in general cRk
is not submodular,
and its value may differ on a set X
and the closure of X
.
We state and prove theorems without InvariantCardinalRank
whenever possible,
which sometime makes their proofs longer than they would be with the instance.
TODO #
- Higgs' theorem : if the generalized continuum hypothesis holds,
then every matroid is
InvariantCardinalRank
.
The rank (supremum of the cardinalities of bases) of a matroid M
as a Cardinal
.
See Matroid.eRank
for a better-behaved ℕ∞
-valued version.
Instances For
The rank (supremum of the cardinalities of bases) of a set X
in a matroid M
,
as a Cardinal
. See Matroid.eRk
for a better-behaved ℕ∞
-valued version.
Instances For
A class stating that cardinality-valued rank is well-defined
(i.e. all bases are equicardinal) for a matroid M
and its minors.
Notably, this holds for Finitary
matroids; see Matroid.invariantCardinalRank_of_finitary
.
- forall_card_isBasis_diff ⦃I J X : Set α⦄ : M.IsBasis I X → M.IsBasis J X → Cardinal.mk ↑(I \ J) = Cardinal.mk ↑(J \ I)
Instances
Restrictions of matroids with cardinal rank functions have cardinal rank functions-
Finitary
matroids have a cardinality-valued rank function.