GAP (FinInG) - Chapter 1: Introduction

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax on]

1 Introduction
1.1 Philosophy
1.2 How to cite FinInG
1.3 Overview of this manual
1.4 Getting and installing FinInG
1.4-1 Installation procedure under UNIX like systems
1.4-2 Compiling packages
1.4-3 Updating FinInG
1.5 The Development Team

### 1 Introduction

#### 1.1 Philosophy

FinInG (pronunciation: [fɪnɪŋ]) is a package for computation in Finite Incidence Geometry. It provides users with the basic tools to work in various areas of finite geometry from the realms of projective spaces to the flat lands of generalised polygons. The algebraic power of GAP is employed, particularly in its facility with matrix and permutation groups.

A sample making FinInG's pronunciation crystal clear can be found here.

#### 1.2 How to cite FinInG

The development group of FinInG welcomes contact with users. In case you have obtained the package as a deposited package part of archive during the installation of GAP, we call on your beneficence to register at http://www.fining.org when you use FinInG or to tell us by sending a message to council@fining.org.

Please tell us about the use of FinInG in your research or teaching. We are very interested in results obtained using FinInG and we might refer to your work in the future. If your work is published, we ask you to cite FinInG like a journal article or book.

If you are using BibTeX, you can use the following BibTeX entry for the current FinInG version:

    @manual{fining,
            Author = {Bamberg, John and Betten, Anton and Cara, Philippe and
                De Beule, Jan and Lavrauw, Michel and Neunh\"offer, Max },
            Key = {fining},
            Title = {{FinInG -- Finite Incidence Geometry, Version 1.5.4}},
            Url = {\verb+(http://www.fining.org)+},
            Year = 2022}

Here is the bibliography entry produced by BibTeX (in bibliography style `alpha'), to be pasted directly inside the bibliography environment of your LaTeX document:

    \bibitem[FinInG]{fining}
    J.~Bamberg, A.~Betten, {Ph}. Cara, J.~De~Beule, M.~Lavrauw, and
      M.~Neunh\"offer.
    \newblock {\em Finite Incidence Geometry}.
    \newblock FInInG -- a {GAP} package, version 1.5.4, 2022.

When linking to FinInG from a web page you can use the link

    <a href="http://www.fining.org">FinInG</a>.

#### 1.3 Overview of this manual

This chapter (section 1.4) describes the installation of the package. Chapter 2 contains some extended examples to introduce the user to the basic functionality and philosophy to get started. Chapter 3 contains a rigorous description of the basic structures. This chapter can be omitted at first reading, since the set of consequent chapters is also self contained. Chapters 4, 5 and 6 deal with projective spaces, projective semilinear groups and polarities of projective spaces, respectively. In Chapter 7 the functionality for classical polar spaces is treated and in Chapter 9 affine spaces and their groups are considered. Geometry morphisms between various geometries that are available in the package, are introduced and discussed in Chapter 10. The final three chapters, 11, 12, and 13 explain the basic functionality which is provided for algebraic varieties (in projective or affine spaces), generalised polygons, of which several models can be constructed, and finally coset geometries and diagrams.

#### 1.4 Getting and installing FinInG

Since version 4.7.8, the official GAP distribution includes the FinInG package. The FinInG package requires the GAP packages GAPDoc, version 1.6 or higher, Forms, version 1.2.3 or higher, Orb, version 4.7.6 or higher, GenSS, version 1.6.4 or higher, and GRAPE, version 4.7 or higher, and cvec, version 2.5.7 or higher. These required packages are all part of the standard GAP distribution. However, the packages cvec, GRAPE, IO, and Orb may require additional compilation (cfr. infra for detailed instructions). Note that the IO is a package required by cvec and Orb, and is also part of the standard GAP distribution. Shortly summarized, to get FinInG working, download and install GAP as explained in its installation instructions, and, under UNIX like systems (including MacOS), make sure that the compilation of the packages cvec, GRAPE, IO, and Orb is done. Note that the windows distribution of GAP contains precompiled binaries of these packages, so under Windows, no further steps are required after installing GAP according to its installation instructions. In the next section we summarize the installation procedure under UNIX like systems.

##### 1.4-1 Installation procedure under UNIX like systems

The installation of GAP itself is generic for each UNIX like system, including the different flavours of Mac OS. You only need a terminal application, and you need access to the standard unix tools gunzip and tar, and the make tools. Detailed information on how to install GAP, can be found in the documentation of GAP. The installation procedure for FinInG, a standard GAP package, does not require compilation, however the packages cvec, GRAPE, IO, and Orb do. First install GAP according to the installation instructions. If you start GAP the output might look like in the example below. Note that IO is not listed as loaded package (see line starting with 'Packages' in the example output). This means that IO has not been compiled. Trying to load the IO will result in an error message.

    jdebeule ~  $ gap4r8
     +-------+   GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
     |  GAP  |   https://www.gap-system.org
     +-------+   Architecture: x86_64-apple-darwin16.7.0-gcc-default64
     Libs used:  gmp
     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.1, AutPGrp 1.8,
                 CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
                 FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IRREDSOL 1.4, LAGUNA 3.7.0,
                 Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7, ResClasses 4.6.0,
                 Sophus 1.23, SpinSym 1.5, TomLib 1.2.6, Utils 0.46
     Try '??help' for help. See also '?copyright', '?cite' and '?authors'
    gap> LoadPackage("io");
    #I  IO package is not available. To see further details, enter
    #I  SetInfoLevel(InfoPackageLoading,4); and try to load the package again.
    fail

##### 1.4-2 Compiling packages

In this subsection it is explained how to compile the necessary packages in case this is not yet done for your GAP installation. We assume that you have write access to the GAP installation on your computer. If this is not the case, you should ask your system administrator to do this for you. Locate your GAP installation. The examples below are generated using a GAP4.8.8 installation residing in "/opt/gap4r8". Clearly, subsequent versions of gap will reside in a differently named directory, e.g. "/opt/gap4r9". Another commonly used directory under UNIX like systems to install software is "/usr/local", so gap might reside in "/usr/local/gap4r8" too. In all examples in this section, we assume your GAP installation resides in "/opt/gap4r8". Therefore, replace any occurrence of "/opt/gap4r8" with the actual directory of your GAP installation when executing the installation steps. Three steps will be necessary to compile the IO package: go into the correct directory, and issue the 'configure' command and then issue the 'make' command. Note that the directory name of the package is dependent on its version number. The correct name can be found as follows:

    jdebeule ~  $ ls /opt/gap4r8/pkg/ |grep io-
    io-4.4.6

From this output, it can be determined that the IO resides in "/opt/gap4r8/pkg/io-4.4.6/". The three steps to be taken to compile io are demonstrated in the example below.

    root ~  $ cd /opt/gap4r8/pkg/io-4.4.6/
    root /opt/gap4r8/pkg/io-4.4.6  $ ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... cnf/install-sh -c -d
    ...
    ...lots of output
    ...
    config.status: creating Makefile
    config.status: creating src/pkgconfig.h
    config.status: src/pkgconfig.h is unchanged
    config.status: executing depfiles commands
    config.status: executing libtool commands
    root /opt/gap4r8/pkg/io-4.4.6  $ make
      CC       src/io_la-io.lo
      CCLD     io.la
    cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64
    cp .libs/io.so bin/x86_64-apple-darwin16.7.0-gcc-default64/io.so

Now starting GAP should produce the following output, notice the presence of "IO 4.4.6" as one of the loaded packages.

    jdebeule ~  $ gap4r8
     +-------+   GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
     |  GAP  |   https://www.gap-system.org
     +-------+   Architecture: x86_64-apple-darwin16.7.0-gcc-default64
     Libs used:  gmp
     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.1, AutPGrp 1.8,
                 CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
                 FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4,
                 LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7,
                 ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6,
                 Utils 0.46
     Try '??help' for help. See also '?copyright', '?cite' and '?authors'
    gap>

Similar steps are now necessary to compile the package cvec, Orb, and grape: go into the correct directory, and issue the 'configure' and 'make' command. In the example below, we include the determination of the correct directory names. Note that the directory name of the grape package is not dependent on its version number, so it resides in "/opt/gap4r8/pkg/grape".

    root /opt/gap4r8/pkg/cvec-2.5.7  $ cd
    root ~  $ ls /opt/gap4r8/pkg/ |grep cvec-
    cvec-2.5.7
    root ~  $ cd /opt/gap4r8/pkg/cvec-2.5.7/
    root /opt/gap4r8/pkg/cvec-2.5.7  $ ./configure
    ...
    ...lots of output
    ...
    config.status: executing libtool commands
    root /opt/gap4r8/pkg/cvec-2.5.7  $ make
      CC       src/cvec_la-cvec.lo
      CCLD     cvec.la
    cnf/install-sh -c -d ./bin/x86_64-apple-darwin16.7.0-gcc-default64
    cp .libs/cvec.so bin/x86_64-apple-darwin16.7.0-gcc-default64/cvec.so
    root ~  $ ls /opt/gap4r8/pkg/ |grep orb-
    orb-4.7.6
    root ~  $ cd /opt/gap4r8/pkg/orb-4.7.6/
    root /opt/gap4r8/pkg/orb-4.7.6  $ ./configure
    ...
    ...lots of output
    ...
    config.status: executing libtool commands
    root /opt/gap4r8/pkg/orb-4.7.6  $ make
    ...some output
    cp .libs/orb.so bin/x86_64-apple-darwin16.7.0-gcc-default64/orb.so
    root ~  $ cd /opt/gap4r8/pkg/grape
    root /opt/gap4r8/pkg/grape  $ ./configure
    root /opt/gap4r8/pkg/grape  $ make
    ...lots of output
    root /opt/gap4r8/pkg/grape  $

Note that warnings may occur during the compilation process, which can all be ignored. If compilation of these packages has been successful, restart GAP and load FinInG using "LoadPackage("fining")". The output should look as follows.

    jdebeule ~  $ gap4r8
     +-------+   GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
     |  GAP  |   https://www.gap-system.org
     +-------+   Architecture: x86_64-apple-darwin16.7.0-gcc-default64
     Libs used:  gmp
     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.1, AutPGrp 1.8,
                 CRISP 1.4.4, Cryst 4.1.12, CrystCat 1.1.6, CTblLib 1.2.2,
                 FactInt 1.5.4, FGA 1.3.1, GAPDoc 1.6, IO 4.4.6, IRREDSOL 1.4,
                 LAGUNA 3.7.0, Polenta 1.3.7, Polycyclic 2.11, RadiRoot 2.7,
                 ResClasses 4.6.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.6,
                 Utils 0.46
     Try '??help' for help. See also '?copyright', '?cite' and '?authors'

    gap> LoadPackage("fining");
    ---------------------------------------------------------------------
    Loading 'Forms' 1.2.5 (21/09/2017)
    by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
       Jan De Beule (http://www.debeule.eu)
    For help, type: ?Forms
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  orb 4.7.6 (Methods to enumerate orbits)
    by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller),
       Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and
       Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
    Homepage: https://gap-packages.github.io/orb
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  cvec 2.5.7 (Compact vectors over finite fields)
    by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef).
    Homepage: https://gap-packages.github.io/cvec
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  genss 1.6.4 (Generic Schreier-Sims)
    by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and
       Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
    Homepage: https://gap-packages.github.io/genss
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  GRAPE 4.7 (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/
    ---------------------------------------------------------------------
    -------------------------------------------------------------------------------
             ______________       ________      _________   __________ __
             ___  ____/__(_)__________  _/________  ____/   __<  /_  // /
             __  /_   __  /__  __ __  / __  __   / __     __  /_  // /_
             _  __/   _  / _  / / /_/ /  _  / / / /_/ /     _  /_/__  __/
             /_/      /_/  /_/ /_//___/  /_/ /_/____/      /_/_(_)/_/
    -------------------------------------------------------------------------------
    Loading  FinInG 1.4.1 (Finite Incidence Geometry)
    by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
       Anton Betten (http://www.math.colostate.edu/~betten)
       Jan De Beule (http://www.debeule.eu)
       Philippe Cara (http://homepages.vub.ac.be/~pcara)
       Michel Lavrauw (http://people.sabanciuniv.edu/~mlavrauw/)
       Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef/)
    For help, type: ?FinInG
    ---------------------------------------------------------------------
    true
    gap>

##### 1.4-3 Updating FinInG

New releases of FinInG will be distributed automatically with new releases of GAP. However, it is possible easily to update FinInG in an existing installation of GAP, provided the new version of FinInG does not require newer versions of existing packages in the installation. It is also possible to have different versions of FinInG installed on one system. To update FinInG it is sufficient to download and unpack the archive containing the new release. First find the location of your existing GAP installation. We assume in the example below that it is

    /opt/gap4r8/

Make sure you have write permission on this location. If this is not the case, you must ask your system administrator to do this. Download the FinInG archive "fining-....tgz" to this location, and unpack the archive. This can be done by issuing

    gunzip fining-....tgz

which yields a file "fining-....tar", in the pkg directory, after which issuing the command

    tar -xf fining-....tar

Unpack the archive in a subdirectory fining. Starting GAP and loading FinInG the usual way should give you the newly installed version. Please notice that you can unpack your archive in your favorite local "./pkg" directory, e.g. "/home/yourself/pkg/", in case you are using GAP on a server on which you have only a restricted access. In this case, i.e. if you installed FinInG in your local pkg directory, e.g. "/home/yourself/pkg/", then move to "/home/yourself", and issue the command

    gap -l "/opt/gap4r8;./"

This will cause gap to startup and use as pkg directory both its own central pkg directory, i.e. "/opt/gap4r8/pkg/", as well as your local pkg directory, i.e. "/home/yourself/pkg/". You should see something like the following output.

     +-------+   GAP 4.8.8, 20-Aug-2017, build of 2017-09-04 15:17:33 (CEST)
     |  GAP  |   https://www.gap-system.org
     +-------+   Architecture: x86_64-apple-darwin16.7.0-gcc-default64
    Libs used:  gmp
    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.6,
                Browse 1.8.6, CRISP 1.3.8, Cryst 4.1.12, CrystCat 1.1.6,
                CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.4.4,
                IRREDSOL 1.2.4, LAGUNA 3.7.0, Polenta 1.3.2, Polycyclic 2.11,
                RadiRoot 2.7, ResClasses 3.4.0, Sophus 1.23, SpinSym 1.5,
                TomLib 1.2.5
    Try '?help' for help. See also  '?copyright' and  '?authors'
    gap> LoadPackage("fining");
    ---------------------------------------------------------------------
    Loading 'Forms' 1.2.5 (21/09/2017)
    by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
       Jan De Beule (http://www.debeule.eu)
    For help, type: ?Forms
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  orb 4.7.6 (Methods to enumerate orbits)
    by Juergen Mueller (http://www.math.rwth-aachen.de/~Juergen.Mueller),
       Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef), and
       Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
    Homepage: https://gap-packages.github.io/orb
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  cvec 2.5.7 (Compact vectors over finite fields)
    by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef).
    Homepage: https://gap-packages.github.io/cvec
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  genss 1.6.4 (Generic Schreier-Sims)
    by Max Neunhöffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef) and
       Felix Noeske (http://www.math.rwth-aachen.de/~Felix.Noeske).
    Homepage: https://gap-packages.github.io/genss
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    Loading  GRAPE 4.7 (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/
    ---------------------------------------------------------------------
    -------------------------------------------------------------------------------
             ______________       ________      _________   __________ __
             ___  ____/__(_)__________  _/________  ____/   __<  /_  // /
             __  /_   __  /__  __ __  / __  __   / __     __  /_  // /_
             _  __/   _  / _  / / /_/ /  _  / / / /_/ /     _  /_/__  __/
             /_/      /_/  /_/ /_//___/  /_/ /_/____/      /_/_(_)/_/
    -------------------------------------------------------------------------------
    Loading  FinInG 1.4.1 (Finite Incidence Geometry)
    by John Bamberg (http://school.maths.uwa.edu.au/~bamberg/)
       Anton Betten (http://www.math.colostate.edu/~betten)
       Jan De Beule (http://www.debeule.eu)
       Philippe Cara (http://homepages.vub.ac.be/~pcara)
       Michel Lavrauw (http://people.sabanciuniv.edu/~mlavrauw/)
       Max Neunhoeffer (http://www-groups.mcs.st-and.ac.uk/~neunhoef/)
    For help, type: ?FinInG
    ---------------------------------------------------------------------
    true

#### 1.5 The Development Team

This is the development team (without Anton), meeting in St. Andrews in September 2008, from left to right: Philippe Cara, Michel Lavrauw, Max Neunhöffer, Jan De Beule and John Bamberg.

The development team meeting again (without Anton and Max), now in Vicenza in april 2011. from left to right: Michel Lavrauw, John Bamberg, Philippe Cara, Jan De Beule.

Survivors of the first version of FinInG, enjoying a trip to Chioggia, december 2011.

The same survivors, staring at the destiny.

Anton Betten, during a milestone meeting at the finite geometries conference in Irsee, september 2014.

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind

generated by GAPDoc2HTML