Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek chap11.html   Sprache: HTML

 
 products/sources/formale Sprachen/GAP/pkg/fining/doc/chap11.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 11: Algebraic Varieties</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="chap11"  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="chap10.html">[Previous Chapter]</a>    <a href="chap12.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap11_mj.html">[MathJax on]</a></p>
<p><a id="X87EC44BF7F24486E" name="X87EC44BF7F24486E"></a></p>
<div class="ChapSects"><a href="chap11.html#X87EC44BF7F24486E">11 <span class="Heading">Algebraic Varieties</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X87EC44BF7F24486E">11.1 <span class="Heading">Algebraic Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X85B05D0385B6032A">11.1-1 AlgebraicVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7D9C2FA47BCDEBDB">11.1-2 DefiningListOfPolynomials</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X8606750A8586DF8D">11.1-3 AmbientSpace</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X86605DF87C562635">11.1-4 PointsOfAlgebraicVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X83ADF8287ED0668E">11.1-5 Iterator</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X87BDB89B7AAFE8AD"><code>11.1-6 \in</code></a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X79EC6F8381337C08">11.2 <span class="Heading">Projective Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X83D5414481C9E1D0">11.2-1 ProjectiveVariety</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X8030D25C79C50847">11.3 <span class="Heading">Quadrics and Hermitian varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7E233D1979CEB18B">11.3-1 HermitianVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X850EDF127B1A2C4D">11.3-2 QuadraticVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X8421249486CEE1A0">11.3-3 QuadraticForm</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X793BE1A27BF349F3">11.3-4 SesquilinearForm</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X863BC8E57C98A471">11.3-5 PolarSpace</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X82BE5DEE843F5490">11.4 <span class="Heading">Affine Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7A0D03A37AEF48B3">11.4-1 AffineVariety</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X862822D57D48DD8E">11.5 <span class="Heading">Geometry maps</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7DE8173F80E07AB1">11.5-1 Source</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X829F76BB80BD55DB">11.5-2 Range</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7CFAB0157BFB1806">11.5-3 ImageElm</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X8781348F7F5796A0">11.5-4 ImagesSet</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7D21FB1A7D21FB1A"><code>11.5-5 \^</code></a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X81374CC57CA01150">11.6 <span class="Heading">Segre Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7F3EBD5487340078">11.6-1 SegreVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X82AD64F47B418E4F">11.6-2 PointsOfSegreVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7B7DDDA17837AEF5">11.6-3 SegreMap</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7DE8173F80E07AB1">11.6-4 Source</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X8759309A83991AB7">11.7 <span class="Heading">Veronese Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X85CBADAD7A18BB19">11.7-1 VeroneseVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X78420B3B8031C6D0">11.7-2 PointsOfVeroneseVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X816B9AB287EEF9A5">11.7-3 VeroneseMap</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7DE8173F80E07AB1">11.7-4 Source</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap11.html#X7B4A786B7EA1388C">11.8 <span class="Heading">Grassmann Varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X81872E5D843373C8">11.8-1 GrassmannVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X82572EA68327F857">11.8-2 PointsOfGrassmannVariety</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7C6ED0B284833878">11.8-3 GrassmannMap</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap11.html#X7DE8173F80E07AB1">11.8-4 Source</a></span>
</div></div>
</div>

<h3>11 <span class="Heading">Algebraic Varieties</span></h3>

<p>In <strong class="pkg">FinInG</strong> we provide some basic functionality for algebraic varieties defined over finite fields. The algebraic varieties in <strong class="pkg">FinInG</strong> are defined by a list of multivariate polynomials over a finite field, and an ambient geometry. This ambient geometry is either a projective space, and then the algebraic variety is called a <em>projective variety</em>, or an affine geometry, and then the algebraic variety is called an <em>affine variety</em>. In this chapter we give a brief overview of the features of <strong class="pkg">FinInG</strong> concerning these two types of algebraic varieties. The package <strong class="pkg">FinInG</strong> also contains the Veronese varieties <code class="func">VeroneseVariety</code> (<a href="chap11.html#X85CBADAD7A18BB19"><span class="RefLink">11.7-1</span></a>), the Segre varieties <code class="func">SegreVariety</code> (<a href="chap11.html#X7F3EBD5487340078"><span class="RefLink">11.6-1</span></a>) and the Grassmann varieties <code class="func">GrassmannVariety</code> (<a href="chap11.html#X81872E5D843373C8"><span class="RefLink">11.8-1</span></a>); three classical projective varieties. These varieties have an associated <em>geometry map</em> (the <code class="func">VeroneseMap</code> (<a href="chap11.html#X816B9AB287EEF9A5"><span class="RefLink">11.7-3</span></a>), <code class="func">SegreMap</code> (<a href="chap11.html#X7B7DDDA17837AEF5"><span class="RefLink">11.6-3</span></a>) and <code class="func">GrassmannMap</code> (<a href="chap11.html#X7C6ED0B284833878"><span class="RefLink">11.8-3</span></a>)) and <strong class="pkg">FinInG</strong> also provides some general functionality for these.</p>

<p><a id="X87EC44BF7F24486E" name="X87EC44BF7F24486E"></a></p>

<h4>11.1 <span class="Heading">Algebraic Varieties</span></h4>

<p>An <em>algebraic variety</em> in <strong class="pkg">FinInG</strong> is an algebraic variety in a projective space or affine space, defined by a list of polynomials over a finite field.</p>

<p><a id="X85B05D0385B6032A" name="X85B05D0385B6032A"></a></p>

<h5>11.1-1 AlgebraicVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AlgebraicVariety</code>( <var class="Arg">space</var>, <var class="Arg">pring</var>, <var class="Arg">pollist</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">‣ AlgebraicVariety</code>( <var class="Arg">space</var>, <var class="Arg">pollist</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an algebraic variety</p>

<p>The argument <var class="Arg">space</var> is an affine or projective space over a finite field <var class="Arg">F</var>, the argument <var class="Arg">pring</var> is a multivariate polynomial ring defined over (a subfield of) <var class="Arg">F</var>, and <var class="Arg">pollist</var> is a list of polynomials in <var class="Arg">pring</var>. If the <var class="Arg">space</var> is a projective space, then <var class="Arg">pollist</var> needs to be a list of homogeneous polynomials. In <strong class="pkg">FinInG</strong> there are two types of projective varieties: projective varieties and affine varieties. The following operations apply to both types.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GF(9);</span>
GF(3^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(F,4);</span>
GF(3^2)[x_1,x_2,x_3,x_4]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(3,9);</span>
ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">f1:=r.1*r.3-r.2^2;</span>
x_1*x_3-x_2^2
<span class="GAPprompt">gap></span> <span class="GAPinput">f2:=r.4*r.1^2-r.4^3;</span>
x_1^2*x_4-x_4^3
<span class="GAPprompt">gap></span> <span class="GAPinput">var:=AlgebraicVariety(pg,[f1,f2]);</span>
Projective Variety in ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">DefiningListOfPolynomials(var);</span>
[ x_1*x_3-x_2^2, x_1^2*x_4-x_4^3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientSpace(var);</span>
ProjectiveSpace(3, 9)
 
</pre></div>

<p><a id="X7D9C2FA47BCDEBDB" name="X7D9C2FA47BCDEBDB"></a></p>

<h5>11.1-2 DefiningListOfPolynomials</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefiningListOfPolynomials</code>( <var class="Arg">var</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a list of polynomials</p>

<p>The argument <var class="Arg">var</var> is an algebraic variety. This attribute returns the list of polynomials that was used to define the variety <var class="Arg">var</var>.</p>

<p><a id="X8606750A8586DF8D" name="X8606750A8586DF8D"></a></p>

<h5>11.1-3 AmbientSpace</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AmbientSpace</code>( <var class="Arg">var</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: an affine or projective space</p>

<p>The argument <var class="Arg">var</var> is an algebraic variety. This attribute returns the affine or projective space in which the variety <var class="Arg">var</var> was defined.</p>

<p><a id="X86605DF87C562635" name="X86605DF87C562635"></a></p>

<h5>11.1-4 PointsOfAlgebraicVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PointsOfAlgebraicVariety</code>( <var class="Arg">var</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">‣ Points</code>( <var class="Arg">var</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a list of points</p>

<p>The argument <var class="Arg">var</var> is an algebraic variety. This operation returns the list of points of the <code class="func">AmbientSpace</code> (<a href="chap11.html#X8606750A8586DF8D"><span class="RefLink">11.1-3</span></a>) of the algebraic variety <var class="Arg">var</var> whose coordinates satisfy the <code class="func">DefiningListOfPolynomials</code> (<a href="chap11.html#X7D9C2FA47BCDEBDB"><span class="RefLink">11.1-2</span></a>) of the algebraic variety <var class="Arg">var</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GF(9);</span>
GF(3^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(F,4);</span>
GF(3^2)[x_1,x_2,x_3,x_4]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(3,9);</span>
ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">f1:=r.1*r.3-r.2^2;</span>
x_1*x_3-x_2^2
<span class="GAPprompt">gap></span> <span class="GAPinput">f2:=r.4*r.1^2-r.4^3;</span>
x_1^2*x_4-x_4^3
<span class="GAPprompt">gap></span> <span class="GAPinput">var:=AlgebraicVariety(pg,[f1,f2]);</span>
Projective Variety in ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">points:=Points(var);</span>
<points of Projective Variety in ProjectiveSpace(3, 9)>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(points);</span>
28
<span class="GAPprompt">gap></span> <span class="GAPinput">iter := Iterator(points);</span>
<iterator>
<span class="GAPprompt">gap></span> <span class="GAPinput">for i in [1..4] do</span>
<span class="GAPprompt">></span> <span class="GAPinput"> x := NextIterator(iter);</span>
<span class="GAPprompt">></span> <span class="GAPinput"> Display(x);</span>
<span class="GAPprompt">></span> <span class="GAPinput">od;</span>
[1...]
[1..1]
[1..2]
[111.]
 
</pre></div>

<p><a id="X83ADF8287ED0668E" name="X83ADF8287ED0668E"></a></p>

<h5>11.1-5 Iterator</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Iterator</code>( <var class="Arg">pts</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an iterator</p>

<p>The argument <var class="Arg">pts</var> is the set of <code class="func">PointsOfAlgebraicVariety</code> (<a href="chap11.html#X86605DF87C562635"><span class="RefLink">11.1-4</span></a>) of an algebraic variety <var class="Arg">var</var>. This operation returns an iterator for the points of an algebraic variety.</p>

<p><a id="X87BDB89B7AAFE8AD" name="X87BDB89B7AAFE8AD"></a></p>

<h5><code>11.1-6 \in</code></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ \in</code>( <var class="Arg">x</var>, <var class="Arg">var</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">‣ \in</code>( <var class="Arg">x</var>, <var class="Arg">pts</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: true or false</p>

<p>The argument <var class="Arg">x</var> is a point of the <code class="func">AmbientSpace</code> (<a href="chap11.html#X8606750A8586DF8D"><span class="RefLink">11.1-3</span></a>) of an algebraic variety <code class="func">AlgebraicVariety</code> (<a href="chap11.html#X85B05D0385B6032A"><span class="RefLink">11.1-1</span></a>). This operation also works for a point <var class="Arg">x</var> and the collection <var class="Arg">pts</var> returned by <code class="func">PointsOfAlgebraicVariety</code> (<a href="chap11.html#X86605DF87C562635"><span class="RefLink">11.1-4</span></a>).</p>

<p><a id="X79EC6F8381337C08" name="X79EC6F8381337C08"></a></p>

<h4>11.2 <span class="Heading">Projective Varieties</span></h4>

<p>A <em>projective variety</em> in <strong class="pkg">FinInG</strong> is an algebraic variety in a projective space defined by a list of homogeneous polynomials over a finite field.</p>

<p><a id="X83D5414481C9E1D0" name="X83D5414481C9E1D0"></a></p>

<h5>11.2-1 ProjectiveVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectiveVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pring</var>, <var class="Arg">pollist</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">‣ ProjectiveVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pollist</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">‣ AlgebraicVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pring</var>, <var class="Arg">pollist</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">‣ AlgebraicVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pollist</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a projective algebraic variety</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GF(9);</span>
GF(3^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(F,4);</span>
GF(3^2)[x_1,x_2,x_3,x_4]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(3,9);</span>
ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">f1:=r.1*r.3-r.2^2;</span>
x_1*x_3-x_2^2
<span class="GAPprompt">gap></span> <span class="GAPinput">f2:=r.4*r.1^2-r.4^3;</span>
x_1^2*x_4-x_4^3
<span class="GAPprompt">gap></span> <span class="GAPinput">var:=AlgebraicVariety(pg,[f1,f2]);</span>
Projective Variety in ProjectiveSpace(3, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">DefiningListOfPolynomials(var);</span>
[ x_1*x_3-x_2^2, x_1^2*x_4-x_4^3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AmbientSpace(var);</span>
ProjectiveSpace(3, 9)
 
        </pre></div>

<p><a id="X8030D25C79C50847" name="X8030D25C79C50847"></a></p>

<h4>11.3 <span class="Heading">Quadrics and Hermitian varieties</span></h4>

<p>Quadrics (<code class="func">QuadraticVariety</code> (<a href="chap11.html#X850EDF127B1A2C4D"><span class="RefLink">11.3-2</span></a>)) and Hermitian varieties (<code class="func">HermitianVariety</code> (<a href="chap11.html#X7E233D1979CEB18B"><span class="RefLink">11.3-1</span></a>)) are projective varieties that have the associated quadratic or hermitian form as an extra attribute installed. Furthermore, we provide a method for <code class="file">PolarSpace</code> taking as an argument a projective algebraic variety.</p>

<p><a id="X7E233D1979CEB18B" name="X7E233D1979CEB18B"></a></p>

<h5>11.3-1 HermitianVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HermitianVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pring</var>, <var class="Arg">pol</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">‣ HermitianVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pol</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">‣ HermitianVariety</code>( <var class="Arg">n</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">‣ HermitianVariety</code>( <var class="Arg">n</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a hermitian variety in a projective space</p>

<p>For the first two methods, the argument <var class="Arg">pg</var> is a projective space, <var class="Arg">pring</var> is a polynomial ring, and <var class="Arg">pol</var> is polynomial. For the third and fourth variations, the argument <var class="Arg">n</var> is an integer, the argument <var class="Arg">F</var> is a finite field, and the argument <var class="Arg">q</var> is a prime power. These variations of the operation return the hermitian variety associated to the standard hermitian form in the projective space of dimension <span class="SimpleMath">n</span> over the field <span class="SimpleMath">F</span> of order <span class="SimpleMath">q</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GF(25);</span>
GF(5^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(F,3);</span>
GF(5^2)[x_1,x_2,x_3]
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=IndeterminatesOfPolynomialRing(r);</span>
[ x_1, x_2, x_3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(2,F);</span>
ProjectiveSpace(2, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=x[1]^6+x[2]^6+x[3]^6;</span>
x_1^6+x_2^6+x_3^6
<span class="GAPprompt">gap></span> <span class="GAPinput">hv:=HermitianVariety(pg,f);</span>
Hermitian Variety in ProjectiveSpace(2, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">AsSet(List(Lines(pg),l->Size(Filtered(Points(l),x->x in hv))));</span>
[ 1, 6 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">hv:=HermitianVariety(5,4);</span>
Hermitian Variety in ProjectiveSpace(5, 4)
<span class="GAPprompt">gap></span> <span class="GAPinput">hps:=PolarSpace(hv);</span>
<polar space in ProjectiveSpace(
5,GF(2^2)): x_1^3+x_2^3+x_3^3+x_4^3+x_5^3+x_6^3=0 >
<span class="GAPprompt">gap></span> <span class="GAPinput">hf:=SesquilinearForm(hv);</span>
< hermitian form >
<span class="GAPprompt">gap></span> <span class="GAPinput">PolynomialOfForm(hf);</span>
x_1^3+x_2^3+x_3^3+x_4^3+x_5^3+x_6^3
 
</pre></div>

<p><a id="X850EDF127B1A2C4D" name="X850EDF127B1A2C4D"></a></p>

<h5>11.3-2 QuadraticVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ QuadraticVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pring</var>, <var class="Arg">pol</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">‣ QuadraticVariety</code>( <var class="Arg">pg</var>, <var class="Arg">pol</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">‣ QuadraticVariety</code>( <var class="Arg">n</var>, <var class="Arg">F</var>, <var class="Arg">type</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">‣ QuadraticVariety</code>( <var class="Arg">n</var>, <var class="Arg">q</var>, <var class="Arg">type</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">‣ QuadraticVariety</code>( <var class="Arg">n</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">‣ QuadraticVariety</code>( <var class="Arg">n</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a quadratic variety in a projective space</p>

<p>In the first two methods, the argument <var class="Arg">pg</var> is a projective space, <var class="Arg">pring</var> is a polynomial ring, and <var class="Arg">pol</var> is a polynomial. The latter four return a standard non-degenerate quadric. The argument <var class="Arg">n</var> is a projective dimension, <var class="Arg">F</var> is a field, and <var class="Arg">q</var> is a prime power that gives just the order of the defining field. If the <var class="Arg">type</var> is given, then it will return a quadric of a particular type as follows:</p>

<div class="pcenter"><table class="GAPDocTable">
<caption class="GAPDocTable"><b>Table: </b>standard quadratic varieties</caption>
<tr>
<td class="tdleft">variety</td>
<td class="tdleft">standard form</td>
<td class="tdleft">characteristic <span class="SimpleMath">p</span></td>
<td class="tdleft">proj. dim.</td>
<td class="tdleft">type</td>
</tr>
<tr>
<td class="tdleft">hyperbolic quadric</td>
<td class="tdleft">X<sub>0</sub> X<sub>1</sub> + ... + X<sub>n-1</sub>X<sub>n</sub></td>
<td class="tdleft">p ≡ 3 mod 4 or p=2</td>
<td class="tdleft">odd</td>
<td class="tdleft">"hyperbolic""+", or "1"</td>
</tr>
<tr>
<td class="tdleft">hyperbolic quadric</td>
<td class="tdleft">2(X<sub>0</sub> X<sub>1</sub> + ... + X<sub>n-1</sub>X<sub>n</sub> )</td>
<td class="tdleft">p ≡ 1 mod 4</td>
<td class="tdleft">odd</td>
<td class="tdleft">"hyperbolic""+", or "1"</td>
</tr>
<tr>
<td class="tdleft">parabolic quadric</td>
<td class="tdleft">X<sub>0</sub><sup>2</sup> + X<sub>1</sub> X<sub>2</sub> + ... + X<sub>n-1</sub>X<sub>n</sub></td>
<td class="tdleft">p ≡ 1,3 mod 8 or <span class="SimpleMath">p=2</span></td>
<td class="tdleft">even</td>
<td class="tdleft">"parabolic""o", or "0"</td>
</tr>
<tr>
<td class="tdleft">parabolic quadric</td>
<td class="tdleft">t(X<sub>0</sub><sup>2</sup> + X<sub>1</sub> X<sub>2</sub> + ... + X<sub>n-1</sub>X<sub>n</sub>), <span class="SimpleMath">t</span> a primitive element of <span class="SimpleMath">GF(p)</span></td>
<td class="tdleft">p ≡ 5,7 mod 8</td>
<td class="tdleft">even</td>
<td class="tdleft">"parabolic""o", or "0"</td>
</tr>
<tr>
<td class="tdleft">elliptic quadric</td>
<td class="tdleft">X<sub>0</sub><sup>2</sup> + X<sub>1</sub><sup>2</sup> + X<sub>2</sub> X<sub>3</sub> + ... + X<sub>n-1</sub>X<sub>n</sub></td>
<td class="tdleft">p ≡ 3 mod 4</td>
<td class="tdleft">odd</td>
<td class="tdleft">"elliptic""-", or "-1"</td>
</tr>
<tr>
<td class="tdleft">elliptic quadric</td>
<td class="tdleft">X<sub>0</sub><sup>2</sup> + tX<sub>1</sub><sup>2</sup> + X<sub>2</sub> X<sub>3</sub> + ... + X<sub>n-1</sub>X<sub>n</sub>, <span class="SimpleMath">t</span> a primitive element of GF(p)</td>
<td class="tdleft">p ≡ 1 mod 4</td>
<td class="tdleft">odd</td>
<td class="tdleft">"elliptic""-", or "-1"</td>
</tr>
<tr>
<td class="tdleft">elliptic quadric</td>
<td class="tdleft">X<sub>0</sub><sup>2</sup> + X<sub>0</sub>X<sub>1</sub> + d X<sub>1</sub><sup>2</sup> + X<sub>2</sub> X<sub>3</sub> + ... + X<sub>n-1</sub>X<sub>n</sub> , Tr(d) = 1</td>
<td class="tdleft">even</td>
<td class="tdleft">odd</td>
<td class="tdleft">"elliptic""-", or "-1"</td>
</tr>
</table><br />
</div>

<p>If no type is given, and only the dimension and field/field order are given, then it is assumed that the dimension is even and the user wants a standard parabolic quadric.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">F:=GF(5);</span>
GF(5)
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(F,4);</span>
GF(5)[x_1,x_2,x_3,x_4]
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=IndeterminatesOfPolynomialRing(r);</span>
[ x_1, x_2, x_3, x_4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(3,F);</span>
ProjectiveSpace(3, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">Q:=x[2]*x[3]+x[4]^2;</span>
x_2*x_3+x_4^2
<span class="GAPprompt">gap></span> <span class="GAPinput">qv:=QuadraticVariety(pg,Q);</span>
Quadratic Variety in ProjectiveSpace(3, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">AsSet(List(Planes(pg),z->Size(Filtered(Points(z),x->x in qv))));</span>
[ 1, 6, 11 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">qf:=QuadraticForm(qv);</span>
< quadratic form >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(qf);</span>
Quadratic form
Gram Matrix:
 . . . .
 . . 1 .
 . . . .
 . . . 1
Polynomial: [ [  x_2*x_3+x_4^2 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">IsDegenerateForm(qf);</span>
#I  Testing degeneracy of the *associated bilinear form*
true
<span class="GAPprompt">gap></span> <span class="GAPinput">qv:=QuadraticVariety(3,F,"-");</span>
Quadratic Variety in ProjectiveSpace(3, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">PolarSpace(qv);</span>
<polar space in ProjectiveSpace(3,GF(5)): x_1^2+Z(5)*x_2^2+x_3*x_4=0 >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(last);</span>
<polar space of rank 3 over GF(5)>
Non-singular elliptic quadratic form
Gram Matrix:
 1 . . .
 . 2 . .
 . . . 1
 . . . .
Polynomial: [ [  x_1^2+Z(5)*x_2^2+x_3*x_4 ] ]
Witt Index: 1
Bilinear form
Gram Matrix:
 2 . . .
 . 4 . .
 . . . 1
 . . 1 .
<span class="GAPprompt">gap></span> <span class="GAPinput">qv:=QuadraticVariety(3,F,"+");</span>
Quadratic Variety in ProjectiveSpace(3, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(last);</span>
Quadratic Variety in ProjectiveSpace(3, 5)
 Polynomial: [ Z(5)*x_1*x_2+Z(5)*x_3*x_4 ]
 
</pre></div>

<p><a id="X8421249486CEE1A0" name="X8421249486CEE1A0"></a></p>

<h5>11.3-3 QuadraticForm</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ QuadraticForm</code>( <var class="Arg">var</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a quadratic form</p>

<p>When the argument <var class="Arg">var</var> is a <code class="func">QuadraticVariety</code> (<a href="chap11.html#X850EDF127B1A2C4D"><span class="RefLink">11.3-2</span></a>), this returns the associated quadratic form.</p>

<p><a id="X793BE1A27BF349F3" name="X793BE1A27BF349F3"></a></p>

<h5>11.3-4 SesquilinearForm</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SesquilinearForm</code>( <var class="Arg">var</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: a hermitian form</p>

<p>If the argument <var class="Arg">var</var> is a <code class="func">HermitianVariety</code> (<a href="chap11.html#X7E233D1979CEB18B"><span class="RefLink">11.3-1</span></a>), this returns the associated hermitian form.</p>

<p><a id="X863BC8E57C98A471" name="X863BC8E57C98A471"></a></p>

<h5>11.3-5 PolarSpace</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PolarSpace</code>( <var class="Arg">var</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>the argument <var class="Arg">var</var> is a projective algebraic variety. When its list of defining polynomial contains exactly one polynomial, depending on its degree, the operation <code class="file">QuadraticFormByPolynomial</code> or <code class="file">HermitianFormByPolynomial</code> is used to compute a quadratic form or a hermitian form. These operations check whether this is possible, and produce an error message if not. If the conversion is possible, then the appropriate polar space is returned.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := GF(25);</span>
GF(5^2)
<span class="GAPprompt">gap></span> <span class="GAPinput">r := PolynomialRing(f,4);</span>
GF(5^2)[x_1,x_2,x_3,x_4]
<span class="GAPprompt">gap></span> <span class="GAPinput">ind := IndeterminatesOfPolynomialRing(r);</span>
[ x_1, x_2, x_3, x_4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">eq1 := Sum(List(ind,t->t^2));</span>
x_1^2+x_2^2+x_3^2+x_4^2
<span class="GAPprompt">gap></span> <span class="GAPinput">var := ProjectiveVariety(PG(3,f),[eq1]);   </span>
Projective Variety in ProjectiveSpace(3, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">PolarSpace(var);</span>
<polar space in ProjectiveSpace(3,GF(5^2)): x_1^2+x_2^2+x_3^2+x_4^2=0 >
<span class="GAPprompt">gap></span> <span class="GAPinput">eq2 := Sum(List(ind,t->t^4));</span>
x_1^4+x_2^4+x_3^4+x_4^4
<span class="GAPprompt">gap></span> <span class="GAPinput">var := ProjectiveVariety(PG(3,f),[eq2]);</span>
Projective Variety in ProjectiveSpace(3, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">PolarSpace(var);</span>
Error, <poly> does not generate a Hermitian matrix called from
GramMatrixByPolynomialForHermitianForm( pol, gf, n, vars ) called from
HermitianFormByPolynomial( pol, pring, n ) called from
HermitianFormByPolynomial( eq, r ) called from
<function "unknown">( <arguments> )
 called from read-eval loop at line 16 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">eq3 := Sum(List(ind,t->t^6));</span>
x_1^6+x_2^6+x_3^6+x_4^6
<span class="GAPprompt">gap></span> <span class="GAPinput">var := ProjectiveVariety(PG(3,f),[eq3]);</span>
Projective Variety in ProjectiveSpace(3, 25)
<span class="GAPprompt">gap></span> <span class="GAPinput">PolarSpace(var);</span>
<polar space in ProjectiveSpace(3,GF(5^2)): x_1^6+x_2^6+x_3^6+x_4^6=0 >
 
</pre></div>

<p><a id="X82BE5DEE843F5490" name="X82BE5DEE843F5490"></a></p>

<h4>11.4 <span class="Heading">Affine Varieties</span></h4>

<p>An <em>affine variety</em> in <strong class="pkg">FinInG</strong> is an algebraic variety in an affine space defined by a list of polynomials over a finite field.</p>

<p><a id="X7A0D03A37AEF48B3" name="X7A0D03A37AEF48B3"></a></p>

<h5>11.4-1 AffineVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AffineVariety</code>( <var class="Arg">ag</var>, <var class="Arg">pring</var>, <var class="Arg">pollist</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">‣ AffineVariety</code>( <var class="Arg">ag</var>, <var class="Arg">pollist</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">‣ AlgebraicVariety</code>( <var class="Arg">ag</var>, <var class="Arg">pring</var>, <var class="Arg">pollist</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">‣ AlgebraicVariety</code>( <var class="Arg">ag</var>, <var class="Arg">pollist</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: an affine algebraic variety</p>

<p>The argument <var class="Arg">ag</var> is an affine space over a finite field <var class="Arg">F</var>, the argument <var class="Arg">pring</var> is a multivariate polynomial ring defined over (a subfield of) <var class="Arg">F</var>, and <var class="Arg">pollist</var> is a list of polynomials in <var class="Arg">pring</var>.</p>

<p><a id="X862822D57D48DD8E" name="X862822D57D48DD8E"></a></p>

<h4>11.5 <span class="Heading">Geometry maps</span></h4>

<p>A <var class="Arg">geometry map</var> is a map from a set of elements of a geometry to a set of elements of another geometry, which is not necessarily a geometry morphism. Examples are the <code class="func">SegreMap</code> (<a href="chap11.html#X7B7DDDA17837AEF5"><span class="RefLink">11.6-3</span></a>), the <code class="func">VeroneseMap</code> (<a href="chap11.html#X816B9AB287EEF9A5"><span class="RefLink">11.7-3</span></a>), and the <code class="func">GrassmannMap</code> (<a href="chap11.html#X7C6ED0B284833878"><span class="RefLink">11.8-3</span></a>).</p>

<p><a id="X7DE8173F80E07AB1" name="X7DE8173F80E07AB1"></a></p>

<h5>11.5-1 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</code>( <var class="Arg">gm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the source of a geometry map</p>

<p>The argument <var class="Arg">gm</var> is a geometry map.</p>

<p><a id="X829F76BB80BD55DB" name="X829F76BB80BD55DB"></a></p>

<h5>11.5-2 Range</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Range</code>( <var class="Arg">gm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the range of a geometry map</p>

<p>The argument <var class="Arg">gm</var> is a geometry map.</p>

<p><a id="X7CFAB0157BFB1806" name="X7CFAB0157BFB1806"></a></p>

<h5>11.5-3 ImageElm</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImageElm</code>( <var class="Arg">gm</var>, <var class="Arg">x</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the image of an element under a geometry map</p>

<p>The argument <var class="Arg">gm</var> is a geometry map, the element <var class="Arg">x</var> is an element of the <code class="func">Source</code> (<a href="chap11.html#X7DE8173F80E07AB1"><span class="RefLink">11.5-1</span></a>) of the geometry map <var class="Arg">gm</var>.</p>

<p><a id="X8781348F7F5796A0" name="X8781348F7F5796A0"></a></p>

<h5>11.5-4 ImagesSet</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImagesSet</code>( <var class="Arg">gm</var>, <var class="Arg">elms</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the image of a subset of the source under a geometry map</p>

<p>The argument <var class="Arg">gm</var> is a geometry map, the elements <var class="Arg">elms</varis a subset of the <code class="func">Source</code> (<a href="chap11.html#X7DE8173F80E07AB1"><span class="RefLink">11.5-1</span></a>) of the geometry map <var class="Arg">gm</var>.</p>

<p><a id="X7D21FB1A7D21FB1A" name="X7D21FB1A7D21FB1A"></a></p>

<h5><code>11.5-5 \^</code></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ \^</code>( <var class="Arg">x</var>, <var class="Arg">gm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the image of an element of the source under a geometry map</p>

<p>The argument <var class="Arg">gm</var> is a geometry map, the element <var class="Arg">x</var> is an element of the <code class="func">Source</code> (<a href="chap11.html#X7DE8173F80E07AB1"><span class="RefLink">11.5-1</span></a>) of the geometry map <var class="Arg">gm</var>.</p>

<p><a id="X81374CC57CA01150" name="X81374CC57CA01150"></a></p>

<h4>11.6 <span class="Heading">Segre Varieties</span></h4>

<p>A <em>Segre variety</em> in <strong class="pkg">FinInG</strong> is a projective algebraic variety in a projective space over a finite field. The set of points that lie on this variety is the image of the <em>Segre map</em>.</p>

<p><a id="X7F3EBD5487340078" name="X7F3EBD5487340078"></a></p>

<h5>11.6-1 SegreVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SegreVariety</code>( <var class="Arg">listofpgs</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">‣ SegreVariety</code>( <var class="Arg">listofdims</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">‣ SegreVariety</code>( <var class="Arg">pg1</var>, <var class="Arg">pg2</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">‣ SegreVariety</code>( <var class="Arg">d1</var>, <var class="Arg">d2</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">‣ SegreVariety</code>( <var class="Arg">d1</var>, <var class="Arg">d2</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a Segre variety</p>

<p>The argument <var class="Arg">listofpgs</var> is a list of projective spaces defined over the same finite field, say [PG(n<sub>1 </sub>-1,q), PG(n<sub>2 </sub>-1,q), ..., PG(n<sub>k </sub>-1,q)]. The operation also takes as input the list of dimensions (<var class="Arg">listofdims</var>) and a finite field <var class="Arg">field</var> (e.g. [n<sub>1</sub>, n<sub>2</sub>, ..., n<sub>k</sub>,GF(q)]). A Segre variety with only two factors (<span class="SimpleMath">k=2</span>), can also be constructed using the operation with two projective spaces <var class="Arg">pg1</var> and <var class="Arg">pg2</var> as arguments, or with two dimensions <var class="Arg">d1</var>, <var class="Arg">d2</var>, and a finite field <var class="Arg">field</var>(or a prime power <var class="Arg">q</var>). The operation returns a projective algebraic variety in the projective space of dimension n<sub>1</sub> n<sub>2</sub> ... n<sub>k</sub>-1.</p>

<p><a id="X82AD64F47B418E4F" name="X82AD64F47B418E4F"></a></p>

<h5>11.6-2 PointsOfSegreVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PointsOfSegreVariety</code>( <var class="Arg">sv</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">‣ Points</code>( <var class="Arg">sv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the points of a Segre variety</p>

<p>The argument <var class="Arg">sv</var> is a Segre variety. This operation returns a set of points of the <code class="func">AmbientSpace</code> (<a href="chap11.html#X8606750A8586DF8D"><span class="RefLink">11.1-3</span></a>) of the Segre variety. This set of points corresponds to the image of the <code class="func">SegreMap</code> (<a href="chap11.html#X7B7DDDA17837AEF5"><span class="RefLink">11.6-3</span></a>).</p>

<p><a id="X7B7DDDA17837AEF5" name="X7B7DDDA17837AEF5"></a></p>

<h5>11.6-3 SegreMap</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SegreMap</code>( <var class="Arg">listofpgs</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">‣ SegreMap</code>( <var class="Arg">listofdims</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">‣ SegreMap</code>( <var class="Arg">pg1</var>, <var class="Arg">pg2</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">‣ SegreMap</code>( <var class="Arg">d1</var>, <var class="Arg">d2</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">‣ SegreMap</code>( <var class="Arg">d1</var>, <var class="Arg">d2</var>, <var class="Arg">q</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">‣ SegreMap</code>( <var class="Arg">sv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a geometry map</p>

<p>The argument <var class="Arg">listofpgs</var> is a list of projective spaces defined over the same finite field, say [PG(n<sub>1 </sub>-1,q), PG(n<sub>2 </sub>-1,q), ..., PG(n<sub>k </sub>-1,q)]. The operation also takes as input the list of dimensions (<var class="Arg">listofdims</var>) and a finite field <var class="Arg">field</var> (e.g. [n<sub>1</sub>, n<sub>2</sub>, ..., n<sub>k</sub>,GF(q)]). A Segre map with only two factors (<span class="SimpleMath">k=2</span>), can also be constructed using the operation with two projective spaces <var class="Arg">pg1</var> and <var class="Arg">pg2</varas arguments, or with two dimensions <var class="Arg">d1</var>, <var class="Arg">d2</var>, and a finite field <var class="Arg">field</var>(or a prime power <var class="Arg">q</var>). The operation returns a function with domain the product of the point sets of projective spaces in the list [PG(n<sub>1 </sub>-1,q), PG(n<sub>2 </sub>-1,q), ..., PG(n<sub>k </sub>-1,q)] and image the set of points of the Segre variety (<code class="func">PointsOfSegreVariety</code> (<a href="chap11.html#X82AD64F47B418E4F"><span class="RefLink">11.6-2</span></a>)) in the projective space of dimension n<sub>1</sub> n<sub>2</sub> ... n<sub>k</sub>-1. When a Segre variety <var class="Arg">sv</var> is given as input, the operation returns the associated Segre map.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">sv:=SegreVariety(2,2,9);</span>
Segre Variety in ProjectiveSpace(8, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">sm:=SegreMap(sv);</span>
Segre Map of [ <points of ProjectiveSpace(2, 9)>, 
  <points of ProjectiveSpace(2, 9)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">cart1:=Cartesian(Points(PG(2,9)),Points(PG(2,9)));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">im1:=ImagesSet(sm,cart1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Span(im1);</span>
ProjectiveSpace(8, 9)
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=Random(Lines(PG(2,9)));</span>
<a line in ProjectiveSpace(2, 9)>
<span class="GAPprompt">gap></span> <span class="GAPinput">cart2:=Cartesian(Points(l),Points(PG(2,9)));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">im2:=ImagesSet(sm,cart2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Span(im2);</span>
<a proj. 5-space in ProjectiveSpace(8, 9)>
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=Random(Points(PG(2,9)));</span>
<a point in ProjectiveSpace(2, 9)>
<span class="GAPprompt">gap></span> <span class="GAPinput">cart3:=Cartesian(Points(PG(2,9)),Points(x));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">im3:=ImagesSet(sm,cart3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">pi:=Span(im3);</span>
<a plane in ProjectiveSpace(8, 9)>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsSet(List(Points(pi),y->y in sv));</span>
[ true ]

</pre></div>

<p><a id="X7DE8173F80E07AB1" name="X7DE8173F80E07AB1"></a></p>

<h5>11.6-4 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</code>( <var class="Arg">sm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the source of a Segre map</p>

<p>The argument <var class="Arg">sm</var> is a <code class="func">SegreMap</code> (<a href="chap11.html#X7B7DDDA17837AEF5"><span class="RefLink">11.6-3</span></a>). This operation returns the cartesian product of the list consisting of the pointsets of the projective spaces that were used to construct the <code class="func">SegreMap</code> (<a href="chap11.html#X7B7DDDA17837AEF5"><span class="RefLink">11.6-3</span></a>).</p>

<p><a id="X8759309A83991AB7" name="X8759309A83991AB7"></a></p>

<h4>11.7 <span class="Heading">Veronese Varieties</span></h4>

<p>A <em>Veronese variety</em> in <strong class="pkg">FinInG</strong> is a projective algebraic variety in a projective space over a finite field. The set of points that lie on this variety is the image of the <em>Veronese map</em>.</p>

<p><a id="X85CBADAD7A18BB19" name="X85CBADAD7A18BB19"></a></p>

<h5>11.7-1 VeroneseVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ VeroneseVariety</code>( <var class="Arg">pg</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">‣ VeroneseVariety</code>( <var class="Arg">n-1</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">‣ VeroneseVariety</code>( <var class="Arg">n-1</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a Veronese variety</p>

<p>The argument <var class="Arg">pg</var> is a projective space defined over a finite field, say <span class="SimpleMath">PG(n-1,q)</span>. The operation also takes as input the dimension and a finite field <var class="Arg">field</var> (e.g. <span class="SimpleMath">[n-1,q]</span>). The operation returns a projective algebraic variety in the projective space of dimension <span class="SimpleMath">(n^2+n)/2-1</span>, known as the (quadratic) Veronese variety. It is the image of the map (x<sub>0</sub>,x<sub>1</sub>,...,x<sub>n</sub>)→ (x<sub>0</sub><sup>2</sup>,x<sub>0</sub>x<sub>1</sub>,...,x<sub>0</sub>x<sub>n</sub>,x<sub>1</sub><sup>2</sup>,x<sub>1</sub>x<sub>2</sub>,...,x<sub>1</sub>x<sub>n</sub>,...,x<sub>n</sub><sup>2</sup>)</p>

<p><a id="X78420B3B8031C6D0" name="X78420B3B8031C6D0"></a></p>

<h5>11.7-2 PointsOfVeroneseVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PointsOfVeroneseVariety</code>( <var class="Arg">vv</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">‣ Points</code>( <var class="Arg">vv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the points of a Veronese variety</p>

<p>The argument <var class="Arg">vv</var> is a Veronese variety. This operation returns a set of points of the <code class="func">AmbientSpace</code> (<a href="chap11.html#X8606750A8586DF8D"><span class="RefLink">11.1-3</span></a>) of the Veronese variety. This set of points corresponds to the image of the <code class="func">VeroneseMap</code> (<a href="chap11.html#X816B9AB287EEF9A5"><span class="RefLink">11.7-3</span></a>).</p>

<p><a id="X816B9AB287EEF9A5" name="X816B9AB287EEF9A5"></a></p>

<h5>11.7-3 VeroneseMap</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ VeroneseMap</code>( <var class="Arg">pg</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">‣ VeroneseMap</code>( <var class="Arg">n-1</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">‣ VeroneseMap</code>( <var class="Arg">n-1</var>, <var class="Arg">q</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">‣ VeroneseMap</code>( <var class="Arg">vv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a geometry map</p>

<p>The argument <var class="Arg">pg</var> is a projective space defined over a finite field, say <span class="SimpleMath">PG(n-1,q)</span>. The operation also takes as input the dimension and a finite field <var class="Arg">field</var> (e.g. <span class="SimpleMath">[n-1,q]</span>). The operation returns a function with domain the product of the point set of the projective space <span class="SimpleMath">PG(n-1,q)</span> and image the set of points of the Veronese variety (<code class="func">PointsOfVeroneseVariety</code> (<a href="chap11.html#X78420B3B8031C6D0"><span class="RefLink">11.7-2</span></a>)) in the projective space of dimension <span class="SimpleMath">(n^2+n)/2-1</span>. When a Veronese variety <var class="Arg">vv</var> is given as input, the operation returns the associated Veronese map.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">pg:=PG(2,5);</span>
ProjectiveSpace(2, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">vv:=VeroneseVariety(pg);</span>
Veronese Variety in ProjectiveSpace(5, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(Points(vv))=Size(Points(pg));</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">vm:=VeroneseMap(vv);</span>
Veronese Map of <points of ProjectiveSpace(2, 5)>
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=PolynomialRing(GF(5),3);</span>
GF(5)[x_1,x_2,x_3]
<span class="GAPprompt">gap></span> <span class="GAPinput">f:=r.1^2-r.2*r.3;</span>
x_1^2-x_2*x_3
<span class="GAPprompt">gap></span> <span class="GAPinput">c:=AlgebraicVariety(pg,r,[f]);</span>
Projective Variety in ProjectiveSpace(2, 5)
<span class="GAPprompt">gap></span> <span class="GAPinput">pts:=List(Points(c));</span>
[ <a point in ProjectiveSpace(2, 5)>, <a point in ProjectiveSpace(2, 5)>, 
  <a point in ProjectiveSpace(2, 5)>, <a point in ProjectiveSpace(2, 5)>, 
  <a point in ProjectiveSpace(2, 5)>, <a point in ProjectiveSpace(2, 5)> ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Dimension(Span(ImagesSet(vm,pts)));</span>
4
 
 </pre></div>

<p><a id="X7DE8173F80E07AB1" name="X7DE8173F80E07AB1"></a></p>

<h5>11.7-4 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</code>( <var class="Arg">vm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the source of a Veronese map</p>

<p>The argument <var class="Arg">vm</var> is a <code class="func">VeroneseMap</code> (<a href="chap11.html#X816B9AB287EEF9A5"><span class="RefLink">11.7-3</span></a>). This operation returns the pointset of the projective space that was used to construct the <code class="func">VeroneseMap</code> (<a href="chap11.html#X816B9AB287EEF9A5"><span class="RefLink">11.7-3</span></a>).</p>

<p><a id="X7B4A786B7EA1388C" name="X7B4A786B7EA1388C"></a></p>

<h4>11.8 <span class="Heading">Grassmann Varieties</span></h4>

<p>A <em>Grassmann variety</em> in <strong class="pkg">FinInG</strong> is a projective algebraic variety in a projective space over a finite field. The set of points that lie on this variety is the image of the <em>Grassmann map</em>.</p>

<p><a id="X81872E5D843373C8" name="X81872E5D843373C8"></a></p>

<h5>11.8-1 GrassmannVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GrassmannVariety</code>( <var class="Arg">k</var>, <var class="Arg">pg</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">‣ GrassmannVariety</code>( <var class="Arg">subspaces</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">‣ GrassmannVariety</code>( <var class="Arg">k</var>, <var class="Arg">n</var>, <var class="Arg">q</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a Grassmann variety</p>

<p>The argument <var class="Arg">pg</var> is a projective space defined over a finite field, say <span class="SimpleMath">PG(n,q)</span>, and argument <var class="Arg">k</var> is an integer (<span class="SimpleMath">k</span> at least <span class="SimpleMath">1</span> and at most <span class="SimpleMath">n-2</span>) and denotes the projective dimension determining the Grassmann Variety. The operation also takes as input the set <var class="Arg">subspaces</var> of subspaces of a projective space, or the dimension <var class="Arg">k</var>, the dimension <var class="Arg">n</var> and the size <var class="Arg">q</var> of the finite field (<span class="SimpleMath">k</span> at least <span class="SimpleMath">1</span> and at most <span class="SimpleMath">n-2</span>). The operation returns a projective algebraic variety known as the Grassmann variety.</p>

<p><a id="X82572EA68327F857" name="X82572EA68327F857"></a></p>

<h5>11.8-2 PointsOfGrassmannVariety</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PointsOfGrassmannVariety</code>( <var class="Arg">gv</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">‣ Points</code>( <var class="Arg">gv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the points of a Grassmann variety</p>

<p>The argument <var class="Arg">gv</var> is a Grassmann variety. This operation returns a set of points of the <code class="func">AmbientSpace</code> (<a href="chap11.html#X8606750A8586DF8D"><span class="RefLink">11.1-3</span></a>) of the Grassmann variety. This set of points corresponds to the image of the <code class="func">GrassmannMap</code> (<a href="chap11.html#X7C6ED0B284833878"><span class="RefLink">11.8-3</span></a>).</p>

<p><a id="X7C6ED0B284833878" name="X7C6ED0B284833878"></a></p>

<h5>11.8-3 GrassmannMap</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GrassmannMap</code>( <var class="Arg">k</var>, <var class="Arg">pg</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">‣ GrassmannMap</code>( <var class="Arg">subspaces</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">‣ GrassmannMap</code>( <var class="Arg">k</var>, <var class="Arg">n</var>, <var class="Arg">q</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">‣ GrassmannMap</code>( <var class="Arg">gv</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a geometry map</p>

<p>The argument <var class="Arg">pg</var> is a projective space defined over a finite field, say <span class="SimpleMath">PG(n,q)</span>, and argument <var class="Arg">k</var> is an integer (<span class="SimpleMath">k</span> at least <span class="SimpleMath">1</span> and at most <span class="SimpleMath">n-2</span>), and denotes the projective dimension determining the Grassmann Variety. The operation also takes as input the set <var class="Arg">subspaces</var> of subspaces of a projective space, or the dimension <var class="Arg">k</var>, the dimension <var class="Arg">n</var> and the size <var class="Arg">q</var> of the finite field (<span class="SimpleMath">k</span> at least <span class="SimpleMath">1</span> and at most <span class="SimpleMath">n-2</span>). The operation returns a function with domain the set of subspaces of dimension <span class="SimpleMath">k</span> in the <span class="SimpleMath">n</span>-dimensional projective space over <span class="SimpleMath">GF(q)</span>, and image the set of points of the Grassmann variety (<code class="func">PointsOfGrassmannVariety</code> (<a href="chap11.html#X82572EA68327F857"><span class="RefLink">11.8-2</span></a>)). When a Grassmann variety <var class="Arg">gv</var> is given as input, the operation returns the associated Grassmann map.</p>

<p><a id="X7DE8173F80E07AB1" name="X7DE8173F80E07AB1"></a></p>

<h5>11.8-4 Source</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Source</code>( <var class="Arg">gm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the source of a Grassmann map</p>

<p>The argument <var class="Arg">gm</var> is a <code class="func">GrassmannMap</code> (<a href="chap11.html#X7C6ED0B284833878"><span class="RefLink">11.8-3</span></a>). This operation returns the set of subspaces of the projective space that was used to construct the <code class="func">GrassmannMap</code> (<a href="chap11.html#X7C6ED0B284833878"><span class="RefLink">11.8-3</span></a>).</p>

<p>This is the chapter of the documentation describing generalised polygons. --></p>


<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap10.html">[Previous Chapter]</a>    <a href="chap12.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><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>

<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

100%


¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.82Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge