<Chapter Label = "Partitioned binary relations (PBRs)">
<Heading>
Partitioned binary relations (PBRs)
</Heading>
In this chapter we describe the functions in &SEMIGROUPS; for creating
and manipulating partitioned binary relations, henceforth referred to by
their acronym PBRs. We begin by describing what these objects are.
<P/>
PBRs were introduced in the paper <Cite Key = "Martin2011aa"/> as, roughly
speaking, the maximum generalization of bipartitions and related objects.
Although, mathematically, bipartitions are a special type of PBR, in
&SEMIGROUPS; bipartitions and PBRs are currently distinct types of objects.
It is possible to change the representation from bipartition to PBR, and from
PBR to bipartition, when appropriate; see Section
<Ref Sect = "Changing the representation of a PBR"/> for more
details. The reason for this distinct is largely historical, bipartition
appeared in the literature, and in the &SEMIGROUPS; package, before PBRs.
There are several ways of creating PBRs in &GAP;, which are
described in this section.
<#Include Label = "PBR">
<#Include Label = "RandomPBR">
<#Include Label = "EmptyPBR">
<#Include Label = "IdentityPBR">
<#Include Label = "UniversalPBR">
</Section>
<Section Label = "Changing the representation of a PBR">
<Heading>Changing the representation of a PBR</Heading>
It is possible that a PBR can be represented as another type of object,
or that another type of &GAP; object can be represented as a PBR. In this
section, we describe the functions in the &SEMIGROUPS; package for changing
the representation of PBR, or for changing the representation of another type of object to that of a PBR.
<P/>
The operations
<Ref Attr = "AsPermutation" Label = "for a PBR"/>,
<Ref Oper = "AsPartialPerm" Label = "for a PBR"/>,
<Ref Attr = "AsTransformation" Label = "for a PBR"/>,
<Ref Oper = "AsBipartition"/>,
<Ref Oper = "AsBooleanMat"/>
can be used to convert PBRs into permutations, partial permutations,
transformations, bipartitions, and boolean matrices where appropriate.
<Section Label = "Operators for PBRs">
<Heading>Operators for PBRs</Heading>
<List>
<Mark><C><A>x</A> * <A>y</A></C></Mark>
<Item>
<Index Key = "*"><C> * </C> (for PBRs)</Index>
returns the product of <A>x</A> and <A>y</A> when <A>x</A> and
<A>y</A> are PBRs.
</Item>
<Mark><C><A>x</A> < <A>y</A></C></Mark>
<Item>
<Index Key = "<"><C><</C> (for PBRs)</Index>
returns <K>true</K> if the degree of <A>x</A> is less than the degree
of <A>y</A>, or the degrees are equal and the out-neighbours of
<A>x</A> (as a list of list of positive integers) is lexicographically
less than the out-neighbours of <A>y</A>.
</Item>
<Mark><C><A>x</A> = <A>y</A></C></Mark>
<Item>
<Index Key = "="><C>=</C> (for PBRs)</Index>
returns <K>true</K> if the PBR <A>x</A> equals the
PBR <A>y</A> and returns <K>false</K> if it does not.
</Item>
</List>
</Section>
Semigroups and monoids of PBRs can be created in the usual way in
&GAP; using the functions <Ref Func = "Semigroup" BookName = "ref"/> and
<Ref Func = "Monoid" BookName = "ref"/>; see Chapter
<Ref Chap = "Semigroups and monoids defined by generating sets"/> for more
details.
<P/>
It is possible to create inverse semigroups and monoids of PBRs
using <Ref Func = "InverseSemigroup" BookName = "ref"/> and <Ref
Func = "InverseMonoid" BookName = "ref"/> when the argument is a collection
of PBRs satisfying <Ref Prop = "IsBipartitionPBR"/> and when considered as
bipartitions, the collection satisfies <C>IsGeneratorsOfInverseSemigroup</C>.
<P/>
Note that every PBR semigroup in &SEMIGROUPS; is finite.
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.