Cardinal-valued rank #
In a finitary matroid, all bases have the same cardinality.
In fact, something stronger holds: if I and J are both bases 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 Mis the supremum of the cardinalities of the bases of matroidM.Matroid.cRk M Xis the supremum of the cardinalities of the bases of a setXin a matroidM.invariantCardinalRank_of_finitaryis the instance showing thatFinitarymatroids areInvariantCardinalRank.cRk_inter_add_cRk_union_lestates that cardinal rank is submodular.
Notes #
It is not 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.Combinatorics.Matroid.Basic).
Lemmas like Matroid.IsBase.cardinalMk_diff_comm become true for all matroids
only if they are weakened by replacing Cardinal.mk
with the cruder ℕ∞-valued Set.encard; see, for example, Matroid.IsBase.encard_sdiff_comm.
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 the instance 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.Sketch : If the generalized continuum hypothesis is true, then there is a chain of size
2 ^ #Bcontained in each baseB. ThenIsBase.two_pow_cardinalMk_ge_of_isBase_isChainimplies that2 ^ #B ≤ 2 ^ #B'for each pairB, B'of bases. By GCH, this gives#B = #B'.