Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 Bib Ind
 Top of Book   Previous Chapter   Next Chapter 

4 Incidence Geometry
 4.1 Incidence structures
  4.1-1 IsIncidenceStructure

  4.1-2 IsIncidenceGeometry

  4.1-3 Main categories in IsIncidenceGeometry

  4.1-4 Main categories in IsLieGeometry

  4.1-5 Categories in IsGeneralisedPolygon

  4.1-6 IsElationGQ

  4.1-7 IsClassicalGQ

  4.1-8 Examples of categories of incidence geometries

  4.1-9 TypesOfElementsOfIncidenceStructure

  4.1-10 Rank

  4.1-11 AmbientGeometry

  4.1-12 AmbientSpace

  4.1-13 IsIncident
 4.2 Elements of incidence structures
  4.2-1 Main categories for individual elements of incidence structures

  4.2-2 Main categories for collections of elements of incidence structures

  4.2-3 ElementsOfIncidenceStructure

  4.2-4 Short names for ElementsOfIncidenceStructure

  4.2-5 Hyperplanes

  4.2-6 IsIncident

  4.2-7 Random

  4.2-8 Size
 4.3 Shadows of elements
  4.3-1 ShadowOfElement

  4.3-2 ShadowOfFlag

4 Incidence Geometry

The term geometry, or incidence geometry, is interpreted broadly in this package. The basis for the construction of the objects in this package is an abstract incidence geometry consisting of elements, types, and an incidence relation. To be more specific, an incidence geometry consists of a set of elements a symmetric relation on the elements and a type function from the set of elements to an index set (i.e., every element has a ``type''). There are two axioms: (i) no two elements of the same type are incident; (ii) every maximal flag contains an element of each type. Thus, a projective 5-space is an incidence geometry with five types of elements; points, lines, planes, solids, and hyperplanes.

FinInG concerns itself primarily with the most commonly studied incidence geometries of rank more than 2: projective spaces, polar spaces, and affine spaces. However, some facility with generalised polygons has been included. Throughout, no matter the geometry, we have made the convention that an element of type 1 is a ``point'', an element of type 2 is a ``line'', and so forth. The examples we use in this section use projective spaces, which have not introduced the reader to yet in this manual. For further information on projective spaces, see Chapter 8.

probably more detailed information is needed here. E.g. we start to explain Incidence Geometry, but suddenly, we talk about Incidence Structures in the next sections. Not clear at all if we mean the same thing or not, and, we have Incidence Geometries *and* Incidence Structures in this package. Essentially, in this chapter we describe functionality that is declared for incidence structures, which does not imply that operations described here will work for arbitrarily user constructed incidence geometries.

4.1 Incidence structures

particular and general examples of incidence structures. Show categorie graph?

4.1-1 IsIncidenceStructure
> IsIncidenceStructure( category )

General Top level category for all objects representing an incidence structure. IsIncidenceStructure.

4.1-2 IsIncidenceGeometry
> IsIncidenceGeometry( category )

General category for all objects representing an incidence geometry.

Lie Geometries, i.e. geometries with a projective space as ambient geometry, affine spaces and generalised polygons have their category, as a subcategory of IsIncidenceGeometry.

4.1-3 Main categories in IsIncidenceGeometry
> IsLieGeometry( category )
> IsAffineSpace( category )
> IsGeneralisedPolygon( category )

4.1-4 Main categories in IsLieGeometry
> IsProjectiveSpace( category )
> IsClassicalPolarSpace( category )

Lie geometries bundle projective spaces and classical polar spaces. Both classes of geometries have their category, as a subcategory of IsLieGeometry.

The following categories for geometries are not considered as main categories.

4.1-5 Categories in IsGeneralisedPolygon
> IsGeneralisedQuadrangle( category )
> IsGeneralisedHexagon( category )
> IsGeneralisedOctogon( category )

Within IsGeneralisedPolygon, categories are declared for generalised quadrangles, generalised hexagons, and generalised octogons.

4.1-6 IsElationGQ
> IsElationGQ( category )

Within IsGeneralisedQuadrangle, this category is declared to construct elation generalised quadrangles.

4.1-7 IsClassicalGQ
> IsClassicalGQ( category )

This category lies in IsElationGQ and IsClassicalPolarSpace.

4.1-8 Examples of categories of incidence geometries
gap> CategoriesOfObject(ProjectiveSpace(5,7));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsLieGeometry", 
  "IsProjectiveSpace" ]
gap> CategoriesOfObject(HermitianVariety(5,9));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsLieGeometry", 
  "IsClassicalPolarSpace" ]
gap> CategoriesOfObject(AffineSpace(3,3));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsAffineSpace" ]
gap> CategoriesOfObject(SymplecticSpace(3,11));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsLieGeometry", 
  "IsClassicalPolarSpace", "IsGeneralisedPolygon", "IsGeneralisedQuadrangle", 
  "IsElationGQ", "IsClassicalGQ" ]
gap> CategoriesOfObject(SplitCayleyHexagon(9));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsGeneralisedPolygon", 
  "IsGeneralisedHexagon" ]
gap> CategoriesOfObject(ParabolicQuadric(4,16));
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsLieGeometry", 
  "IsClassicalPolarSpace", "IsGeneralisedPolygon", "IsGeneralisedQuadrangle", 
  "IsElationGQ", "IsClassicalGQ" ]
 

4.1-9 TypesOfElementsOfIncidenceStructure
> TypesOfElementsOfIncidenceStructure( ig )( operation )
> TypesOfElementsOfIncidenceStructurePlural( ig )( operation )

Returns: a list of strings

Any incidence structure contains elements of a set of types. Names can be given to an element of each type, and this operation returns the names for the particular ig. The second variant returs the list of plurals of these names.

gap> TypesOfElementsOfIncidenceStructure(ProjectiveSpace(5,4));
[ "point", "line", "plane", "solid", "proj. 4-space" ]
gap> TypesOfElementsOfIncidenceStructurePlural(AffineSpace(7,4));
[ "points", "lines", "planes", "solids", "affine. subspaces of dim. 5", 
  "affine. subspaces of dim. 6", "affine. subspaces of dim. 7" ]
 

4.1-10 Rank
> Rank( ig )( operation )

Returns: rank of ig

4.1-11 AmbientGeometry
> AmbientGeometry( ig )( operation )

4.1-12 AmbientSpace
> AmbientSpace( ig )( operation )

4.1-13 IsIncident
> IsIncident( ig )( operation )

4.2 Elements of incidence structures

4.2-1 Main categories for individual elements of incidence structures
> IsElementOfIncidenceStructure( category )
> IsElementOfIncidenceGeometry( category )
> IsElementOfLieGeometry( category )
> IsElementOfAffineSpace( category )
> IsSubspaceOfProjectiveSpace( category )
> IsSubspaceOfClassicalPolarSpace( category )

In FinInG a category for the indidual elements of an incidence structure in a category IsIncStr is declared and named IsElementOfIncStr. The inclusion for different categories of geometries is followed for their elements, except for IsSubspaceOfClassicalPolarSpace, which is a subcategory of IsSubspaceOfProjectiveSpace, while IsClassicalPolarSpace is not a subcategory of IsProjectiveSpace. The reasons for this construction are obvious.

gap> Random(Lines(SplitCayleyHexagon(3)));
<a line in Q(6, 3)>
gap> CategoriesOfObject(last);
[ "IsElementOfIncidenceStructure", "IsElementOfIncidenceGeometry", 
  "IsElementOfLieGeometry", "IsSubspaceOfProjectiveSpace", 
  "IsSubspaceOfClassicalPolarSpace" ]
gap> Random(Solids(AffineSpace(7,17)));
<a solid in AG(7, 17)>
gap> CategoriesOfObject(last);
[ "IsElementOfIncidenceStructure", "IsElementOfIncidenceGeometry", 
  "IsSubspaceOfAffineSpace" ]
 

4.2-2 Main categories for collections of elements of incidence structures
> IsElementsOfIncidenceStructure( category )
> IsElementsOfIncidenceGeometry( category )
> IsElementsOfLieGeometry( category )
> IsElemenstOfAffineSpace( category )
> IsSubspacesOfProjectiveSpace( category )
> IsSubspacesOfClassicalPolarSpace( category )

In FinInG for an incidence structure ig in the category IsIncStr, a category IsElementsOfIncStr is declared for objects representing a set of elements of ig, all of the same type. E.g. the set of all elements of a given type of ig will be constructed in IsElementsOfIncStr. The chain of inclusions for IsElementsOfIncStr follows the chain of inclusions of IsElementOfIncStr.

The object representing the set of elements of a given type can be computed using the general operation ElementsOfIncidenceStructure, of course assuming that a method is installed for the particular incidence structure.

4.2-3 ElementsOfIncidenceStructure
> ElementsOfIncidenceStructure( ig )( operation )
> ElementsOfIncidenceStructure( ig, j )( operation )
> ElementsOfIncidenceStructure( ig, str )( operation )

Returns: a list of elements

ig must be an incidence geometry. j must be a type of element of ig. This function returns a list of all elements of ig of type j, and an error is displayed if ig has no elements of type j. In an alternative form of this function str can be one of ``points", ``lines", ``planes" or ``solids" and the function returns the elements of type 1, 2, 3 or 4 respectively, of course if ig has elements of the deduced type.

gap> ps := ProjectiveSpace(3,3);
ProjectiveSpace(3, 3)
gap> l := ElementsOfIncidenceStructure(ps,2);
<lines of ProjectiveSpace(3, 3)>
gap> ps := EllipticQuadric(5,9);
Q-(5, 9)
gap> lines := ElementsOfIncidenceStructure(ps,2);
<lines of Q-(5, 9)>
gap> planes := ElementsOfIncidenceStructure(ps,3);
Error, <geo> has no elements of type <j> called from
<function>( <arguments> ) called from read-eval-loop
Entering break read-eval-print loop ...
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> quit;
gap> as := AffineSpace(3,9);
AG(3, 9)
gap> lines := ElementsOfIncidenceStructure(as,"lines");
<lines of AG(3, 9)>
 

4.2-4 Short names for ElementsOfIncidenceStructure
> Points( ps )( operation )
> Lines( ps )( operation )
> Planes( ps )( operation )

Returns: The elements of ps of respective type 1,2, and 3.

gap> Points(HermitianVariety(2,64));
<points of H(2, 8^2)>
gap> Lines(EllipticQuadric(5,2));
<lines of Q-(5, 2)>
gap> Planes(SymplecticSpace(7,3));
<planes of W(7, 3)>
 

4.2-5 Hyperplanes
> Hyperplanes( ps )( operation )

Returns: a list of hyerplanes

This function returns a list of all elements of ps of the maximum type. ps must be an incidence geometry, but only methods for projective and affine spaces are installed, since a ``hyperplane'' has either no, either a completely different meaning in other geometires than projective and affine spaces. This operation is perhaps more synonomous and better suited when using projective and affine spaces, however one can also use it for an arbitrary incidence geometry.

gap ps := ProjectiveSpace(5,5);
PG(5, 5)
gap> Hyperplanes(ps);
<proj. 4-subspaces of PG(5, 5)>
 

4.2-6 IsIncident
> IsIncident( u, v )( operation )

Returns: Boolean

u and v must be elements of an incidence structure. This function returns

gap> ps := ProjectiveSpace(4,7);
PG(4, 7)
gap> p := VectorSpaceToElement(ps,[1,0,1,0,1]*Z(7)^0);
<a point in PG(4, 7)>
gap> l := VectorSpaceToElement(ps,[[0,0,1,0,0],[1,0,0,0,1]]*Z(7)^0);
<a line in PG(4, 7)>
gap> pl := VectorSpaceToElement(ps,[[1,1,1,0,0],[0,1,0,0,0],
                                 [0,-1,0,0,1]]*Z(7)^0);
<a plane in PG(4, 7)>
gap> p in l;
true
gap> l in pl;
false
gap> p in pl;
true
gap> IsIncident(p,l);
true
gap> IsIncident(l,p);
true
gap> IsIncident(pl,p);
true
gap> pl in p;
true
 

4.2-7 Random
> Random( u, v )( operation )

Returns: Boolean

u and v must be elements of an incidence structure. This function returns

4.2-8 Size
> Size( u, v )( operation )

Returns: Boolean

u and v must be elements of an incidence structure. This function returns

4.3 Shadows of elements

4.3-1 ShadowOfElement
> ShadowOfElement( geom, v, j )( operation )

Returns: a collection of elements

geom is an incidence geometry. v must be an element of geom. This function returns a list of all elements of geom of type j which are incident with v. This operation may not be installed for all incidence geometries. In some case, such as when we are working with objects of projective or polar spaces, we can just type Points(v) for the set of points of the ambient geometry incident with v. We can perform a similar operation with Lines, Planes and Solids.

gap> ps := ProjectiveSpace(3,3);
PG(3, 3)
gap> pi := Random(Planes(ps));
<a plane in PG(3, 3)>
gap> lines := ShadowOfElement(ps,pi,2);
<shadow lines in PG(3, 3)>
gap> Size(lines);
13
 

4.3-2 ShadowOfFlag
> ShadowOfFlag( geom, v, j )( operation )

Returns: a collection of elements

geom must be aan incidence geometry. v must be a list of elements of geom. This function returns a list of all elements of geom of type j which are incident with every element of the list. The function assumes that the list v is a flag; that is, every element of v is incident with every other element of v. If v is not a flag then the return value is unspecified. This operation may not be installed for all incidence geometries.

gap> ps := ProjectiveSpace(3,3);
PG(3, 3)
gap> pi := Random(Planes(ps));
<a plane in PG(3, 3)>
gap> x := Random( ShadowOfElement(ps, pi, 1) );
<a point in PG(3, 3)>
gap> IsIncident(x,pi);
true
gap> lines := ShadowOfElement(ps,pi,2);
<shadow lines in PG(3, 3)>
gap> Size(lines);
13
 
 Top of Book   Previous Chapter   Next Chapter 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 Bib Ind

generated by GAPDoc2HTML