@@ -109,6 +109,8 @@ additional functionality (e.g. linear extensions).
109
109
- :meth:`is_4connected( ) <sage. matroids. matroid. Matroid. is_4connected>`
110
110
- :meth:`is_kconnected( ) <sage. matroids. matroid. Matroid. is_kconnected>`
111
111
- :meth:`connectivity( ) <sage. matroids. matroid. Matroid. connectivity>`
112
+ - :meth:`is_paving( ) <sage. matroids. matroid. Matroid. is_paving>`
113
+ - :meth:`is_sparse_paving( ) <sage. matroids. matroid. Matroid. is_sparse_paving>`
112
114
113
115
- Representation
114
116
- :meth:`binary_matroid( ) <sage. matroids. matroid. Matroid. binary_matroid>`
@@ -133,9 +135,10 @@ additional functionality (e.g. linear extensions).
133
135
134
136
- Construction
135
137
- :meth:`union( ) <sage. matroids. matroid. Matroid. union>`
136
- - :math :`direct_sum( ) <sage. matroids. matroid. Matroid. direct_sum>`
138
+ - :meth :`direct_sum( ) <sage. matroids. matroid. Matroid. direct_sum>`
137
139
138
140
- Misc
141
+ - :meth:`automorphism_group( ) <sage. matroids. matroid. Matroid. automorphism_group>`
139
142
- :meth:`broken_circuit_complex( ) <sage. matroids. matroid. Matroid. broken_circuit_complex>`
140
143
- :meth:`chow_ring( ) <sage. matroids. matroid. Matroid. chow_ring>`
141
144
- :meth:`matroid_polytope( ) <sage. matroids. matroid. Matroid. matroid_polytope>`
@@ -5953,6 +5956,57 @@ cdef class Matroid(SageObject):
5953
5956
return False
5954
5957
return True
5955
5958
5959
+ cpdef is_paving(self ) noexcept:
5960
+ """
5961
+ Return if ``self`` is paving.
5962
+
5963
+ A matroid is paving if each of its circuits has size `r` or `r+1`.
5964
+
5965
+ OUTPUT:
5966
+
5967
+ a Boolean
5968
+
5969
+ EXAMPLES::
5970
+
5971
+ sage: M = matroids.named_matroids.Vamos()
5972
+ sage: M.is_paving()
5973
+ True
5974
+
5975
+ """
5976
+ for C in self .circuits():
5977
+ if len (C) < self .rank():
5978
+ return False
5979
+ return True
5980
+
5981
+ cpdef is_sparse_paving(self ) noexcept:
5982
+ """
5983
+ Return if ``self`` is sparse-paving.
5984
+
5985
+ A matroid is sparse-paving if the symmetric difference of every pair
5986
+ of circuits is greater than 2.
5987
+
5988
+ OUTPUT:
5989
+
5990
+ a Boolean
5991
+
5992
+ EXAMPLES::
5993
+
5994
+ sage: M = matroids.named_matroids.Vamos()
5995
+ sage: M.is_sparse_paving()
5996
+ False
5997
+ sage: M = matroids.named_matroids.Fano()
5998
+ sage: M.is_sparse_paving()
5999
+ True
6000
+
6001
+ """
6002
+ if not self .is_paving():
6003
+ return False
6004
+ from itertools import combinations
6005
+ for (C1, C2) in combinations(self .circuits(), 2 ):
6006
+ if len (C1 ^ C2) <= 2 :
6007
+ return False
6008
+ return True
6009
+
5956
6010
# representability
5957
6011
5958
6012
cpdef _local_binary_matroid(self , basis = None ) noexcept:
@@ -7916,6 +7970,42 @@ cdef class Matroid(SageObject):
7916
7970
from sage.topology.simplicial_complex import SimplicialComplex
7917
7971
return SimplicialComplex(self .no_broken_circuits_sets(ordering))
7918
7972
7973
+ cpdef automorphism_group(self ) noexcept:
7974
+ r """
7975
+ Return the automorphism group of ``self``.
7976
+
7977
+ For a matroid `M`, an automorphism is a permutation `\s igma` of `E( M) `
7978
+ ( the groundset) such that `r( X) = r( \s igma( X)) ` for all `X \s ubseteq
7979
+ E( M) `. The set of automorphisms of `M` forms a group under composition.
7980
+ This automorphism group is transitive if, for every two elements `x`
7981
+ and `y` of `M`, there is an automorphism that maps `x` to `y`.
7982
+
7983
+ EXAMPLES::
7984
+
7985
+ sage: M = matroids. named_matroids. Fano( )
7986
+ sage: G = M. automorphism_group( )
7987
+ sage: G. is_transitive( )
7988
+ True
7989
+ sage: G. structure_description( )
7990
+ 'PSL( 3,2) '
7991
+ sage: M = matroids. named_matroids. P8pp( )
7992
+ sage: M. automorphism_group( ) . is_transitive( )
7993
+ True
7994
+ sage: M = matroids. named_matroids. ExtendedTernaryGolayCode( )
7995
+ sage: G = M. automorphism_group( )
7996
+ sage: G. is_transitive( )
7997
+ True
7998
+ sage: G. structure_description( )
7999
+ 'M12'
8000
+
8001
+ REFERENCES:
8002
+
8003
+ [Oxl2011 ], p. 189.
8004
+
8005
+ """
8006
+ from sage.topology.simplicial_complex import SimplicialComplex
8007
+ return SimplicialComplex(self .bases()).automorphism_group()
8008
+
7919
8009
cpdef bergman_complex(self ) noexcept:
7920
8010
r """
7921
8011
Return the Bergman complex of ``self``.
0 commit comments