Database of generalised quadrangles with spread#

This module implements some construction of generalised quadrangles with spread.

EXAMPLES:

sage: GQ, S = designs.generalised_quadrangle_with_spread(4, 16, check=False)
sage: GQ
Incidence structure with 325 points and 1105 blocks
sage: GQ2, O = designs.generalised_quadrangle_hermitian_with_ovoid(4)
sage: GQ2
Incidence structure with 1105 points and 325 blocks
sage: GQ3 = GQ.dual()
sage: set(GQ3._points) == set(GQ2._points)
True
sage: GQ2.is_isomorphic(GQ3) # long time
True

REFERENCES:

AUTHORS:

  • Ivo Maffei (2020-07-26): initial version

sage.combinat.designs.gen_quadrangles_with_spread.dual_GQ_ovoid(GQ, O)#

Compute the dual incidence structure of GQ and return the image of \(O\) under the dual map

INPUT:

  • GQ – IncidenceStructure; the generalised quadrangle we want the dual of

  • O – iterable; the iterable of blocks we want to compute the dual

OUTPUT:

A pair (D, S) where D is the dual of GQ and S is the dual of O

EXAMPLES:

sage: from sage.combinat.designs.gen_quadrangles_with_spread import \
....: dual_GQ_ovoid
sage: t = designs.generalised_quadrangle_hermitian_with_ovoid(3)
sage: t[0].is_generalized_quadrangle(parameters=True)
(9, 3)
sage: t = dual_GQ_ovoid(*t)
sage: t[0].is_generalized_quadrangle(parameters=True)
(3, 9)
sage: all([x in t[0] for x in t[1]])
True
sage.combinat.designs.gen_quadrangles_with_spread.generalised_quadrangle_hermitian_with_ovoid(q)#

Construct the generalised quadrangle \(H(3,q^2)\) with an ovoid.

The GQ has order \((q^2,q)\).

INPUT:

  • q – integer; a prime power

OUTPUT:

A pair (D, O) where D is an IncidenceStructure representing the generalised quadrangle and O is a list of points of D which constitute an ovoid of D

EXAMPLES:

sage: t = designs.generalised_quadrangle_hermitian_with_ovoid(4)
sage: t[0]
Incidence structure with 1105 points and 325 blocks
sage: len(t[1])
65
sage: G = t[0].intersection_graph([1])  # line graph
sage: G.is_strongly_regular(True)
(325, 68, 3, 17)
sage: set(t[0].block_sizes())
{17}

REFERENCES:

For more on \(H(3,q^2)\) and the construction implemented here see [PT2009] or [TP1994].

sage.combinat.designs.gen_quadrangles_with_spread.generalised_quadrangle_with_spread(s, t, existence=False, check=True)#

Construct a generalised quadrangle GQ of order \((s,t)\) with a spread S.

INPUT:

  • s, t – integers; order of the generalised quadrangle

  • existence – boolean;

  • check – boolean; if True, then Sage checks that the object built is correct. (default: True)

OUTPUT:

A pair \((GQ, S)\) where \(GQ\) is a IncidenceStructure representing the generalised quadrangle and \(S\) is a list of blocks of \(GQ\) representing the spread of \(GQ\).

EXAMPLES:

sage: t = designs.generalised_quadrangle_with_spread(3, 9)
sage: t[0]
Incidence structure with 112 points and 280 blocks
sage: designs.generalised_quadrangle_with_spread(5, 25, existence=True)
True
sage: (designs.generalised_quadrangle_with_spread(4, 16, check=False))[0]
Incidence structure with 325 points and 1105 blocks
sage: designs.generalised_quadrangle_with_spread(0, 2, existence=True)
False

REFERENCES:

For more on generalised quadrangles and their spread see [PT2009] or [TP1994].

sage.combinat.designs.gen_quadrangles_with_spread.is_GQ_with_spread(GQ, S, s=None, t=None)#

Check if GQ is a generalised quadrangle of order \((s,t)\) and check that S is a spread of GQ

INPUT:

  • GQ – IncidenceStructure; the incidence structure that is supposed to be a generalised quadrangle

  • S – iterable; the spread of GQ as an iterable of the blocks of GQ

  • s, t – integers (optional); if \((s,t)\) are given, then we check that GQ has order \((s,t)\)

EXAMPLES:

sage: from sage.combinat.designs.gen_quadrangles_with_spread import *
sage: t = generalised_quadrangle_hermitian_with_ovoid(3)
sage: is_GQ_with_spread(*t)
Traceback (most recent call last):
...
TypeError: 'int' object is not iterable
sage: t = dual_GQ_ovoid(*t)
sage: is_GQ_with_spread(*t)
True
sage: is_GQ_with_spread(*t, s=3)
True