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

getIsos -- all isomorphisms between two matroids

Synopsis

Description

This method computes all isomorphisms between M and N: in particular, this method returns an empty list iff M and N are not isomorphic.

To compute only a single isomorphism, use isomorphism. To test if two matroids are isomorphic, use areIsomorphic.

To save space, the isomorphisms are given as lists (as opposed to hash tables). One way to interpret the output of this method is: given two isomorphic matroids, this method returns a permutation representation of the automorphism group of that matroid, inside the symmetric group on the ground set.

i1 : M = matroid({a,b,c},{{a,b},{a,c}})

o1 = a matroid of rank 2 on 3 elements

o1 : Matroid
i2 : U23 = uniformMatroid(2,3)

o2 = a matroid of rank 2 on 3 elements

o2 : Matroid
i3 : getIsos(M, U23) -- not isomorphic

o3 = {}

o3 : List
i4 : getIsos(M, M)

o4 = {{0, 1, 2}, {0, 2, 1}}

o4 : List
i5 : getIsos(U23, U23) -- the full symmetric group S3

o5 = {{0, 1, 2}, {0, 2, 1}, {1, 0, 2}, {1, 2, 0}, {2, 0, 1}, {2, 1, 0}}

o5 : List

We can verify that the Fano matroid (the projective plane over the field of two elements) has automorphism group of order 168, and give a permutation representation for this nonabelian simple group (= PGL(3, F_2)) inside the symmetric group S_7:

i6 : F7 = specificMatroid "fano"

o6 = a matroid of rank 3 on 7 elements

o6 : Matroid
i7 : time autF7 = getIsos(F7, F7);
     -- used 0.055661 seconds
i8 : #autF7

o8 = 168

See also

Ways to use getIsos :

For the programmer

The object getIsos is a method function.