FinInG -- a finite geometry package for GAP
FinInG is a package for the computer algebra package GAP, which had its genesis in PG, begun by Jan De Beule, Patrick Govaerts, and Leo Storme. However, a new refreshed approach to designing a finite geometry began with the visit of Max Neunhoeffer (now in St Andrews) to The University of Western Australia, and thereafter the FinInG team of John Bamberg, Anton Betten, Jan De Beule, Philippe Cara, Michel Lavrauw, Maska Law, Max Neunhoeffer, Michael Pauley, and Sven Reichard have combined their efforts and ideas to put together a finite geometry package for GAP. FinInG hopes to accommodate geometers from a diverse range of fields, from those working on configurations in finite projective spaces, to those working in diagram geometry.The philosophy of FinInG
The basic principle behind the design of FinInG is that it should be flexible, versatile, and readily extendable. We also believe that it should use the algebraic power of GAP; and especially the group theoretic power of GAP. Some of our primary aims include having efficient and easy to use operations in FinInG and to have a wide variety of geometric functions to cater for a wide variety of different geometers.What can it do?
So far, we have incoorporated the following functionality into FinInG: 1. Projective spaces: the construction of projective spaces and their varieties, collineation groups, correlations, basic operations (such as intersection, span, etc), dualities, polarities, shadows of flags. 2. Polar spaces: the construction of polar spaces and their varieties, collineation groups (including a distinction between similarities, isometries, etc), specification of the defining form, operations for changing the form, natural embeddings. 3. Generalised polygons: constructions of certain types of generalised polygons (EGQ's, Split Cayley hexagon, twisted-triality hexagon), operations on generalised polygons. 4. Diagram geometry: coset geometries, diagrams of incidence geometries, basic operations and tests (for flag-transitivity, firmness, etc). 5. Projective varieties: Grassmanians, Segre varieties, Veroneseans, schemes in general. 6. Affine spaces: similar functionality to projective spaces.
An example
gap> LoadPackage("fining");true
gap> quadric := HyperbolicQuadric(5, 3);
Q+(5, 3)
gap> g := IsometryGroup( quadric );
PO+(5,3)
gap> planes := Planes( quadric );
< planes of Q+(5, 3)>
gap> d := DerivedSubgroup(g);
< projective group with Frobenius>
gap> orbs := Orbits(d, planes, OnProjSubspaces);;
gap> List(orbs, Size);
[ 40, 40 ]
gap> p1 := Representative( orbs[1] );
< a plane in Q+(5, 3)>
gap> p2 := Representative( orbs[2] );
< a plane in Q+(5, 3)>
gap> Meet(p1, p2);
< a line in Q+(5, 3)>
Download and Installation of the beta version
A beta version of FinInG is available. FinInG depends also on the following GAP packages: forms 1.1, GAPDoc 1.2, orb 2.0, GRAPE 4.3, IO, GenSS 0.95 and in the future also cvec Please read carefully the included INSTALL file.Download the current version 1.0 (beta): [fining-1.0beta.tgz] [fining-1.0beta.zip]
Documentation
Read the documentation online: [html], [pdf]More Examples
a hyperoval in PG(2,4)
intersection numbers of a Hermitian curve in PG(2,q2)
embedding of W(3,3) in W(5,3)
spreads of W(5,3)
an ovoid of Q(6,3)