Matroid Loops #
A 'loop' of a matroid M
is an element e
satisfying one of the following equivalent conditions:
e ∈ M.closure ∅
;{e}
is dependent inM
;{e}
is a circuit ofM
;- no base of
M
containse
.
In many mathematical contexts, loops can be thought of as 'trivial' or 'zero' elements;
For linearly representable matroids, they correspond to the zero vector,
and for graphic matroids, they correspond to edges incident with just one vertex (aka 'loops').
As trivial as they are, loops can be created from matroids with no loops by taking minors or duals,
so in many contexts it is unreasonable to simply forbid loops from appearing.
For M : Matroid α
, this file defines a set Matroid.loops M : Set α
,
as well as predicates Matroid.IsLoop M : α → Prop
and Matroid.IsNonloop M : α → Prop
,
and provides API for interacting with them.
Main Declarations #
For M
: Matroid α
:
Matroid.loops M
is the closure of the empty set.
Instances For
Alias of the reverse direction of Matroid.singleton_dep
.
Alias of the reverse direction of Matroid.singleton_isCircuit
.
Alias of the forward direction of Matroid.indep_singleton
.
Alias of the reverse direction of Matroid.indep_singleton
.