| products/Sources/formale Sprachen/GAP/pkg/fining/doc/chap14_mj.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>
< script type= "text/javascript"
src= "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</ script>
< title>GAP (FinInG) - Chapter 14: Subgeometries of projective spaces</ 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= "chap14" onload= "jscontent()">
< div class= "chlinktop">< span class= "chlink1">Goto Chapter: </ span>< a href= "chap0_mj.html">Top< /a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapC_mj.html">C</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap13_mj.html">[Previous Chapter]</a> <a href="chapA_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap14.html">[MathJax off]</a></p>
<p><a id="X79A3CC6E85E72EC1" name="X79A3CC6E85E72EC1"></a></p>
<div class="ChapSects"><a href="chap14_mj.html#X79A3CC6E85E72EC1">14 <span class="Heading">Subgeometries of projective spaces</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X7D237EAD8797C140">14.1 <span class="Heading">Particular Categories</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X84BB6A0D7DABB9EB">14.1-1 IsSubgeometryOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X7D908542820D2FBE">14.1-2 <span class="Heading">Categories for elements and collections of elements</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X79A3CC6E85E72EC1">14.2 <span class="Heading">Subgeometries of projective spaces</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X8204DC137E1B54B6">14.2-1 CanonicalSubgeometryOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X81EB7C0B838B53B2">14.2-2 RandomFrameOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X824D4BA67AE1923B">14.2-3 IsFrameOfProjectiveSpace</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X7A88800C80667E22">14.2-4 SubgeometryOfProjectiveSpaceByFrame</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X82EB5BE77F9F686A">14.3 <span class="Heading">Basic operations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X8058FF3479158445">14.3-1 <span class="Heading">Underlying vector space and ambient projective space</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X7DC6B3E57C74A153">14.3-2 DefiningFrameOfSubgeometry</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X79CC2F0483575105">14.3-3 <span class="Heading">Projective dimension and rank</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X85437D577DE97AEF">14.3-4 <span class="Heading">Underlying algebraic structures</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X8550F38F7FB123DB">14.3-5 CollineationFixingSubgeometry</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X7836EC02824B9425">14.4 <span class="Heading">Constructing elements of a subgeometry</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X82E9593B8074AECB">14.4-1 VectorSpaceToElement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X78219A547B858E2E">14.4-2 ExtendElementOfSubgeometry</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X799DB77886B8ABDB">14.4-3 AmbientGeometry</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X7B1757048405DD29">14.4-4 <span class="Heading">Flags</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X80503DDC8270EE69">14.5 <span class="Heading">Groups and actions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap14_mj.html#X78F858C8863C7721">14.5-1 <span class="Heading">Groups of collineations</span></a>
</span>
</div></div>
</div>
<h3>14 <span class="Heading">Subgeometries of projective spaces</span></h3>
<p>Let <span class="SimpleMath">\(S=(P,L,I)\)</span> be a point-line incidence geometry. In case <span class="SimpleMath">\(S\)</span> is a projective space over a finite field, it is clear that every line (and every subspace as well) can be identified with the set of points incident with it. Furthermore, the incidence relation <span class="SimpleMath">\(I\)</span> is then symmetrised containment. To define a subgeometry mathematically, we follow <a href="chapBib_mj.html#biBDembowski68">[Dem97]</a>. Let <span class="SimpleMath">\(P' \subset P\)</span> and let <span class="SimpleMath">\(L'\)</span> be a set of subsets of <span class="SimpleMath">\(P'\)</span>, such that every <span class="SimpleMath">\(l' \in L'\)</span> is a subset of exactly one line <span class="SimpleMath">\(l \in L\)</span>. If <span class="SimpleMath">\(S'=(P',L',I)\)</span> is a projective space again, then we call <span class="SimpleMath">\(S'\)</span> a <em>subgeometry</em> of <span class="SimpleMath">\(S\)</span>. Note that in general the subspaces of <span class="SimpleMath">\(S'\)</span> will be subsets of subspaces of <span class="SimpleMath">\(S\)</span>.</p>
<p>A typical example of a subgeometry is a Baer subplane of a projective plane. In this example, with <span class="SimpleMath">\(S'\)</span> the Baer subplane of the projective plane <span class="SimpleMath">\(S\)</span>, one could say that a point of <span class="SimpleMath">\(S'\)</span> is indeed a point of <span class="SimpleMath">\(S\)</span>, but a line of <span class="SimpleMath">\(S'\)</span>, is not a line of <span class="SimpleMath">\(S\)</span>. If one considers a line of <span class="SimpleMath">\(S'\)</span> as a set of points of <span class="SimpleMath">\(S'\)</span>, then a line of <span class="SimpleMath">\(S'\)</span> is a subset of the set of points on a line of <span class="SimpleMath">\(S\)</span>. Another example is the subgeometry of a projective space induced by a subspace <span class="SimpleMath">\(\pi\)</span>. In this example, clearly, the set of elements of the induced subgeometry can, mathematically, be considered as a subset of the set of elements of <span class="SimpleMath">\(S\)</span>.</p>
<p>The same considerations apply for classical polar spaces. These consideration have implications for the behaviour of certain operations in <strong class="pkg">FinInG</strong>, e.g. when computing the span and meet of different elements.</p>
<p>Using geometry morphisms, and more particular a function like <code class="file">NaturalEmbeddingBySubField</code>, one can deal in an indirect way with subgeometries. However, using <code class="file">NaturalEmbeddingBySubField</code> is not flexible, and typical problems such as considering a subgeometry determined by a user chosen frame and a subfield, cannot be handled easily. Therefore <strong class="pkg">FinInG</strong> provides some functions to naturally construct subgeometries of projective spaces.</p>
<p>A subgeometry in a projective space is completely determined by a frame of the projective space and a subfield of the base field of the projective space. The <em>standard frame</em> in an <span class="SimpleMath">\(n\)</span>-dimensional projective space <span class="SimpleMath">\(PG(n,q)\)</span> is the set of <span class="SimpleMath">\(n+2\)</span> points represented by <span class="SimpleMath">\((1,0,\ldots,0),(0,1,\ldots,0),\ldots,(0,0,\ldots,1),(1,1,\ldots,1)\)</span>. The subgeometry determined by the standard frame will be called <em>canonical</em>. Note that different frames may determine the same subgeometry (over a fixed subfield).</p>
<p>For a given subfield <span class="SimpleMath">\(GF(q') \subset GF(q)\)</span>, the canonical subgeometry determined by the standard frame in <span class="SimpleMath">\(PG(n,q)\)</span> is mathematically spoken the image of the <strong class="pkg">FinInG</strong> geometry morphism <code class="file">NaturalEmbeddingBySubField</code> of the projective space <span class="SimpleMath">\(PG(n,q')\)</span>. The coordinates of the points of the subgeometry will be exclusively over the subfield <span class="SimpleMath">\(GF(q')\)</span>, as are the coordinates of the vectors after normalizing defining any subspace of the subgeometry. Clearly, the Frobenius automorphism which maps <span class="SimpleMath">\(x\)</span> to <span class="SimpleMath">\(x^{q'}\)</span> fixes all elements of the subgeometry.</p>
<p>For an arbitrary frame of <span class="SimpleMath">\(PG(n,q)\)</span> and a subfield <span class="SimpleMath">\(GF(q')\)</span>, there exists a natural collineation of <span class="SimpleMath">\(PG(n,q)\)</span> which fixes the subgeometry pointwise. This collineation is the conjugation of the Frobenius automorphism by the unique collineation mapping the defining frame of the subgeometry to the standard frame of <span class="SimpleMath">\(PG(n,q)\)</span>, i.e. the frame defining the canonical subgeometry over <span class="SimpleMath">\(GF(q')\)</span>. Upon construction of a subgeometry, both collineations will be computed, and are of use when dealing with the full collineation group of a subgeometry. As for any incidence geometry in <strong class="pkg">FinInG</strong>, operations to compute this collineation group as well as particular action functions for subgeometries are provided.</p>
<p>Subgeometries of projective spaces are constructed in a subcategory of <code class="code">IsProjectiveSpace</code>, as such, all operations applicable to projective spaces, are naturally applicable to subgeometries. Subspaces of subgeometries are constructed in a subcategory of <code class="code">IsSubspaceOfProjectiveSpace</code>. Hence, operations applicable to subspaces of projective spaces, are naturally applicable to subspaces of subgeometries.</p>
<p><a id="X7D237EAD8797C140" name="X7D237EAD8797C140"></a></p>
<h4>14.1 <span class="Heading">Particular Categories</span></h4>
<p><a id="X84BB6A0D7DABB9EB" name="X84BB6A0D7DABB9EB"></a></p>
<h5>14.1-1 IsSubgeometryOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsSubgeometryOfProjectiveSpace</code></td><td class="tdright">( category )</td></tr></table></div>
<p>This category is a subcategory of <code class="code">IsProjectiveSpace</code>, and contains all subgeometries of projective spaces. Note that mathematically, a subspace of a projective space is also a subgeometry. However, in <strong class="pkg">FinInG</strong>, subspaces of a projective space are constructed in a category that is not a subcategory of <code class="code">IsProjectiveSpace</code>. Since <code class="code">IsSubgeometryOfProjectiveSpace</code> is a subcategory of <code class="code">IsProjectiveSpace</code>, all operations applicable to projective spaces, are naturally applicable to subgeometries of projective spaces.</p>
<p><a id="X7D908542820D2FBE" name="X7D908542820D2FBE"></a></p>
<h5>14.1-2 <span class="Heading">Categories for elements and collections of elements</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsSubspaceOfSubgeometryOfProjectiveSpace</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">an style='color: green'>8227; IsSubspacesOfSubgeometryOfProjectiveSpace</code></td><td class="tdright">( category )</td></tr></table></div>
<p>A subspace of a subgeometry belongs to the category <code class="code">IsSubspaceOfSubgeometryOfProjectiveSpace</code>.</p>
<p><a id="X79A3CC6E85E72EC1" name="X79A3CC6E85E72EC1"></a></p>
<h4>14.2 <span class="Heading">Subgeometries of projective spaces</span></h4>
<p><a id="X8204DC137E1B54B6" name="X8204DC137E1B54B6"></a></p>
<h5>14.2-1 CanonicalSubgeometryOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; CanonicalSubgeometryOfProjectiveSpace</code>( <var class="Arg">pg</var>, <var class="Arg">subfield</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">an style='color: green'>8227; CanonicalSubgeometryOfProjectiveSpace</code>( <var class="Arg">pg</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a subgeometry of <var class="Arg">pg</var></p>
<p>This operation returns the subgeometry of <var class="Arg">pg</var> induced by the standard frame over the subfield <var class="Arg">subfield</var>. Alternatively, a prime power <var class="Arg">q</var> can be used as the order of the subfield. It is checked whether the user specified subfield is indeed a subfield of the base field of <var class="Arg">pg</var>. If the subfield equals the base field of <var class="Arg">pg</var>, the projective space <var class="Arg">pg</var> is returned.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(2,25);</span>
ProjectiveSpace(2, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,GF(5));</span>
Subgeometry PG(2, 5) of ProjectiveSpace(2, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">CategoriesOfObject(sub);</span>
[ "IsIncidenceStructure", "IsIncidenceGeometry", "IsLieGeometry",
"IsProjectiveSpace", "IsSubgeometryOfProjectiveSpace" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(3,3^6);</span>
ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,3^2);</span>
Subgeometry PG(3, 9) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,3^3);</span>
Subgeometry PG(3, 27) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,3^6);</span>
ProjectiveSpace(3, 729)
</pre></div>
<p><a id="X81EB7C0B838B53B2" name="X81EB7C0B838B53B2"></a></p>
<h5>14.2-2 RandomFrameOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; RandomFrameOfProjectiveSpace</code>( <var class="Arg">pg</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a set of points of <var class="Arg">pg</var>, being a frame. Note that the returned object is also a set in the GAP sense, i.e. an ordered list without duplicates.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(1,5^5);</span>
ProjectiveSpace(1, 3125)
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(1, 3125)>, <a point in ProjectiveSpace(1, 3125)>
, <a point in ProjectiveSpace(1, 3125)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(frame);</span>
3
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(6,2^2);</span>
ProjectiveSpace(6, 4)
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(6, 4)>, <a point in ProjectiveSpace(6, 4)>,
<a point in ProjectiveSpace(6, 4)>, <a point in ProjectiveSpace(6, 4)>,
<a point in ProjectiveSpace(6, 4)>, <a point in ProjectiveSpace(6, 4)>,
<a point in ProjectiveSpace(6, 4)>, <a point in ProjectiveSpace(6, 4)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(frame);</span>
8
</pre></div>
<p><a id="X824D4BA67AE1923B" name="X824D4BA67AE1923B"></a></p>
<h5>14.2-3 IsFrameOfProjectiveSpace</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsFrameOfProjectiveSpace</code>( <var class="Arg">list</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: true or false</p>
<p>When <var class="Arg">list</var> is a list of points of a projective space, this operation returns true if and only if <var class="Arg">list</var> constitutes a frame of the projective space. It is checked as well whether all points in <var class="Arg">list</var> belong to the same projective space.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(1,7^3);</span>
ProjectiveSpace(1, 343)
<span class="GAPprompt">gap></span> <span class="GAPinput">p1 := VectorSpaceToElement(pg,[1,1]*Z(7)^0);</span>
<a point in ProjectiveSpace(1, 343)>
<span class="GAPprompt">gap></span> <span class="GAPinput">p2 := VectorSpaceToElement(pg,[1,2]*Z(7)^0);</span>
<a point in ProjectiveSpace(1, 343)>
<span class="GAPprompt">gap></span> <span class="GAPinput">p3 := VectorSpaceToElement(pg,[1,3]*Z(7)^0);</span>
<a point in ProjectiveSpace(1, 343)>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsFrameOfProjectiveSpace([p1,p2,p3]);</span>
true
</pre></div>
<p><a id="X7A88800C80667E22" name="X7A88800C80667E22"></a></p>
<h5>14.2-4 SubgeometryOfProjectiveSpaceByFrame</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SubgeometryOfProjectiveSpaceByFrame</code>( <var class="Arg">pg</var>, <var class="Arg">list</var>, <var class="Arg">field</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">an style='color: green'>8227; SubgeometryOfProjectiveSpaceByFrame</code>( <var class="Arg">pg</var>, <var class="Arg">list</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a subgeometry of <var class="Arg">pg</var></p>
<p>The argument <var class="Arg">pg</var> is a projective space which is not a subgeometry itself, the argument <var class="Arg">list</var> is a list of points of <var class="Arg">pg</var> defining a frame of <var class="Arg">pg</var>, and finally the argument <var class="Arg">field</var> is a subfield of the base field of <var class="Arg">pg</var>. Alternatively, the argument <var class="Arg">q</var> is the order of a subfield of the base field of <var class="Arg">pg</var>. This method returns the subgeometry defined by the frame in <var class="Arg">list</var> and the subfield <var class="Arg">field</var> of the subfield <span class="SimpleMath">\(GF(\textit{q})\)</span>. This method checks whether the subfield <var class="Arg">field</var> or the field <span class="SimpleMath">\(GF(\textit{q})\)</span> is really a subfield of the base field of <var class="Arg">pg</var> and whether the list of points in <var class="Arg">list</var> is a frame of <var class="Arg">pg</var>. Note also that it is currently not possible to construct subgeometries recursively, so <var class="Arg">pg</var> may not be a subgeometry itself. If the specified subfield equals the base field of <var class="Arg">pg</var>, then the projective space <var class="Arg">pg</var> itself is returned.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(3,3^6);</span>
ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(3, 729)>, <a point in ProjectiveSpace(3, 729)>,
<a point in ProjectiveSpace(3, 729)>, <a point in ProjectiveSpace(3, 729)>,
<a point in ProjectiveSpace(3, 729)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sub1 := SubgeometryOfProjectiveSpaceByFrame(pg,frame,GF(3));</span>
Subgeometry PG(3, 3) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub2 := SubgeometryOfProjectiveSpaceByFrame(pg,frame,3^2);</span>
Subgeometry PG(3, 9) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub3 := SubgeometryOfProjectiveSpaceByFrame(pg,frame,3^3);</span>
Subgeometry PG(3, 27) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub4 := SubgeometryOfProjectiveSpaceByFrame(pg,frame,3^6);</span>
ProjectiveSpace(3, 729)
</pre></div>
<p><a id="X82EB5BE77F9F686A" name="X82EB5BE77F9F686A"></a></p>
<h4>14.3 <span class="Heading">Basic operations</span></h4>
<p><a id="X8058FF3479158445" name="X8058FF3479158445"></a></p>
<h5>14.3-1 <span class="Heading">Underlying vector space and ambient projective space</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; UnderlyingVectorSpace</code>( <var class="Arg">sub</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">an style='color: green'>8227; AmbientSpace</code>( <var class="Arg">sub</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Let <span class="SimpleMath">\(P\)</span> be a projective space over the field <span class="SimpleMath">\(F\)</span>. Let <var class="Arg">sub</var> be a subgeometry of <span class="SimpleMath">\(P\)</span> over the subfield <span class="SimpleMath">\(F'\)</span>. The underlying vector space of <var class="Arg">sub</var> is defined as the underlying vector space of <span class="SimpleMath">\(P\)</span> (which is a vector space over the field <span class="SimpleMath">\(F\)</span>). The ambient space of a subgeometry <var class="Arg">sub</var> is the projective space <span class="SimpleMath">\(P\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(2,5^6);</span>
ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub1 := CanonicalSubgeometryOfProjectiveSpace(pg,5);</span>
Subgeometry PG(2, 5) of ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(pg);</span>
( GF(5^6)^3 )
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(sub1);</span>
( GF(5^6)^3 )
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientSpace(sub1);</span>
ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub2 := CanonicalSubgeometryOfProjectiveSpace(pg,5^3);</span>
Subgeometry PG(2, 125) of ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientSpace(sub2);</span>
ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(sub2);</span>
( GF(5^6)^3 )
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sub3 := SubgeometryOfProjectiveSpaceByFrame(pg,frame,5^2);</span>
Subgeometry PG(2, 25) of ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientSpace(sub3);</span>
ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(sub3);</span>
( GF(5^6)^3 )
</pre></div>
<p><a id="X7DC6B3E57C74A153" name="X7DC6B3E57C74A153"></a></p>
<h5>14.3-2 DefiningFrameOfSubgeometry</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DefiningFrameOfSubgeometry</code>( <var class="Arg">sub</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a set of projective points</p>
<p>This attribute returns a frame of the ambient space of <var class="Arg">sub</var> defining it. Note that different frames might define the same subgeometry, but the frame used to constructed <var class="Arg">sub</var> is stored at construction, and it is exactly this stored object that is returned by this attribute. The returned object is a set of points, and it is also a set in the GAP sense, i.e. an ordered list without duplicates.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(2,2^4);</span>
ProjectiveSpace(2, 16)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,2);</span>
Subgeometry PG(2, 2) of ProjectiveSpace(2, 16)
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := DefiningFrameOfSubgeometry(sub);</span>
[ <a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)>,
<a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(frame,x->Unpack(UnderlyingObject(x)));</span>
[ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0, Z(2)^0 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)>,
<a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := SubgeometryOfProjectiveSpaceByFrame(pg,frame,2^2);</span>
Subgeometry PG(2, 4) of ProjectiveSpace(2, 16)
<span class="GAPprompt">gap></span> <span class="GAPinput">def := DefiningFrameOfSubgeometry(sub);</span>
[ <a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)>,
<a point in ProjectiveSpace(2, 16)>, <a point in ProjectiveSpace(2, 16)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(def,x->Unpack(UnderlyingObject(x)));</span>
[ [ Z(2)^0, 0*Z(2), Z(2^4)^9 ], [ Z(2)^0, Z(2^4)^4, Z(2^4)^11 ],
[ Z(2)^0, Z(2^4)^2, Z(2^2)^2 ], [ Z(2)^0, Z(2^2)^2, Z(2^4)^14 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">StandardFrame(sub);</span>
[ <a point in Subgeometry PG(2, 4) of ProjectiveSpace(2, 16)>,
<a point in Subgeometry PG(2, 4) of ProjectiveSpace(2, 16)>,
<a point in Subgeometry PG(2, 4) of ProjectiveSpace(2, 16)>,
<a point in Subgeometry PG(2, 4) of ProjectiveSpace(2, 16)> ]
</pre></div>
<p><a id="X79CC2F0483575105" name="X79CC2F0483575105"></a></p>
<h5>14.3-3 <span class="Heading">Projective dimension and rank</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; ProjectiveDimension</code>( <var class="Arg">sub</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">an style='color: green'>8227; Dimension</code>( <var class="Arg">sub</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">an style='color: green'>8227; Rank</code>( <var class="Arg">sub</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an integer</p>
<p>If <var class="Arg">sub</var> is a subgeometry of a projective space, then it is a projective space itself. Therefore, these three operations return the projective dimension of <var class="Arg">sub</var>, see also <a href="chap4_mj.html#X84FDF25D797B874B"><span class="RefLink">4.1-3</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(7,8^2);</span>
ProjectiveSpace(7, 64)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,8);</span>
Subgeometry PG(7, 8) of ProjectiveSpace(7, 64)
<span class="GAPprompt">gap></span> <span class="GAPinput">ProjectiveDimension(sub);</span>
7
<span class="GAPprompt">gap></span> <span class="GAPinput">Dimension(sub);</span>
7
<span class="GAPprompt">gap></span> <span class="GAPinput">Rank(sub);</span>
7
</pre></div>
<p><a id="X85437D577DE97AEF" name="X85437D577DE97AEF"></a></p>
<h5>14.3-4 <span class="Heading">Underlying algebraic structures</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; UnderlyingVectorSpace</code>( <var class="Arg">sub</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">an style='color: green'>8227; BaseField</code>( <var class="Arg">sub</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">an style='color: green'>8227; SubfieldOfSubgeometry</code>( <var class="Arg">sub</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the first operation returns a vector space, the second and third operations return a finite field</p>
<p>The operations <code class="file">UnderlyingVectorSpace</code> and <code class="file">BaseField</code> are defined for projective spaces, see <a href="chap4_mj.html#X7D544D7985A4572D"><span class="RefLink">4.1-5</span></a> and <a href="chap4_mj.html#X7BCBA564829D9E89"><span class="RefLink">4.1-4</span></a>. For a subgeometry of a projective space <var class="Arg">sub</var> with ambient space <var class="Arg">ps</var>, these operations return <code class="file">UnderlyingVectorSpace(ps)</code>, <code class="file">BaseField(ps)</code> respectively. The operation <code class="file">SubfieldOfSubgeometry</code> returns the subfield over which <var class="Arg">sub</var> is defined.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(3,3^6);</span>
ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub1 := CanonicalSubgeometryOfProjectiveSpace(pg,3^3);</span>
Subgeometry PG(3, 27) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">BaseField(sub1);</span>
GF(3^6)
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(sub1);</span>
( GF(3^6)^4 )
<span class="GAPprompt">gap></span> <span class="GAPinput">SubfieldOfSubgeometry(sub1);</span>
GF(3^3)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub2 := CanonicalSubgeometryOfProjectiveSpace(pg,3^2);</span>
Subgeometry PG(3, 9) of ProjectiveSpace(3, 729)
<span class="GAPprompt">gap></span> <span class="GAPinput">BaseField(sub2);</span>
GF(3^6)
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingVectorSpace(sub2);</span>
( GF(3^6)^4 )
<span class="GAPprompt">gap></span> <span class="GAPinput">SubfieldOfSubgeometry(sub2);</span>
GF(3^2)
</pre></div>
<p><a id="X8550F38F7FB123DB" name="X8550F38F7FB123DB"></a></p>
<h5>14.3-5 CollineationFixingSubgeometry</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; CollineationFixingSubgeometry</code>( <var class="Arg">sub</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a collineation of the ambient space of <var class="Arg">sub</var></p>
<p>Let <span class="SimpleMath">\(GF(q)\)</span> be the field over which <var class="Arg">sub</var> is defined, this is a subfield of <span class="SimpleMath">\(GF(q^t)\)</span> over which the ambient projective space <span class="SimpleMath">\(P\)</span> is defined. It is well known that there exists a collineation of <span class="SimpleMath">\(P\)</span> of order <span class="SimpleMath">\(t\)</span>, fixing all elements of <var class="Arg">sub</var>, which is returned by this operation. This collineation is the collineation induced by the Frobenius map <span class="SimpleMath">\(x\mapsto x^q\)</span>, conjugated by the collineation of <span class="SimpleMath">\(P\)</span> mapping the subgeometry <var class="Arg">sub</var> to the canonical subgeometry of <span class="SimpleMath">\(P\)</span> over <span class="SimpleMath">\(GF(q)\)</span>. In case of a quadratic field extension (i.e. <span class="SimpleMath">\(t=2\)</span>), this collineation is known in the literature as the Baer involution of the subgeometry.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(2,7^3);</span>
ProjectiveSpace(2, 343)
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := CanonicalSubgeometryOfProjectiveSpace(pg,GF(7));</span>
Subgeometry PG(2, 7) of ProjectiveSpace(2, 343)
<span class="GAPprompt">gap></span> <span class="GAPinput">coll := CollineationFixingSubgeometry(sub);</span>
< a collineation: <cmat 3x3 over GF(7,3)>, F^7>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(coll);</span>
3
</pre></div>
<p><a id="X7836EC02824B9425" name="X7836EC02824B9425"></a></p>
<h4>14.4 <span class="Heading">Constructing elements of a subgeometry</span></h4>
<p><a id="X82E9593B8074AECB" name="X82E9593B8074AECB"></a></p>
<h5>14.4-1 VectorSpaceToElement</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; VectorSpaceToElement</code>( <var class="Arg">sub</var>, <var class="Arg">v</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a subspace of a subgeometry</p>
<p><var class="Arg">sub</var> is a subgeometry of a projective space, and <var class="Arg">v</var> is either a row vector (for points) or a matrix (for higher dimensional subspaces). In the case that <var class="Arg">v</var> is a matrix, the rows represent generators for the subspace. An exceptional case is when <var class="Arg">v</var> is the zero-vector, in which case the trivial subspace is returned. This method checks whether <var class="Arg">v</var> determines an element of <var class="Arg">sub</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(2,5^6);</span>
ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">vecs := [ [ Z(5)^0, Z(5^6)^13972, Z(5^6)^11653 ], </span>
<span class="GAPprompt">></span> <span class="GAPinput">[ Z(5)^0, Z(5^6)^9384, Z(5^6)^1372 ],</span>
<span class="GAPprompt">></span> <span class="GAPinput">[ Z(5)^0, Z(5^6)^14447, Z(5^6)^15032 ], </span>
<span class="GAPprompt">></span> <span class="GAPinput">[ Z(5)^0, Z(5^6)^8784, Z(5^6)^10360 ] ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := List(vecs,x->VectorSpaceToElement(pg,x));</span>
[ <a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)>,
<a point in ProjectiveSpace(2, 15625)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := SubgeometryOfProjectiveSpaceByFrame(pg,frame,5^3);</span>
Subgeometry PG(2, 125) of ProjectiveSpace(2, 15625)
<span class="GAPprompt">gap></span> <span class="GAPinput">VectorSpaceToElement(sub,[0,0,0]*Z(5)^0);</span>
< empty subspace >
<span class="GAPprompt">gap></span> <span class="GAPinput">vec := [ Z(5)^0, Z(5^6)^8584, Z(5^6)^13650 ];</span>
[ Z(5)^0, Z(5^6)^8584, Z(5^6)^13650 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">VectorSpaceToElement(sub,vec);</span>
<a point in Subgeometry PG(2, 125) of ProjectiveSpace(2, 15625)>
<span class="GAPprompt">gap></span> <span class="GAPinput">vec := [ [ Z(5)^0, 0*Z(5), Z(5^6)^5740 ], [ 0*Z(5), Z(5)^0, Z(5^6)^15250 ] ];</span>
[ [ Z(5)^0, 0*Z(5), Z(5^6)^5740 ], [ 0*Z(5), Z(5)^0, Z(5^6)^15250 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">VectorSpaceToElement(sub,vec);</span>
Error, <obj> does not determine an element in <sub> called from
VectorSpaceToElementForSubgeometries( geom, v
) at ./pkg/fining/lib/subgeometries.gi:400 called from
<function "unknown">( <arguments> )
called from read-eval loop at line 19 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
<span class="GAPbrkprompt">brk></span> <span class="GAPinput">quit;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">vec := [ [ Z(5)^0, 0*Z(5), Z(5^6)^8268 ], [ 0*Z(5), Z(5)^0, Z(5^6)^1472 ] ];</span>
[ [ Z(5)^0, 0*Z(5), Z(5^6)^8268 ], [ 0*Z(5), Z(5)^0, Z(5^6)^1472 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">VectorSpaceToElement(sub,vec);</span>
<a line in Subgeometry PG(2, 125) of ProjectiveSpace(2, 15625)>
<span class="GAPprompt">gap></span> <span class="GAPinput">VectorSpaceToElement(sub,vecs);</span>
Subgeometry PG(2, 125) of ProjectiveSpace(2, 15625)
</pre></div>
<p><a id="X78219A547B858E2E" name="X78219A547B858E2E"></a></p>
<h5>14.4-2 ExtendElementOfSubgeometry</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; ExtendElementOfSubgeometry</code>( <var class="Arg">el</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a subspace of a projective space</p>
<p>The argument <var class="Arg">el</var> is an element of a subgeometry <span class="SimpleMath">\(P'\)</span> with ambient projective space <span class="SimpleMath">\(P\)</span>. The projective space is defined over a field <span class="SimpleMath">\(F\)</span>, the subgeometry <span class="SimpleMath">\(P'\)</span> is defined over a subfield <span class="SimpleMath">\(F'\)</span> of <span class="SimpleMath">\(F\)</span>. The underlying vector space of <var class="Arg">el</var> is a vector space over <span class="SimpleMath">\(F'\)</span> generated by a set <span class="SimpleMath">\(S\)</span> of vectors. This operation returns the element of <span class="SimpleMath">\(P\)</span>, corresponding to the vector space over <span class="SimpleMath">\(F\)</span> generated by the vectors in <span class="SimpleMath">\(S\)</span>. Note that the set <span class="SimpleMath">\(S\)</span> can be obtained using <code class="file">UnderlyingObject</code>, see <a href="chap3_mj.html#X810D4D6D87069697"><span class="RefLink">3.2-2</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg := PG(3,5^5);</span>
ProjectiveSpace(3, 3125)
<span class="GAPprompt">gap></span> <span class="GAPinput">frame := RandomFrameOfProjectiveSpace(pg);</span>
[ <a point in ProjectiveSpace(3, 3125)>, <a point in ProjectiveSpace(3, 3125)>
, <a point in ProjectiveSpace(3, 3125)>,
<a point in ProjectiveSpace(3, 3125)>,
<a point in ProjectiveSpace(3, 3125)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">sub := SubgeometryOfProjectiveSpaceByFrame(pg,frame,5);</span>
Subgeometry PG(3, 5) of ProjectiveSpace(3, 3125)
<span class="GAPprompt">gap></span> <span class="GAPinput">p := Random(Points(sub));</span>
<a point in Subgeometry PG(3, 5) of ProjectiveSpace(3, 3125)>
<span class="GAPprompt">gap></span> <span class="GAPinput">l := Random(Lines(p));</span>
<a line in Subgeometry PG(3, 5) of ProjectiveSpace(3, 3125)>
<span class="GAPprompt">gap></span> <span class="GAPinput">p * l;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">q := ExtendElementOfSubgeometry(p);</span>
<a point in ProjectiveSpace(3, 3125)>
<span class="GAPprompt">gap></span> <span class="GAPinput">q * l;</span>
Error, <x> and <y> do not belong to the same geometry called from
x in y at ./pkg/fining/lib/projectivespace.gi:1658 called from
IsIncident( b, a ) at ./pkg/fining/lib/geometry.gi:439 called from
<function "unknown">( <arguments> )
called from read-eval loop at line 15 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
<span class="GAPbrkprompt">brk></span> <span class="GAPinput">quit;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">m := ExtendElementOfSubgeometry(l);</span>
<a line in ProjectiveSpace(3, 3125)>
<span class="GAPprompt">gap></span> <span class="GAPinput">q * m;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingObject(q) = UnderlyingObject(p);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">UnderlyingObject(l) = UnderlyingObject(m);</span>
true
</pre></div>
<p><a id="X799DB77886B8ABDB" name="X799DB77886B8ABDB"></a></p>
<h5>14.4-3 AmbientGeometry</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; AmbientGeometry</code>( <var class="Arg">el</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an incidence geometry</p>
<p>For <var class="Arg">el</var> an element of a subgeometry <span class="SimpleMath">\(P\)</span>, which is also a projective space, this operation returns <span class="SimpleMath">\(P\)</span>.</p>
<p><a id="X7B1757048405DD29" name="X7B1757048405DD29"></a></p>
<h5>14.4-4 <span class="Heading">Flags</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; FlagOfIncidenceStructure</code>( <var class="Arg">sub</var>, <var class="Arg">els</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">an style='color: green'>8227; IsEmptyFlag</code>( <var class="Arg">flag</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">an style='color: green'>8227; IsChamberOfIncidenceStructure</code>( <var class="Arg">flag</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: true or false</p>
<p>These operations are defined for projective spaces and so they are also applicable to subgeometries.</p>
<p><a id="X80503DDC8270EE69" name="X80503DDC8270EE69"></a></p>
<h4>14.5 <span class="Heading">Groups and actions</span></h4>
<p>Let <span class="SimpleMath">\(P'\)</span> be a subgeometry of <span class="SimpleMath">\(P\)</span>. Although one could argue that any semilinear map inducing a collineation preserving <span class="SimpleMath">\(P'\)</span> can be called a collineation of <span class="SimpleMath">\(P'\)</span>, this would cause problems with the nice monomorphism functionality, since such a collineation does not necessarily have a faithful action on the subgeometry. For this reason, we decided to define the collineation group of the subgeometry <span class="SimpleMath">\(P'\)</span> as the collineation group of the projective space isomorphic to <span class="SimpleMath">\(P'\)</span> conjugated by the collineation of <span class="SimpleMath">\(P\)</span> mapping <span class="SimpleMath">\(P'\)</span> on the canonical subgeometry of <span class="SimpleMath">\(P\)</span> over the same field as <span class="SimpleMath">\(P'\)</span>. Similarly, the projectivity group, respectively the special projectivity group, of <span class="SimpleMath">\(P'\)</span> is defined as the conjugate of the projectivity group, respectively special projectivity group, of the projective space isomorphic to <span class="SimpleMath">\(P'\)</span>.</p>
<p><a id="X78F858C8863C7721" name="X78F858C8863C7721"></a></p>
<h5>14.5-1 <span class="Heading">Groups of collineations</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; CollineationGroup</code>( <var class="Arg">sub</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">an style='color: green'>8227; ProjectivityGroup</code>( <var class="Arg">sub</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">an style='color: green'>8227; SpecialProjectivityGroup</code>( <var class="Arg">sub</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a group of collineations</p>
<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap13_mj.html">[Previous Chapter]</a> <a href="chapA_mj.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chap11_mj.html">11</a> <a href="chap12_mj.html">12</a> <a href="chap13_mj.html">13</a> <a href="chap14_mj.html">14</a> <a href="chapA_mj.html">A</a> <a href="chapB_mj.html">B</a> <a href="chapC_mj.html">C</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.30 Sekunden
¤
*© Formatika GbR, Deutschland
|
|