Ask Your Question

Incidence graphs of generalised quadrangle and hexagon

asked 2023-12-03 14:38:39 +0100

matcochran gravatar image

updated 2023-12-07 01:12:51 +0100

dan_fulea gravatar image

For an introduction to generalised polygons, see

I am looking to get the incidence graph of the generalised quadrangle $n=4$, and hexagon $n=6$, in particular where the parameters $(s, t)$ of the generalised polygons are equal.

Once found, I would like to create the corresponding polarity graphs, either directly from the incidence graphs, or by first finding the polarity and using it to manually construct the polarity graph.

Does Sagemath have these functions, or if not, how could I construct them?

edit retag flag offensive close merge delete



Please give some references to the mathematical definition of the involved objects. Or some sample minimal code initializing the situation. The "particular case $s=t$" is not really giving helpful information to the reader.

dan_fulea gravatar imagedan_fulea ( 2023-12-03 19:08:14 +0100 )edit

Here are some available things:

$ git grep "def .*Quadrangle" src/
src/sage/graphs/generators/ AhrensSzekeresGeneralizedQuadrangleGraph(q, dual=False):
src/sage/graphs/generators/ T2starGeneralizedQuadrangleGraph(q, dual=False, hyperoval=None, field=None, check_hyperoval=True):
$ git grep "def .*Hexagon" src/
src/sage/graphs/generators/distance_regular.pyx:def GeneralisedHexagonGraph(const int s, const int t):
FrédéricC gravatar imageFrédéricC ( 2023-12-06 10:34:18 +0100 )edit

1 Answer

Sort by » oldest newest most voted

answered 2023-12-07 02:19:59 +0100

dan_fulea gravatar image

After the comment of FrédéricC i took at the generalized hexagon graphs that sage may construct for some small values of the $(s, t)$ parameters, in case $s=t$. In each of the cases i want to see the number of vertices, and the number of edges.

Note that these graphs have no supplementary structure, so that a polarity $\pi$ (sending lines to points and preserving incidence relations) cannot be constructed by using any geometric origin.

for s in [2..7]:
        G = graphs.GeneralisedHexagonGraph(s, s)
        print(f"The GeneralisedHexagonGraph({s}, {s}) has {len(G.vertices())} vertices and {len(G.edges())} edges")
        import traceback

The above produces:

The GeneralisedHexagonGraph(2, 2) has 63 vertices and 189 edges
The GeneralisedHexagonGraph(3, 3) has 364 vertices and 2184 edges
The GeneralisedHexagonGraph(4, 4) has 1365 vertices and 13650 edges
The GeneralisedHexagonGraph(5, 5) has 3906 vertices and 58590 edges

and for the next values we get errors:

  • $s=6$

    ValueError: No generalised hexagon of order (6, 6) is known
  • $s=7$

    NotImplementedError: Graph would be too big

But ok, we have some few toy examples to work with. For instance, let us work with the second graph, the one with $364$ vertices.

sage: G = graphs.GeneralisedHexagonGraph(3, 3)
sage: G.vertices()[:10]
[52, 40, 3, 22, 4, 17, 5, 30, 6, 23]
sage: # The vertices of the graphs have thus integers as labels... 
sage: # Above sage shows the first ten vertices, as they are stored in some awkward order...
sage: G.edges()[:10]
[(52, 352, None),
 (1, 52, None),
 (25, 52, None),
 (52, 339, None),
 (13, 52, None),
 (52, 341, None),
 (52, 324, None),
 (52, 140, None),
 (52, 113, None),
 (18, 52, None)]
sage: # here are some first few edges, so 52 is connected to 352, 1, 25, 339, 13, 341, ...

This is definitively what you need.

On the other side, one can construct as in the literature the one or the other structure.

You may want to take a look at the GAP-implementations...

(Sage can work with some GAP-objects, but this is an other story.)

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2023-12-03 14:38:39 +0100

Seen: 71 times

Last updated: Dec 07 '23