Maps between matroids #
This file defines maps and comaps, which move a matroid on one type to a matroid on another using a function between the types. The constructions are (up to isomorphism) just combinations of restrictions and parallel extensions, so are not mathematically difficult.
Because a matroid M : Matroid α
is defined with am embedded ground set M.E : Set α
which contains all the structure of M
, there are several types of map and comap
one could reasonably ask for;
for instance, we could map M : Matroid α
to a Matroid β
using either
a function f : α → β
, a function f : ↑M.E → β
or indeed a function f : ↑M.E → ↑E
for some E : Set β
. We attempt to give definitions that capture most reasonable use cases.
Matroid.map
and Matroid.comap
are defined in terms of bare functions rather than
functions defined on subtypes, so are often easier to work in practice than the subtype variants.
In fact, the statement that N = Matroid.map M f _
for some f : α → β
is equivalent to the existence of an isomorphism from M
to N
,
except in the trivial degenerate case where M
is an empty matroid on a nonempty type and N
is an empty matroid on an empty type.
This can be simpler to use than an actual formal isomorphism, which requires subtypes.
Main definitions #
In the definitions below, M
and N
are matroids on α
and β
respectively.
For
f : α → β
,Matroid.comap N f
is the matroid onα
with ground setf ⁻¹' N.E
in which eachI
is independent if and only iff
is injective onI
andf '' I
is independent inN
. (For each nonloopx
ofN
, the setf ⁻¹' {x}
is a parallel class ofN.comap f
)Matroid.comapOn N f E
is the restriction ofN.comap f
toE
for someE : Set α
.For an embedding
f : M.E ↪ β
defined on the subtype↑M.E
,Matroid.mapSetEmbedding M f
is the matroid onβ
with ground setrange f
whose independent sets are the images of those inM
. This matroid is isomorphic toM
.For a function
f : α → β
and a proofhf
thatf
is injective onM.E
,Matroid.map f hf
is the matroid onβ
with ground setf '' M.E
whose independent sets are the images of those inM
. This matroid is isomorphic toM
, and does not depend on the valuesf
takes outsideM.E
.Matroid.mapEmbedding f
is a version ofMatroid.map
wheref : α ↪ β
is a bundled embedding. It is defined separately because the global injectivity off
gives some nicersimp
lemmas.Matroid.mapEquiv f
is a version ofMatroid.map
wheref : α ≃ β
is a bundled equivalence. It is defined separately because we get even nicersimp
lemmas.Matroid.mapSetEquiv f
is a version ofMatroid.map
wheref : M.E ≃ E
is an equivalence on subtypes. It gives a matroid onβ
with ground setE
.For
X : Set α
,Matroid.restrictSubtype M X
is theMatroid X
with ground setuniv : Set X
that is isomorphic toM ↾ X
.
Implementation details #
The definition of comap
is the only place where we need to actually define a matroid from scratch.
After comap
is defined, we can define map
and its variants indirectly in terms of comap
.
If f : α → β
is injective on M.E
, the independent sets of M.map f hf
are the images of
the independent set of M
; i.e. (M.map f hf).Indep I ↔ ∃ I₀, M.Indep I₀ ∧ I = f '' I₀
.
But if f
is globally injective, we can phrase this more directly;
indeed, (M.map f _).Indep I ↔ M.Indep (f ⁻¹' I) ∧ I ⊆ range f
.
If f
is an equivalence we have (M.map f _).Indep I ↔ M.Indep (f.symm '' I)
.
In order that these stronger statements can be @[simp]
,
we define mapEmbedding
and mapEquiv
separately from map
.
Notes #
For finite matroids, both maps and comaps are a special case of a construction of
Perfect [Per69] in which a matroid structure can be transported across an arbitrary
bipartite graph that may not correspond to a function at all (See [Oxl11], Theorem 11.2.12).
It would have been nice to use this more general construction as a basis for the definition
of both Matroid.map
and Matroid.comap
.
Unfortunately, we can't do this, because the construction doesn't extend to infinite matroids.
Specifically, if M₁
and M₂
are matroids on the same type α
,
and f
is the natural function from α ⊕ α
to α
,
then the images under f
of the independent sets of the direct sum M₁ ⊕ M₂
are
the independent sets of a matroid if and only if the union of M₁
and M₂
is a matroid,
and unions do not exist for some pairs of infinite matroids: see [AHCF12].
For this reason, Matroid.map
requires injectivity to be well-defined in general.
TODO #
- Bundled matroid isomorphisms.
- Maps of finite matroids across bipartite graphs.
References #
The pullback of a matroid on β
by a function f : α → β
to a matroid on α
.
Elements with the same (nonloop) image are parallel and the ground set is f ⁻¹' M.E
.
The matroids M.comap f
and M ↾ range f
have isomorphic simplifications;
the preimage of each nonloop of M ↾ range f
is a parallel class.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback of a matroid on β
by a function f : α → β
to a matroid on α
,
restricted to a ground set E
.
The matroids M.comapOn f E
and M ↾ (f '' E)
have isomorphic simplifications;
elements with the same nonloop image are parallel.
Equations
- N.comapOn E f = (N.comap f).restrict E
Instances For
Map a matroid M
to an isomorphic copy in β
using an embedding M.E ↪ β
.
Equations
Instances For
Given a function f
that is injective on M.E
, the copy of M
in β
whose independent sets
are the images of those in M
. If β
is a nonempty type, then N : Matroid β
is a map of M
if and only if M
and N
are isomorphic.
Equations
Instances For
Map M : Matroid α
to a Matroid β
with ground set E
using an equivalence M.E ≃ E
.
Defined using Matroid.ofExistsMatroid
for better defeq.
Equations
Instances For
M.restrictSubtype X
is isomorphic to M ↾ X
.
M.restrictSubtype M.E
is isomorphic to M
.