<Chapter Label = "Green's relations">
  <Heading>
    Green's relations
  </Heading>

  In this chapter we describe the functions in &SEMIGROUPS; for
  computing Green's classes and related properties of semigroups.

  <!--**********************************************************************-->
  <!--**********************************************************************-->

  <Section>

    <Heading>
      Creating Green's classes and representatives
    </Heading>

    In this section, we describe the methods in the &SEMIGROUPS; package for
    creating Green's classes.
    <P/>

    <#Include Label = "XClassOfYClass">
    <#Include Label = "GreensXClassOfElement">
    <#Include Label = "GreensXClassOfElementNC">
    <#Include Label = "GreensXClasses">
    <#Include Label = "XClassReps">
    <#Include Label = "MinimalDClass">
    <#Include Label = "MaximalXClasses">
    <#Include Label = "NrRegularDClasses">
    <#Include Label = "NrXClasses">
    <#Include Label = "PartialOrderOfXClasses">
    <#Include Label = "LengthOfLongestDClassChain">
    <#Include Label = "IsGreensDGreaterThanFunc">

  </Section>

  <!--**********************************************************************-->
  <!--**********************************************************************-->

  <Section>

    <Heading>
      Iterators and enumerators of classes and representatives
    </Heading>

    In this section, we describe the methods in the &SEMIGROUPS; package for
    incrementally determining Green's classes or their representatives.
    <P/>

    <#Include Label = "IteratorOfXClassReps">
    <#Include Label = "IteratorOfXClasses">

  </Section>

  <!--**********************************************************************-->
  <!--**********************************************************************-->

  <Section>

    <Heading>
      Properties of Green's classes
    </Heading>

    In this section, we describe the properties and operators of Green's
    classes that are available in the &SEMIGROUPS; package.
    <P/>

    <#Include Label = "\&lt;">
    <#Include Label = "IsRegularGreensClass">
    <#Include Label = "IsGreensClassNC">

  </Section>

  <!--**********************************************************************-->
  <!--**********************************************************************-->

  <Section>

    <Heading>
      Attributes of Green's classes
    </Heading>

    In this section, we describe the attributes of Green's classes that are
    available in the &SEMIGROUPS; package.
    <P/>

    <#Include Label = "GroupHClass">
    <#Include Label = "SchutzenbergerGroup">
    <#Include Label = "StructureDescriptionSchutzenbergerGroups">
    <#Include Label = "StructureDescriptionMaximalSubgroups">
    <#Include Label = "MultiplicativeNeutralElement">
    <#Include Label = "StructureDescription">
    <#Include Label = "InjectionPrincipalFactor">
    <#Include Label = "PrincipalFactor">

  </Section>

  <!--**********************************************************************-->
  <!--**********************************************************************-->

  <Section>

    <Heading>
      Operations for Green's relations and classes
    </Heading>

    In this section, we describe some operations related to Green's classes that are
    available in the &SEMIGROUPS; package.
    <P/>

    <#Include Label = "GreensMultiplier">

  </Section>

  <!--**********************************************************************-->
  <!--**********************************************************************-->

</Chapter>
