next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Matroids :: Matroid == Matroid

Matroid == Matroid -- whether two matroids are equal

Synopsis

Description

Two matroids are considered equal if they have the same set of (indexed) bases and same size grounds sets (in particular, the ground sets need not be identical). This happens iff the identity permutation is an isomorphism.

The strong comparison operator === should not be used, as bases (and ground sets) are internally stored as lists rather than sets, so the same matroid with a different ordering on the list of bases (or ground set) will be treated as different under ===. (One might try to sort the list of bases, but this is potentially time-consuming, as the list of bases can grow rapidly with the size of the ground set.)

i1 : M = matroid completeGraph 3

o1 = a matroid of rank 2 on 3 elements

o1 : Matroid
i2 : peek M

o2 = Matroid{bases => {set {1, 2}, set {0, 2}, set {0, 1}}}
             cache => CacheTable{...4...}
             groundSet => set {0, 1, 2}
             rank => 2
i3 : N = uniformMatroid(2, 3)

o3 = a matroid of rank 2 on 3 elements

o3 : Matroid
i4 : peek N

o4 = Matroid{bases => {set {0, 1}, set {0, 2}, set {1, 2}}}
             cache => CacheTable{...2...}
             groundSet => set {0, 1, 2}
             rank => 2
i5 : M == N

o5 = true
i6 : M === N

o6 = false
i7 : AG32 = specificMatroid "AG32" -- identically self-dual

o7 = a matroid of rank 4 on 8 elements

o7 : Matroid
i8 : AG32 == dual AG32

o8 = true
i9 : AG32 === dual AG32

o9 = false
i10 : V = specificMatroid "vamos" -- self-dual, but not identically so

o10 = a matroid of rank 4 on 8 elements

o10 : Matroid
i11 : V == dual V

o11 = false
i12 : areIsomorphic(V, dual V)

o12 = true

See also