<?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 (Gpd) - Chapter 2: Many-object structures</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" /> </head> <body> <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="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div> <div class="chlinkprevnexttop"> <a href="chap0.html">Top of Book</a> <a href="chap1.html">Previous Chapter</a> <a href="chap3.html">Next Chapter</a> </div> <p><a id="X8361CEA4856430C6" name="X8361CEA4856430C6"></a></p> <div class="ChapSects"><a href="chap2.html#X8361CEA4856430C6">2 <span class="Heading">Many-object structures</span></a> <div class="ContSect"><span class="nocss"> </span><a href="chap2.html#X79CE5DFF7ADC7744">2.1 <span class="Heading">Magmas with objects</span></a> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap2.html#X7C51D7847BD23284">2.1-1 MagmaWithObjects</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap2.html#X79D2548F7DD8C6E7">2.1-2 MultiplicativeElementWithObjects</a></span> <span class="ContSS"><br /><span class="nocss"> </span><a href="chap2.html#X7C0911667FF90DB2">2.1-3 IsSinglePiece</a></span> </div> </div> <h3>2 <span class="Heading">Many-object structures</span></h3> <p>A <em>magma with objects</em> M consists of a set of <em>objects</em> Ob(M), and a set of <em>arrows</em> Arr(M) together with <em>tail</em> and <em>head</em> maps t,h : Arr(M) -> Ob(M), and a <em>partial multiplication</em> * : Arr(M) -> Arr(M), with a*b defined precisely when the head of a coincides with the tail of b. We write an arrow a with tail u and head v as (a : u -> v).</p> <p>When this multiplication is associative we obtain a <em>semigroup with objects</em>.</p> <p>A <em>loop</em> is an arrow whose tail and head are the same object. An <em>identity arrow</em> at object u is a loop (1_u : u -> u) such that a*1_u=a and 1_u*b=b whenever u is the head of a and the tail of b. When M is a semigroup with objects and every object has an identity arrow, we obtain a <em>monoid with objects</em>, which is just the usual notion of mathematical category.</p> <p>An arrow (a : u -> v) in a monoid with objects has <em>inverse</em> (a^-1 : v -> u) provided a*a^-1 = 1_u and a^-1*a = 1_v. A monoid with objects in which every arrow has an inverse is a <em>group with objects</em>, usually called a <em>groupoid</em>.</p> <p>For the definitions of the standard properties of groupoids we refer to R. Brown's book ``Topology'' <a href="chapBib.html#biBBrTop">[Bro88]</a>, recently revised and reissued as ``Topology and Groupoids'' <a href="chapBib.html#biBBrTopGpd">[Bro06]</a>.</p> <p><a id="X79CE5DFF7ADC7744" name="X79CE5DFF7ADC7744"></a></p> <h4>2.1 <span class="Heading">Magmas with objects</span></h4> <p><a id="X7C51D7847BD23284" name="X7C51D7847BD23284"></a></p> <h5>2.1-1 MagmaWithObjects</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MagmaWithObjects</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> ObjectList</code>( <var class="Arg">mwo</var> )</td><td class="tdright">( attribute )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> SemigroupithObjects</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MonoidWithObjects</code>( <var class="Arg">args</var> )</td><td class="tdright">( function )</td></tr></table></div> <p>The simplest construction for a magma with objects is to take a magma m and form arrows (u,x,v) for every x in m and every pair of objects (u,v). Multiplication is defined by (u,x,v)*(v,y,w) = (u,x*y,w).</p> <p>Any finite, ordered set is in principle acceptable as the objects of M, but we will restrict ourselves to sets of negative integers here.</p> <table class="example"> <tr><td><pre> gap> tm := [[1,2,4,3],[1,2,4,3],[3,4,2,1],[3,4,2,1]];; Display( tm ); [ [ 1, 2, 4, 3 ], [ 1, 2, 4, 3 ], [ 3, 4, 2, 1 ], [ 3, 4, 2, 1 ] ] gap> m := MagmaByMultiplicationTable( tm ); <magma with 4 generators> gap> SetName( m, "m" ); gap> m1 := MagmaElement(m,1);; gap> m2 := MagmaElement(m,2);; gap> m3 := MagmaElement(m,3);; gap> m4 := MagmaElement(m,4);; gap> One(m); fail gap> M78 := MagmaWithObjects( [-8,-7], m ); Magma with objects :- objects = [ -8, -7 ] magma = m gap> [ IsAssociative(M78), IsCommutative(M78) ]; [ false, false ] </pre></td></tr></table> <p><a id="X79D2548F7DD8C6E7" name="X79D2548F7DD8C6E7"></a></p> <h5>2.1-2 MultiplicativeElementWithObjects</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> MultiplicativeElementWithObjects</code>( <var class="Arg">mwo, elt, tail, head</var> )</td><td class="tdright">( operation )</td></tr></table></div> <p>Elements in a magma with objects lie in the category <code class="code">IsMultiplicativeElementWithObjects</code>. An attempt to multiply two arrows which do not compose resuts in <code class="code">fail</code> being returned.</p> <table class="example"> <tr><td><pre> gap> a78 := MultiplicativeElementWithObjects( M78, m4, -7, -8 ); [m2 : -7 -> -8] gap> b87 := MultiplicativeElementWithObjects( M78, m3, -8, -7 ); [m3 : -8 -> -7] gap> ba := b87*a78; [m4 : -8 -> -8] gap> ab := a78*b87; [m4 : -7 -> -7] gap> a78^2; fail gap> ba^2; [m1 : -8 -> -8] </pre></td></tr></table> <p><a id="X7C0911667FF90DB2" name="X7C0911667FF90DB2"></a></p> <h5>2.1-3 IsSinglePiece</h5> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsSinglePiece</code>( <var class="Arg">mwo</var> )</td><td class="tdright">( property )</td></tr></table></div> <div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">> IsDirectProductWithCompleteGraph</code>( <var class="Arg">mwo</var> )</td><td class="tdright">( property )</td></tr></table></div> <p>If the partial composition is forgotten, then a digraph is left (usually with multiple edges and loops). Thus the notion of <em>connected component</em> may be inherited by magmas with objects from digraphs. Unfortunately the terms <code class="code">Component</code> and <code class="code">Constituent</code> are already in considerably use in <strong class="pkg">GAP</strong>, so (for now?) we use the term <code class="code">IsSinglePiece</code> to describe a connected magma with objects.</p> <table class="example"> <tr><td><pre> gap> IsSinglePiece( M78 ); true gap> IsDirectProductWithCompleteGraph( M78 ); true </pre></td></tr></table> <div class="chlinkprevnextbot"> <a href="chap0.html">Top of Book</a> <a href="chap1.html">Previous Chapter</a> <a href="chap3.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="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>