The dual matroid of a matroid M has the same ground set as M, and bases equal to the complements of bases of M.
Duality is a fundamental operation in matroid theory: for nearly any property/operation of matroids, there is a corresponding dual version, usually denoted with the prefix "co". For instance, coloops are loops of the dual, and contraction is dual to deletion.
In this package, every dual matroid is created as a matroiddual matroid pair, and each is cached as the dual of the other. Often the ideal of the dual matroid has a significantly different number of generators, so many algorithms in this package will use an equivalent check for the ideal with fewer generators.






A matroid that is isomorphic to its dual is called selfdual; and a matroid that is equal to its dual is called identically selfdual.





If a matroid has a representation stored, then this function will attempt to automatically compute a representation for the dual (whether this works depends on whether reducedRowEchelonForm is implemented for the underlying ring of the matrix).



