|
|
|
|
SSL chap5.html
Interaktion und PortierbarkeitHTML
|
|
| products/sources/formale Sprachen/GAP/pkg/fining/doc/chap5.html |
 |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (FinInG) - Chapter 5: Projective Groups</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap5" onload="jscontent()">
<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chapA.html">A</a> <a href="chapB.html">B</a> <a href="chapC.html">C</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap4.html">[Previous Chapter]</a> <a href="chap6.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap5_mj.html">[MathJax on]</a></p>
<p><a id="X816FCFB683915E8A" name="X816FCFB683915E8A"></a></p>
<div class="ChapSects"><a href="chap5.html#X816FCFB683915E8A">5 <span class="Heading">Projective Groups</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X7A9762F8861B0772">5.1 <span class="Heading"> Projectivities, collineations and correlations of projective spaces.</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X851186297A91C1C6">5.1-1 <span class="Heading">Categories for group elements</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7BBF688083857760">5.1-2 <span class="Heading">Representations for group elements</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X8160615081358132">5.1-3 <span class="Heading">Projectivities</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E881C237D117C6C">5.1-4 <span class="Heading">Collineations of projective spaces</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B89B51F86AE2BCC">5.1-5 <span class="Heading">Projective strictly semilinear maps</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X815B68277D0500C3">5.1-6 <span class="Heading">Correlations and collineations</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X78EDF0357B58FC0E">5.2 <span class="Heading">Construction of projectivities, collineations and correlations.</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X877DA4E185A1D9C7">5.2-1 Projectivity</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7AB452B2781EF128">5.2-2 CollineationOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X81ED446485A71588">5.2-3 ProjectiveSemilinearMap</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X80649C427E3BCBFF">5.2-4 IdentityMappingOfElementsOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X841607A77B841CC9">5.2-5 StandardDualityOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X78BBC4E27B2E06D6">5.2-6 CorrelationOfProjectiveSpace</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X83A5F86F82598AA6">5.3 <span class="Heading">Basic operations for projectivities, collineations and correlations of
projective spaces</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X865507568182424E">5.3-1 Representative</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7CA72CB07E3122F1">5.3-2 MatrixOfCollineation</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E8B65547970F689">5.3-3 MatrixOfCorrelation</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7BCBA564829D9E89">5.3-4 BaseField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B60C4257C46ED4B">5.3-5 FieldAutomorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7FE527AB81C2B675">5.3-6 ProjectiveSpaceIsomorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X84F59A2687C62763">5.3-7 Order</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X78E99D9086D64FD9">5.4 <span class="Heading">The groups PΓL, PGL, and PSL in <strong class="pkg">FinInG</strong>
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X850A954887CA9A55">5.4-1 ProjectivityGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X83FF6FA0790D5747">5.4-2 CollineationGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7BE9CE127ACFA6C2">5.4-3 SpecialProjectivityGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7DEA3BDA82C7B855">5.4-4 IsProjectivityGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B1FC1327FD85D18">5.4-5 IsCollineationGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X81444EF57E228232">5.4-6 CorrelationCollineationGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X7C4C7ADE8746C1B1">5.5 <span class="Heading">Basic operations for projective groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7BCBA564829D9E89">5.5-1 BaseField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E6926C6850E7C4E">5.5-2 Dimension</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X87327CBC857D6801">5.6 <span class="Heading">Natural embedding of a collineation group in a correlation/collineation group</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X86452F8587CBAEA0">5.6-1 Embedding</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X7AAD7DDD7E19595E">5.7 <span class="Heading">Basic action of projective group elements</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7D21FB1A7D21FB1A"><code>5.7-1 \^</code></a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X7EBA895D7A501CE0">5.8 <span class="Heading">Projective group actions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X84A3D5357872EC3B">5.8-1 OnProjSubspaces</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X798053D47D8187EC">5.8-2 ActionOnAllProjPoints</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X86B4C03E85ADD0C2">5.8-3 OnProjSubspacesExtended</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X809F0F2B857FA178">5.9 <span class="Heading">Special subgroups of the projectivity group</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X86FF1DDE8356E966">5.9-1 ElationOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7E5660A17A4B1349">5.9-2 ProjectiveElationGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X86319DCD7AF98E28">5.9-3 HomologyOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X82FBABF384960A3D">5.9-4 ProjectiveHomologyGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X7FFD731684606BC6">5.10 <span class="Heading">Nice Monomorphisms</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7965086E82ABCF41">5.10-1 NiceMonomorphism</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B47BE0983E93A83">5.10-2 NiceObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7CE11961817B311C">5.10-3 FINING</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7B102DAE7E0CCF47">5.10-4 CanComputeActionOnPoints</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7D8C4B657FD6F7BA">5.10-5 NiceMonomorphismByDomain</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5.html#X7BCBD96786901FF9">5.10-6 NiceMonomorphismByOrbit</a></span>
</div></div>
</div>
<h3>5 <span class="Heading">Projective Groups</span></h3>
<p>A <em>collineation</em> of a projective space is a type preserving bijection of the elements of the projective space, that preserves incidence. The Fundamental Theorem of Projective Geometry states that every collineation of a Desarguesian projective space of dimension at least two is induced by a semilinear map of the underlying vector space. The group of all linear maps of a given <span class="SimpleMath">n+1</span>-dimensional vector space over a given field GF(q) is denoted by GL(n+1,q). This is a matrix group consisting of all non-singular square <span class="SimpleMath">n+1</span>-dimensional matrices over GF(q). The group of all semilinear maps of the vector space <span class="SimpleMath">V(n+1,q)</span> is obtained as the semidirect product of GL(n+1,q) and Aut(GF(q)), and is denoted by ΓL(n+1,q). Each semilinear map induces a collineation of PG(n,q). The Fundamental theorem of Projective Geometry also guarantees that the converse holds. Note also that ΓL(n+1,q) does not act faithfully on the projective points, and the kernel of its action is the group of scalar matrices, Sc(n+1,q). So the group PΓL(n+1,q) is defined as the group ΓL(n+1,q)/Sc(n+1,q), and the group PGL(n+1,q) as GL(n+1,q)/Sc(n+1,q). An element of the group PGL(n+1,q) is also called a <em>projectivity</em> or <em>homography</em> of PG(n,q), and the group PGL(n+1,q) is called the <em>projectivity group</em> or <em>homography group</em> of PG(n,q). An element of PΓL(n+1,q) is called a <em>collineation</em> of PG(n,q) and the group PΓL(n+1,q) is the <em>collineation group</em> of PG(n,q).</p>
<p>As usual, we also consider the special linear group SL(n+1,q), which is the subgroup of GL(n+1,q) of all matrices having determinant one. Its projective variant, i.e. PSL(n+1,q) is defined as SL(n+1,q)/(SL(n+1,q) ∩ Sc(n+1,q)) and is called the <em>special homography group</em> or <em>special projectivity group</em> of PG(n,q).</p>
<p>Consider the projective space PG(n,q). As described in Chapter <a href="chap4.html#X83BBAA668672A76D"><span class="RefLink">4</span></a>, a point of PG(n,q) is represented by a row vector. A <span class="SimpleMath">k</span>-dimensional subspace of PG(n,q) is represented by a generating set of <span class="SimpleMath">k+1</span> points, and as such, by a (k+1) x (n+1) matrix. The convention in <strong class="pkg">FinInG</strong> is that a collineation <span class="SimpleMath">ϕ</span> with underlying matrix <span class="SimpleMath">A</span> and field automorphism <span class="SimpleMath">θ</span> maps the projective point represented by row vector (x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>) to the projective point represented by row vector (y<sub>0</sub>,y<sub>1</sub>,...,y<sub>n</sub>) = ((x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>)A)<sup>θ</sup> . This convention determines completely the action of collineations on all elements of a projective space, and it follows that the product of two collineations φ<sub>1</sub>,φ<sub>2</sub> with respective underlying matrices A<sub>1</sub>,A<sub>2</sub> and respective underlying field automorphisms θ<sub>1</sub>,θ<sub>2</sub> is the collineation with underlying matrix A<sub>1</sub>A<sub>2</sub><sup>θ<sub>1</sub><sup>-1</sup></sup> and underlying field automorphism θ<sub>1</sub>θ<sub>2</sub>.</p>
<p>A <em>correlation</em> of the projective space PG(n,q) is a collineation from PG(n,q) to its dual. A projectivity from PG(n,q) to its dual is sometimes called a <em>reciprocity</em>. The <em>standard duality</em> of the projective space PG(n,q) maps any point <span class="SimpleMath">v</span> with coordinates (x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>) on the hyperplane with equation x<sub>0</sub>X<sub>0</sub> + x<sub>1</sub>X<sub>1</sub> + ... x<sub>n</sub>X<sub>n</sub> = 0. The standard duality acts as an automorphism on PΓL(n+1,q) by mapping the underlying matrix of a collineation to its inverse transpose matrix. (Recall that the frobenius automorphism and the standard duality commute.) The convention in <strong class="pkg">FinInG</strong> is that a correlation <span class="SimpleMath">ϕ</span> with underlying matrix <span class="SimpleMath">A</span> and field automorphism <span class="SimpleMath">θ</span> maps that projective point represented by row vector (x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>) to the projective hyperplane represented by row vector (y<sub>0</sub>,y<sub>1</sub>,...,y<sub>n</sub>) = ((x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>)A)<sup>θ</sup>. , i.e. (y<sub>0</sub>,y<sub>1</sub>,...,y<sub>n</sub>) = ((x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>)A)<sup>θ</sup> are the dual coordinates of the hyperplane.</p>
<p>The product of two correlations of PG(n,q) is a collineation, and the product of a collineation and a correlation is a correlation. So the set of all collineations and correlations of PG(n,q) forms a group, called the <em>correlation-collineation group</em> of PG(n,q). The correlation-collineation group of PG(n,q) is isomorphic to the semidirect product of PΓL(n+1,q) with the cyclic group of order 2 generated by the <em>standard duality</em> of the projective space PG(n,q). The convention determines completely the action of correlations and collineations on all elements of a projective space, and it follows that the product of two elements of the correlation-collineation group φ<sub>1</sub>,φ<sub>2</sub> with respective underlying matrices A<sub>1</sub>,A<sub>2</sub>, respective underlying field automorphisms θ<sub>1</sub>,θ<sub>2</sub>, and respective underlying projective space isomorphisms (standard duality or identity map) δ<sub>1</sub>,δ<sub>2</sub>, is the element of the correlation-collineation group with underlying matrix A<sub>1</sub>(A<sub>2</sub><sup>θ<sub>1</sub><sup>-1</sup></sup>) <sup>δ<sub>1</sub></sup>, underlying field automorphism θ<sub>1</sub>θ<sub>2</sub>, and underlying projective space automorphism δ<sub>1</sub>δ<sub>2</sub> , where the action of δ<sub>1</sub> on a matrix is defined as taking the transpose inverse if δ<sub>1</sub> is the standard duality, and as the identity map if δ<sub>1</sub> is the identity.</p>
<p>Action functions for collineations and correlations on the subspaces of a projective space are described in detail in Section <a href="chap5.html#X7EBA895D7A501CE0"><span class="RefLink">5.8</span></a></p>
<p>We mention that the commands <code class="file">PGL</code> (and <code class="file">ProjectiveGeneralLinearGroup</code>) and <code class="file">PSL</code> (and <code class="file">ProjectiveSpecialLinearGroup</code>) are available in GAP and return a (permutation) group isomorphic to the required group. Therefore we do not provide new methods for these commands, but assume that the user will obtain these groups as homography or special homography group of the appropriate projective space. We will follow this philosophy for the other classical groups. The terminology <em>projective semilinear group</em> will be used for a group generated by collineations of a projective space.</p>
<p><a id="X7A9762F8861B0772" name="X7A9762F8861B0772"></a></p>
<h4>5.1 <span class="Heading"> Projectivities, collineations and correlations of projective spaces.</span></h4>
<p>These are the different type of actions on projective spaces in <strong class="pkg">FinInG</strong>, and they naturally give rise to the following distinct categories and representations. Note that these categories and representations are to be considered on a non-user level. Below we describe all user construction methods that hide nicely these technical details.</p>
<p><a id="X851186297A91C1C6" name="X851186297A91C1C6"></a></p>
<h5>5.1-1 <span class="Heading">Categories for group elements</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpEl</code></td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElWithFrob</code></td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElWithFrobWithPSIsom</code></td><td class="tdright">( category )</td></tr></table></div>
<p><code class="code">IsProjGrpEl</code>, <code class="code">IsProjGrpElWithFrob</code>, and <code class="code">IsProjGrpElWithFrobWithPSIsom</code> are the categories naturally induced by the notions of projectivities, collineations, and correlations of a projective space.</p>
<p><a id="X7BBF688083857760" name="X7BBF688083857760"></a></p>
<h5>5.1-2 <span class="Heading">Representations for group elements</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElRep</code></td><td class="tdright">( representation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElWithFrobRep</code></td><td class="tdright">( representation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElWithFrobWithPSIsomRep</code></td><td class="tdright">( representation )</td></tr></table></div>
<p><code class="code">IsProjGrpElRep</code> is the representation naturally induced by a projectivity; <code class="code">IsProjGrpElWithFrobRep</code> is the representation naturally induced by the notion of a collineation of projective space; and <code class="code">IsProjGrpElWithFrobWithPSIsomRep</code> is the representation naturally induced by a correlation of a projective space. This means that an object in the representation <code class="code">IsProjGrpElRep</code> has as underlying object a matrix; an object in the category <code class="code">IsProjGrpElWithFrobRep</code> has as underlying object a pair consisting of a matrix and a field automorphism; and <code class="code">IsProjGrpElWithFrobWithPSIsomRep</code> has as underlying object a triple consisting of a matrix, a field automorphism and an isomorphism from the projective space to its dual space. Also the base field is stored as a component in the representation.</p>
<p>The above mentioned categories allow us to make a distinction between projectivities, collineations and correlations apart from their representation. However, in <strong class="pkg">FinInG</strong>, a group element constructed in the categories <code class="code">IsProjGrpElMore</code> is always constructed in the representation <code class="code">IsProjGrpElMoreRep</code>. Furthermore, projectivities of projective spaces (and also collineations of projective spaces) will by default be constructed in the category <code class="code">IsProjGrpElWithFrobRep</code>. This technical choice was made by the developers to have the projectivity groups naturally embedded in the collineation groups. Correlations of projective spaces will be constructed in the category <code class="code">IsProjGrpElWithFrobWithPSIsom</code>.</p>
<p><a id="X8160615081358132" name="X8160615081358132"></a></p>
<h5>5.1-3 <span class="Heading">Projectivities</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjectivity</code></td><td class="tdright">( property )</td></tr></table></div>
<p><code class="code">IsProjectivity</code> is a property. Projectivities are the elements of PGL(n+1,q). Every element belonging to <code class="code">IsProjGrpEl</code> is by construction a projectivity. If <code class="code">IsProjectivity</code> is applied to a an element belonging to <code class="code">IsProjGrpElWithFrob</code>, then it verifies whether the underlying field automorphism is the identity. If <code class="code">IsProjectivity</code> is applied to a an element belonging to <code class="code">IsProjGrpElWithFrobWithPSIsom</code>, then it verifies whether the underlying field automorphism is the identity, and whether the projective space isomorphism is the identity. This operation provides a user-friendly method to distinguish the projectivities from the projective strictly semilinear maps, and the correlations of a projective space.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(HomographyGroup(PG(3,4)));</span>
< a collineation: <cmat 4x4 over GF(2,2)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsProjectivity(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CollineationGroup(PG(3,4)));</span>
< a collineation: <cmat 4x4 over GF(2,2)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsProjectivity(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CorrelationCollineationGroup(PG(3,4)));</span>
<projective element with Frobenius with projectivespace isomorphism: <immutabl
e cmat 4x4 over GF(2,2)>, F^
2, StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(
3,GF(2^2)) ) ) >
<span class="GAPprompt">gap></span> <span class="GAPinput">IsProjectivity(g);</span>
false
</pre></div>
<p><a id="X7E881C237D117C6C" name="X7E881C237D117C6C"></a></p>
<h5>5.1-4 <span class="Heading">Collineations of projective spaces</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCollineation</code></td><td class="tdright">( property )</td></tr></table></div>
<p><code class="code">IsCollineation</code> is property. All elements of PΓL(n+1,q) are collineations, and therefore all elements belonging to <code class="code">IsProjGrpElWithFrob</code> are collineations. But also a projectivity is a collineation, as well as an element belonging to <code class="code">IsProjGrpElWithFrobWithPSIsom</code> with projective space isomorphism equal to the identity, is a collineation.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(HomographyGroup(PG(2,27)));</span>
< a collineation: <cmat 3x3 over GF(3,3)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCollineation(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CollineationGroup(PG(2,27)));</span>
< a collineation: <cmat 3x3 over GF(3,3)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCollineation(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CorrelationCollineationGroup(PG(2,27)));</span>
<projective element with Frobenius with projectivespace isomorphism: <cmat 3x
3 over GF(3,3)>, F^0, IdentityMapping( <All elements of ProjectiveSpace(2,
27)> ) >
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCollineation(g);</span>
true
</pre></div>
<p><a id="X7B89B51F86AE2BCC" name="X7B89B51F86AE2BCC"></a></p>
<h5>5.1-5 <span class="Heading">Projective strictly semilinear maps</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsStrictlySemilinear</code></td><td class="tdright">( property )</td></tr></table></div>
<p><code class="code">IsStrictlySemilinear</code> is a property that checks whether a given collineation has a nontrivial underlying field automorphisms, i.e. whether the element belongs to PΓL(n+1,q), but not to PGL(n+1,q). If <code class="code">IsStrictlySemilinear</code> is applied to a an element belonging to <code class="code">IsProjGrpElWithFrobWithPSIsom</code>, then it verifies whether the underlying field automorphism is different from the identity, and whether the projective space isomorphism equals the identity. This operation provides a user-friendly method to distinguish the projective strictly semilinear maps from projectivities inside the category of collineations of a projective space.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(HomographyGroup(PG(3,25)));</span>
< a collineation: <cmat 4x4 over GF(5,2)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsStrictlySemilinear(g);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CollineationGroup(PG(3,25)));</span>
< a collineation: <cmat 4x4 over GF(5,2)>, F^5>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsStrictlySemilinear(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CorrelationCollineationGroup(PG(3,25)));</span>
<projective element with Frobenius with projectivespace isomorphism: <cmat 4x
4 over GF(5,2)>, F^5, IdentityMapping( <All elements of ProjectiveSpace(3,
25)> ) >
<span class="GAPprompt">gap></span> <span class="GAPinput">IsStrictlySemilinear(g);</span>
true
</pre></div>
<p><a id="X815B68277D0500C3" name="X815B68277D0500C3"></a></p>
<h5>5.1-6 <span class="Heading">Correlations and collineations</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsProjGrpElWithFrobWithPSIsom</code></td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCorrelationCollineation</code></td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCorrelation</code></td><td class="tdright">( property )</td></tr></table></div>
<p>The underlying objects of a correlation-collineation in <strong class="pkg">FinInG</strong> are a nonsingular matrix, a field automorphism and a projective space isomorphism. <code class="code">IsProjGrpElWithFrobWithPSIsom</code> is the category of these objects. If the projective space isomorphism is not the identity, then the element is a correlation, and <code class="code">IsCorrelation</code> will return true. <code class="code">IsCorrelationCollineation</code> is a synonym of <code class="code">IsProjGrpElWithFrobWithPSIsom</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CollineationGroup(PG(4,7)));</span>
< a collineation: <cmat 5x5 over GF(7,1)>, F^0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCorrelationCollineation(g);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCorrelation(g);</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Random(CorrelationCollineationGroup(PG(4,7)));</span>
<projective element with Frobenius with projectivespace isomorphism: <cmat 5x
5 over GF(7,1)>, F^0, IdentityMapping( <All elements of ProjectiveSpace(4,
7)> ) >
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCorrelationCollineation(g);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCorrelation(g);</span>
false
</pre></div>
<p><a id="X78EDF0357B58FC0E" name="X78EDF0357B58FC0E"></a></p>
<h4>5.2 <span class="Heading">Construction of projectivities, collineations and correlations.</span></h4>
<p>In <strong class="pkg">FinInG</strong>, projectivities and collineations are both constructed in the category <code class="code">IsProjGrpElWithFrob</code>; correlations are constructed in the category <code class="code">IsProjGrpElWithFrobWithPSIsom</code>.</p>
<p><a id="X877DA4E185A1D9C7" name="X877DA4E185A1D9C7"></a></p>
<h5>5.2-1 Projectivity</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Projectivity</code>( <var class="Arg">mat</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Projectivity</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a projectivity of a projective space</p>
<p>The argument <var class="Arg">mat</var> must be a nonsingular matrix over the finite field <var class="Arg">f</var>. In the second variant, the size of the nonsingular matrix <var class="Arg">mat</var> must be one more than the dimension of the projective space <var class="Arg">pg</var>. This creates an element of a projectivity group. But the returned object belongs to <code class="code">IsProjGrpElWithFrob</code>!</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat := [[1,0,0],[0,1,0],[0,0,1]]*Z(9)^0;</span>
[ [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3) ],
[ 0*Z(3), 0*Z(3), Z(3)^0 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Projectivity(mat,GF(9));</span>
< a collineation: <cmat 3x3 over GF(3,2)>, F^0>
</pre></div>
<p><a id="X7AB452B2781EF128" name="X7AB452B2781EF128"></a></p>
<h5>5.2-2 CollineationOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CollineationOfProjectiveSpace</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var>, <var class="Arg">frob</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Collineation</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Collineation</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var>, <var class="Arg">frob</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">mat</var> is a nonsingular matrix, <var class="Arg">frob</var> is a field automorphism, <var class="Arg">f</var> is a field, and <var class="Arg">pg</var> is a projective space. This function (and its shorter version) returns the collineation with matrix <var class="Arg">mat</var> and automorphism <var class="Arg">frob</var> of the field <var class="Arg">f</var>. If <var class="Arg">frob</var> is not specified then the companion automorphism of the resulting group element will be the identity map. The returned object belongs to the category <code class="code">IsProjGrpElWithFrob</code>. When the argument <var class="Arg">frob</var> is given, it is checked whether the source of <var class="Arg">frob</var> equals <var class="Arg">f</var>. When the arguments <var class="Arg">pg</var> and <var class="Arg">mat</var> are used, then it is checked that these two arguments are compatible.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat:=</span>
<span class="GAPprompt">></span> <span class="GAPinput">[[Z(2^3)^6,Z(2^3),Z(2^3)^3,Z(2^3)^3],[Z(2^3)^6,Z(2)^0,Z(2^3)^2,Z(2^3)^3],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[0*Z(2),Z(2^3)^4,Z(2^3),Z(2^3)],[Z(2^3)^6,Z(2^3)^5,Z(2^3)^3,Z(2^3)^5 ]];</span>
[ [ Z(2^3)^6, Z(2^3), Z(2^3)^3, Z(2^3)^3 ],
[ Z(2^3)^6, Z(2)^0, Z(2^3)^2, Z(2^3)^3 ],
[ 0*Z(2), Z(2^3)^4, Z(2^3), Z(2^3) ],
[ Z(2^3)^6, Z(2^3)^5, Z(2^3)^3, Z(2^3)^5 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">frob := FrobeniusAutomorphism(GF(8));</span>
FrobeniusAutomorphism( GF(2^3) )
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := ProjectiveSemilinearMap(mat,frob^2,GF(8));</span>
< a collineation: <cmat 4x4 over GF(2,3)>, F^4>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat2 := [[Z(2^8)^31,Z(2^8)^182,Z(2^8)^49],[Z(2^8)^224,Z(2^8)^25,Z(2^8)^45], </span>
<span class="GAPprompt">></span> <span class="GAPinput">[Z(2^8)^128,Z(2^8)^165,Z(2^8)^217]];</span>
[ [ Z(2^8)^31, Z(2^8)^182, Z(2^8)^49 ], [ Z(2^8)^224, Z(2^8)^25, Z(2^8)^45 ],
[ Z(2^8)^128, Z(2^8)^165, Z(2^8)^217 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">psi := CollineationOfProjectiveSpace(mat2,GF(256));</span>
< a collineation: <cmat 3x3 over GF(2,8)>, F^0>
</pre></div>
<p><a id="X81ED446485A71588" name="X81ED446485A71588"></a></p>
<h5>5.2-3 ProjectiveSemilinearMap</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectiveSemilinearMap</code>( <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a projectivity of a projective space</p>
<p><var class="Arg">mat</var> is a nonsingular matrix, <var class="Arg">frob</var> is a field automorphism, and <var class="Arg">f</var> is a field. This function returns the collineation with matrix <var class="Arg">mat</var> and automorphism <var class="Arg">frob</var>. The returned object belongs to the category <code class="code">IsProjGrpElWithFrob</code>. When the argument <var class="Arg">frob</var> is given, it is checked whether the source of <var class="Arg">frob</var> equals <var class="Arg">f</var>.</p>
<p><a id="X80649C427E3BCBFF" name="X80649C427E3BCBFF"></a></p>
<h5>5.2-4 IdentityMappingOfElementsOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IdentityMappingOfElementsOfProjectiveSpace</code>( <var class="Arg">ps</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This operation returns the identity mapping on the collection of subspaces of a projective space <var class="Arg">ps</var>.</p>
<p><a id="X841607A77B841CC9" name="X841607A77B841CC9"></a></p>
<h5>5.2-5 StandardDualityOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ StandardDualityOfProjectiveSpace</code>( <var class="Arg">ps</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This operation returns the standard duality of the projective space <var class="Arg">ps</var></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ps := ProjectiveSpace(4,5);</span>
ProjectiveSpace(4, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">delta := StandardDualityOfProjectiveSpace(ps);</span>
StandardDuality( AllElementsOfIncidenceStructure( ProjectiveSpace(4,GF(5)) ) )
<span class="GAPprompt">gap></span> <span class="GAPinput">delta^2;</span>
IdentityMapping( <All elements of ProjectiveSpace(4, 5)> )
<span class="GAPprompt">gap></span> <span class="GAPinput">p := VectorSpaceToElement(ps,[1,2,3,0,1]*Z(5)^0);</span>
<a point in ProjectiveSpace(4, 5)>
<span class="GAPprompt">gap></span> <span class="GAPinput">h := p^delta;</span>
<a solid in ProjectiveSpace(4, 5)>
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingObject(h);</span>
<cmat 4x5 over GF(5,1)>
<span class="GAPprompt">gap></span> <span class="GAPinput">Unpack(last);</span>
[ [ Z(5)^0, 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^2 ],
[ 0*Z(5), Z(5)^0, 0*Z(5), 0*Z(5), Z(5)^3 ],
[ 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5), Z(5) ],
[ 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ] ]
</pre></div>
<p><a id="X78BBC4E27B2E06D6" name="X78BBC4E27B2E06D6"></a></p>
<h5>5.2-6 CorrelationOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CorrelationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CorrelationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CorrelationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">f</var>, <var class="Arg">delta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CorrelationOfProjectiveSpace</code>( <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">f</var>, <var class="Arg">delta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CorrelationOfProjectiveSpace</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">delta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Correlation</code>( <var class="Arg">pg</var>, <var class="Arg">mat</var>, <var class="Arg">frob</var>, <var class="Arg">delta</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">mat</var> is a nonsingular matrix, <var class="Arg">frob</var> is a field automorphism, <var class="Arg">f</var> is a field, and <var class="Arg">delta</var> is the standard duality of the projective space PG(n,q). This function returns the correlation with matrix <var class="Arg">mat</var>, automorphism <var class="Arg">frob</var>, and standard duality <var class="Arg">delta</var>. If <var class="Arg">frob</var> is not specified then the companion automorphism of the resulting group element will be the identity map. If the user specifies <var class="Arg">delta</var>, then it must be the standard duality of a projective space, created using <code class="func">StandardDualityOfProjectiveSpace</ | | |