Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/recog/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 22.0.2025 mit Größe 9 kB image not shown  

Quelle  chap5.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/recog/doc/chap5.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (recog) - Chapter 5: After successful recognition</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap5"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chap5.html">5</a>  <a href="chap6.html">6</a>  <a href="chap7.html">7</a>  <a href="chap8.html">8</a>  <a href="chap9.html">9</a>  <a href="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a>   <a href="chap0.html#contents">[Contents]</a>    <a href="chap4.html">[Previous Chapter]</a>    <a href="chap6.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap5_mj.html">[MathJax on]</a></p>
<p><a id="X851A3F04786123D5" name="X851A3F04786123D5"></a></p>
<div class="ChapSects"><a href="chap5.html#X851A3F04786123D5">5 <span class="Heading">After successful recognition</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5.html#X80EB3C7481C63B7F">5.1 <span class="Heading">Functions and methods for recognition nodes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap5.html#X82F5B37186B949BF">5.1-1 SLPforNiceGens</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap5.html#X87BDB89B7AAFE8AD"><code>5.1-2 \in</code></a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap5.html#X858ADA3B7A684421">5.1-3 Size</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap5.html#X80FFBDCD816690E3">5.1-4 DisplayCompositionFactors</a></span>
</div></div>
</div>

<h3>5 <span class="
Heading">After successful recognition</span></h3>

<p>This chapter explains, what one can do with recognition nodes after a successful recognition (and possibly verification).</p>

<p>Of course, one can inspect the whole tree of recognition nodes just by looking at the stored attribute values. Moreover, constructive membership tests can be performed using the function <code class="func">SLPforElement</code> (<a href="chap3.html#X83167779869A3BF5"><span class="RefLink">3.2-15</span></a>), thereby writing an arbitrary element in terms of the nice generators, which are stored in the attribute <code class="func">NiceGens</code> (<a href="chap3.html#X864194958685AAD7"><span class="RefLink">3.2-8</span></a>). If <code class="keyw">fail</code> is returned, then the element in question does not lie in the recognised group or the recognition made an error.</p>

<p>Here is an example of a successful recognition tree:</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g := DirectProduct(SymmetricGroup(12),SymmetricGroup(5));</span>
Group([ (1,2,3,4,5,6,7,8,9,10,11,12), (1,2), (13,14,15,16,17), (13,14) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">ri := RecogniseGroup(g);</span>
#I  Finished rank 90 method "NonTransitive": success.
#I  Going to the image (depth=0, try=1).
#I  Finished rank 95 method "MovesOnlySmallPoints": success.
#I  Back from image (depth=0).
#I  Calculating preimages of nice generators.
#I  Creating 20 random generators for kernel.
....................
#I  Going to the kernel (depth=0).
#I  Finished rank 80 method "Giant": success.
#I  Back from kernel (depth=0).
<recognition node NonTransitive
 F:<recognition node MovesOnlySmallPoints Size=120>
 K:<recognition node Giant Size=479001600>>
</pre></div>

<p>One sees that the recursive process runs, first it finds that the permutation action is not transitive, a homomorphism is found by mapping onto the action on one of the orbits. The image is recognised to permute only a few points. The kernel is recognised to be a full symmetric group in its natural action on at least 10 points (recognised as <q>Giant</q>).</p>

<p>After this, we can write arbitrary group elements in the group <code class="code">g</code> in terms of the nice generators:</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">x := PseudoRandom(g);</span>
(1,12)(2,5,9,11,10,3,4)(7,8)(13,14,16,15,17)
<span class="GAPprompt">gap></span> <span class="GAPinput">slp := SLPforElement(ri,x);</span>
<straight line program>
<span class="GAPprompt">gap></span> <span class="GAPinput">ResultOfStraightLineProgram(slp,NiceGens(ri));</span>
(1,12)(2,5,9,11,10,3,4)(7,8)(13,14,16,15,17)
</pre></div>

<p>Note that this example only works by using also the <strong class="pkg">recog</strong> package which contains the necessary recognition methods.</p>

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

<h4>5.1 <span class="Heading">Functions and methods for recognition nodes</span></h4>

<p>If you need an element explicitly written in terms of the original generators, you can use the following function:</p>

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

<h5>5.1-1 SLPforNiceGens</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SLPforNiceGens</code>( <var class="Arg">ri</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: an SLP expressing the nice generators in the original ones</p>

<p>This function assembles a possibly quite large straight line program expressing the nice generators in terms of the original ones by using the locally stored information in the recognition tree recursively.</p>

<p>You can concatenate straight line programs in the nice generators with the result of this function to explicitly write an element in terms of the original generators.</p>

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

<h5><code>5.1-2 \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">ri</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code></p>

<p>This method tests, whether the element <var class="Arg">x</var> lies in the group recognised by the recognition node <var class="Arg">ri</var>. Note that this is only a convenience method, in fact <code class="func">SLPforElement</code> (<a href="chap3.html#X83167779869A3BF5"><span class="RefLink">3.2-15</span></a>) is used and the resulting straight line program is thrown away.</p>

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

<h5>5.1-3 Size</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Size</code>( <var class="Arg">ri</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: the size of the recognised group</p>

<p>This method calculates the size of the recognised group by multiplying the size of the image and the kernel recursively. It is assumed that leaf nodes know already or can calculate the size of their group.</p>

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

<h5>5.1-4 DisplayCompositionFactors</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DisplayCompositionFactors</code>( <var class="Arg">ri</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: nothing</p>

<p>This function displays a composition series by using the recursive recognition tree. It only works, if the usual operation <code class="func">CompositionSeries</code> (<a href="../../../doc/ref/chap39_mj.html#X81CDCBD67BC98A5A"><span class="RefLink">Reference: CompositionSeries</span></a>) works for all leaves. THIS DOES CURRENTLY NOT WORK FOR PROJECTIVE GROUPS AND THUS FOR MATRIX GROUPS!</p>


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


<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="chapBib.html">Bib</a>  <a href="chapInd.html">Ind</a>  </div>

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

100%


¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






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.