|
|
|
|
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</var> is 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</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 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 )</ | | |