Over a long period time, there have been numerous people involved in developing a GAP package which deals primarily with objects in finite geometry. It all started when Max Neunhöffer visited Perth about seven years ago, and Maska Law, Sven Reichard, Michel Lavrauw and I were interested in systematically developing this package. Max is a GAP guru and taught us much about how to properly design code and he led the way on the group theoretic side of things. In fact, if it wasn’t for the GenSS and Orb packages, our package would not be as nice as it is now.
The team grew and includes contributions from Michael Pauley, Philippe Cara, Jan De Beule, Michel Lavrauw and Anton Betten.

I should also mention that there was a precursor to our package developed in Ghent (Jan was one of the authors) called PG, which mainly dealt with projective spaces, where the quadrics and Hermitian varieties were given essentially as algebraic varieties. Jan and I separated the underlying functionality of the polar spaces component of FinInG to build a separate package Forms which is a stand-alone GAP package dealing primarily with quadratic and sesquilinear forms on finite vector spaces. This allows a user to specify the form of their choice via a Gram matrix or polynomial, and there is also some code which returns a form preserved by a matrix group (up to similarity).
We are still working on FinInG, but it is more-or-less in good working order. Much of the basic functionality is quite robust now, and we are currently working on the finer points. The package can be downloaded from here and more recent versions will appear there periodically. Here is a sample of what can be done using this software; a construction of the Patterson ovoid. (In future posts, I’ll provide better and more illustrative examples of the use of FinInG).
gap> LoadPackage("FinInG");; gap> id := IdentityMat(7, GF(3));; gap> form := QuadraticFormByMatrix(id, GF(3)); < quadratic form > gap> ps := PolarSpace( form ); <polar space in ProjectiveSpace(6,GF(3)): x_1^2+x_2^2+x_3^2+x_4^2+x_5^2+x_6^2+x_7^2=0 > gap> psl32 := PSL(3,2); Group([ (4,6)(5,7), (1,2,4)(3,6,5) ]) gap> reps := [[1,1,1,0,0,0,0], [2,1,1,0,0,0,0], [1,2,1,0,0,0,0], [1,1,2,0,0,0,0]] * One(GF(3));; gap> ovoid := Union( List(reps, x -> Orbit(psl32, x, Permuted)) );; gap> ovoid := List(ovoid, x -> VectorSpaceToElement(ps, x));; gap> planes := Planes( ps ); <planes of Q(6, 3): x_1^2+x_2^2+x_3^2+x_4^2+x_5^2+x_6^2+x_7^2=0> gap> ForAll(planes, p -> Number(ovoid, x -> x * p) = 1); true gap> g := CollineationGroup( ps ); <projective semilinear group of size 9170703360 with 3 generators> gap> stabiliser := SetwiseStabilizer(g, OnProjSubspaces, ovoid)!.setstab; <projective semilinear group with 14 generators> gap> points := AsList( Points(ps) );; gap> OrbitLengths( stabiliser, points ); [336, 28] gap> DisplayCompositionSeries( stabiliser ); G (size 1451520) | B(3,2) = O(7,2) ~ C(3,2) = S(6,2) 1 (size 1)
Hi,
with a recent GAP installation I get the following when trying to use the package (I have
Homology and GGRAPE on my gaplocal directory, where I also unpacked fining). Do you have any suggestion to deal with this error?
Thanks in advance,
~$ gap -l "$GAP_DIR;/home/rafael/Dropbox/gaplocal"
┌───────┐ GAP, Version 4.5.6 of 16-Sep-2012 (free software, GPL)
│ GAP │ http://www.gap-system.org
└───────┘ Architecture: i686-pc-linux-gnu-gcc-default32
Libs used: gmp, readline
Loading the library and packages ...
#I Package `GRAPE': non-Unix architecture or binaries not compiled
#I Package `GRAPE': functions depending on nauty will not work
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: DESIGN 1.6, GAPDoc 1.5.1, GGRAPE 0.3.1, GRAPE 4.6.1,
Homology 1.4.5, IO 4.2
Try '?help' for help. See also '?copyright' and '?authors'
gap> LoadPackage("fining");
---------------------------------------------------------------------
Loading 'Forms' 1.2.2 (29/08/2011)
by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
Jan De Beule (http://cage.ugent.be/~jdebeule)
For help, type: ?Forms
---------------------------------------------------------------------
─────────────────────────────────────────────────────────────────────────────
Loading orb 4.5 (orb - Methods to enumerate orbits)
by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller),
Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/orb.html
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
Loading genss 1.5 (genss - generic Schreier-Sims)
by Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/genss.html
─────────────────────────────────────────────────────────────────────────────
Error, variable `IncidenceGraph' is not bound to an operation called from
( )
called from read-eval loop at line
159 of /home/rafael/Dropbox/gaplocal/pkg/fining/gap/diagram.gd
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk>
I’m not exactly sure what is going on, but it looks like you need to compile GRAPE. This should be easy since you are using Linux. Just run
~$ ./configure ../..
~$ make
Let me know if this doesn’t resolve the issue.
Thanks for your answer.
The message about GRAPE not being compiled is just a spurious note from one of the packages I load because it really is compiled. I have just commented out the code in gap.ini that loads packages and all of the contents on .gaprc, in order to start with a “clean” GAP, and now the error is different! See:
~$ gap -l "$GAP_DIR;/home/rafael/Dropbox/gaplocal"
┌───────┐ GAP, Version 4.5.6 of 16-Sep-2012 (free software, GPL)
│ GAP │ http://www.gap-system.org
└───────┘ Architecture: i686-pc-linux-gnu-gcc-default32
Libs used: gmp, readline
Loading the library and packages ...
Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5,
Browse 1.8.2, CRISP 1.3.5, Cryst 4.1.10, CrystCat 1.1.6,
CTblLib 1.2.1, FactInt 1.5.3, FGA 1.1.1, GAPDoc 1.5.1, IO 4.2,
IRREDSOL 1.2.1, LAGUNA 3.6.1, Polenta 1.3.1, Polycyclic 2.10.1,
RadiRoot 2.6, ResClasses 3.1.1, Sophus 1.23, TomLib 1.2.2
Try '?help' for help. See also '?copyright' and '?authors'
gap> LoadPackage("fining");
---------------------------------------------------------------------
Loading 'Forms' 1.2.2 (29/08/2011)
by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
Jan De Beule (http://cage.ugent.be/~jdebeule)
For help, type: ?Forms
---------------------------------------------------------------------
─────────────────────────────────────────────────────────────────────────────
Loading orb 4.5 (orb - Methods to enumerate orbits)
by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller),
Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/orb.html
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
Loading genss 1.5 (genss - generic Schreier-Sims)
by Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and
Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
Homepage: http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/genss.html
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups)
by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/).
Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/
─────────────────────────────────────────────────────────────────────────────
Syntax error: warning: unbound global variable in /home/rafael/Dropbox/gaploca\
l/pkg/fining/gap/group.gi line 1634
block := RESET( MutableCopyMat( gram{[1,2]}{[1,2]} ), 2, q);
^
Syntax error: warning: unbound global variable in /home/rafael/Dropbox/gaploca\
l/pkg/fining/gap/group.gi line 1636
mat := First( GL(2,f), t -> RESET(t * block^frob *TransposedMat(t), 2, q)\
= block);
^
#I method installed for MutableCopyMat matches more than one declaration
#I method installed for MutableCopyMat matches more than one declaration
---------------------------------------------------------------------
Loading FinInG 1.0(beta of 12/5/11) (Finite Incidence Geometry)
by John Bamberg (http://cage.ugent.be/~bamberg)
Anton Betten (http://www.math.colostate.edu/~betten)
Jan De Beule (http://cage.ugent.be/~jdebeule)
Philippe Cara (http://homepages.vub.ac.be/~pcara)
Michel Lavrauw (http://cage.ugent.be/~ml)
Maska Law (https://www.maths.uwa.edu.au/Members/maska)
Max Neunhoeffer (http://www.math.rwth-aachen.de/~Max.Neunhoeffer)
Michael Pauley (https://www.maths.uwa.edu.au/Members/pauley)
Sven Reichard (https://www.maths.uwa.edu.au/Members/reichard)
For help, type: ?FinInG
---------------------------------------------------------------------
true
I’m getting the same error message but fining seems to work fine regardless.