  
  [1X11 [33X[0;0YGraph inverse semigroups[133X[101X
  
  [33X[0;0YIn  this  chapter  we  describe  a class of semigroups arising from directed
  graphs.[133X
  
  [33X[0;0YThe  functionality  in  [5XSemigroups[105X  for graph inverse semigroups was written
  jointly by Zak Mesyan (UCCS) and J. D. Mitchell (St Andrews).[133X
  
  
  [1X11.1 [33X[0;0YCreating graph inverse semigroups[133X[101X
  
  [1X11.1-1 GraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XGraphInverseSemigroup[102X( [3XE[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10YA graph inverse semigroup.[133X
  
  [33X[0;0YIf  [3XE[103X is a digraph (i.e. it satisfies [2XIsDigraph[102X ([14XDigraphs: IsDigraph[114X)), then
  [10XGraphInverseSemigroup[110X  returns  the  graph  inverse  semigroup  [22XG([3XE[103X)[122X  where,
  roughly speaking, elements correspond to paths in the graph [3XE[103X.[133X
  
  [33X[0;0YLet  us  describe  [3XE[103X as a digraph [22X[3XE[103X = (E ^ 0, E ^ 1, r, s)[122X, where [22XE^0[122X is the
  set  of  vertices, [22XE^1[122X is the set of edges, and [22Xr[122X and [22Xs[122X are functions [22XE^1 ->
  E^0[122X  giving the [13Xrange[113X and [13Xsource[113X of an edge, respectively. The [13Xgraph inverse
  semigroup  [22XG([3XE[103X)[122X  of [22XE[122X[113X is the semigroup-with-zero generated by the sets [22X[3XE[103X ^ 0[122X
  and [22X[3XE[103X ^ 1[122X, together with a set of variables [22X{e ^ -1 ∣ e ∈ [3XE[103X ^ 1}[122X, satisfying
  the following relations for all [22Xv, w ∈ [3XE[103X ^ 0[122X and [22Xe, f ∈ [3XE[103X ^ 1[122X:[133X
  
  [8X(V)[108X
        [33X[0;6Y[22Xvw = δ_v,w ⋅ v[122X,[133X
  
  [8X(E1)[108X
        [33X[0;6Y[22Xs(e) ⋅ e=e ⋅ r(e)=e[122X,[133X
  
  [8X(E2)[108X
        [33X[0;6Y[22Xr(e) ⋅ e^-1 = e^-1 ⋅ s(e) =e^-1[122X,[133X
  
  [8X(CK1)[108X
        [33X[0;6Y[22Xe^-1 ⋅ f = δ_e,f ⋅ r(e)[122X.[133X
  
  [33X[0;0Y(Here  [22Xδ[122X is the Kronecker delta.) We define [22Xv^-1=v[122X for each [22Xv ∈ E^0[122X, and for
  any path [22Xy=e_1dots e_n[122X ([22Xe_1dots e_n ∈ E^1[122X) we let [22Xy^-1 = e_n^-1 dots e_1^-1[122X.
  With this notation, every nonzero element of [22XG(E)[122X can be written uniquely as
  [22Xxy^-1[122X for some paths [22Xx, y[122X in [22XE[122X, by the CK1 relation.[133X
  
  [33X[0;0YFor a more complete description, see [MM16].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[2, 5, 8, 10], [2, 3, 4, 5, 6, 8, 9, 10], [1],[127X[104X
    [4X[25X>[125X [27X                  [3, 5, 7, 8, 10], [2, 5, 7], [3, 6, 7, 9, 10],[127X[104X
    [4X[25X>[125X [27X                  [1, 4], [1, 5, 9], [1, 2, 7, 8], [3, 5]]);[127X[104X
    [4X[28X<digraph with 10 vertices, 37 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<infinite graph inverse semigroup with 10 vertices, 37 edges>[128X[104X
    [4X[25Xgap>[125X [27XGeneratorsOfInverseSemigroup(S);[127X[104X
    [4X[28X[ e_1, e_2, e_3, e_4, e_5, e_6, e_7, e_8, e_9, e_10, e_11, e_12, [128X[104X
    [4X[28X  e_13, e_14, e_15, e_16, e_17, e_18, e_19, e_20, e_21, e_22, e_23, [128X[104X
    [4X[28X  e_24, e_25, e_26, e_27, e_28, e_29, e_30, e_31, e_32, e_33, e_34, [128X[104X
    [4X[28X  e_35, e_36, e_37, v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9, v_10 [128X[104X
    [4X[28X ][128X[104X
    [4X[25Xgap>[125X [27XAssignGeneratorVariables(S);[127X[104X
    [4X[25Xgap>[125X [27Xe_1 * e_1 ^ -1;[127X[104X
    [4X[28Xe_1e_1^-1[128X[104X
    [4X[25Xgap>[125X [27Xe_1 ^ -1 * e_1 ^ -1;[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27Xe_1 ^ -1 * e_1;[127X[104X
    [4X[28Xv_2[128X[104X
  [4X[32X[104X
  
  [1X11.1-2 Range[101X
  
  [33X[1;0Y[29X[2XRange[102X( [3Xx[103X ) [32X attribute[133X
  [33X[1;0Y[29X[2XSource[102X( [3Xx[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA graph inverse semigroup element.[133X
  
  [33X[0;0YIf  [3Xx[103X  is  an  element  of  a  graph  inverse  semigroup  (i.e. it satisfies
  [2XIsGraphInverseSemigroupElement[102X   ([14X11.1-4[114X)),  then  [10XRange[110X  and  [10XSource[110X  give,
  respectively,  the  start and end vertices of [3Xx[103X when viewed as a path in the
  digraph over which the semigroup is defined.[133X
  
  [33X[0;0YFor a fuller description, see [2XGraphInverseSemigroup[102X ([14X11.1-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27Xe := S.1;[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XSource(e);[127X[104X
    [4X[28Xv_2[128X[104X
    [4X[25Xgap>[125X [27XRange(e);[127X[104X
    [4X[28Xv_1[128X[104X
  [4X[32X[104X
  
  [1X11.1-3 IsVertex[101X
  
  [33X[1;0Y[29X[2XIsVertex[102X( [3Xx[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
  
  [33X[0;0YIf  [3Xx[103X  is  an  element  of  a  graph  inverse  semigroup  (i.e. it satisfies
  [2XIsGraphInverseSemigroupElement[102X  ([14X11.1-4[114X)),  then this attribute returns [9Xtrue[109X
  if  [3Xx[103X  corresponds  to  a  vertex in the digraph over which the semigroup is
  defined, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YFor a fuller description, see [2XGraphInverseSemigroup[102X ([14X11.1-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27Xe := S.1;[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(e);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xv := S.3;[127X[104X
    [4X[28Xv_1[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(v);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xz := v * e;[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27XIsVertex(z);[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
  [1X11.1-4 IsGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSemigroup[102X( [3Xx[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsGraphInverseSemigroupElement[102X( [3Xx[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X.[133X
  
  [33X[0;0YThe  category  [10XIsGraphInverseSemigroup[110X contains any semigroup defined over a
  digraph  using  the  [2XGraphInverseSemigroup[102X  ([14X11.1-1[114X) operation. The category
  [10XIsGraphInverseSemigroupElement[110X  contains  any  element  contained  in such a
  semigroup.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);;[127X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<infinite graph inverse semigroup with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSemigroup(S);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xx := GeneratorsOfSemigroup(S)[1];[127X[104X
    [4X[28Xe_1[128X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSemigroupElement(x);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X11.1-5 GraphOfGraphInverseSemigroup[101X
  
  [33X[1;0Y[29X[2XGraphOfGraphInverseSemigroup[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10YA digraph.[133X
  
  [33X[0;0YIf [3XS[103X is a graph inverse semigroup (i.e. it satisfies [2XIsGraphInverseSemigroup[102X
  ([14X11.1-4[114X)), then this attribute returns the original digraph over which [3XS[103X was
  defined (most likely the argument given to [2XGraphInverseSemigroup[102X ([14X11.1-1[114X) to
  create [3XS[103X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [3]]);[127X[104X
    [4X[28X<digraph with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);;[127X[104X
    [4X[25Xgap>[125X [27XGraphOfGraphInverseSemigroup(S);[127X[104X
    [4X[28X<digraph with 3 vertices, 2 edges>[128X[104X
  [4X[32X[104X
  
  [1X11.1-6 IsGraphInverseSemigroupElementCollection[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSemigroupElementCollection[102X[32X Category[133X
  
  [33X[0;0YEvery  collection  of  elements  of a graph inverse semigroup belongs to the
  category  [10XIsGraphInverseSemigroupElementCollection[110X. For example, every graph
  inverse semigroup belongs to [10XIsGraphInverseSemigroupElementCollection[110X.[133X
  
  [1X11.1-7 IsGraphInverseSubsemigroup[101X
  
  [33X[1;0Y[29X[2XIsGraphInverseSubsemigroup[102X[32X filter[133X
  
  [33X[0;0Y[10XIsGraphInverseSubsemigroup[110X    is    a    synonym    for    [10XIsSemigroup[110X   and
  [10XIsInverseSemigroup[110X and [10XIsGraphInverseSemigroupElementCollection[110X.[133X
  
  [33X[0;0YSee [2XIsGraphInverseSemigroupElementCollection[102X ([14X11.1-6[114X) and [2XIsInverseSemigroup[102X
  ([14XReference: IsInverseSemigroup[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgr := Digraph([[], [1], [2]]);[127X[104X
    [4X[28X<digraph with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XS := GraphInverseSemigroup(gr);[127X[104X
    [4X[28X<finite graph inverse semigroup with 3 vertices, 2 edges>[128X[104X
    [4X[25Xgap>[125X [27XElements(S);[127X[104X
    [4X[28X[ e_2^-1, e_1^-1, e_1^-1e_2^-1, 0, e_1, e_1e_1^-1, e_1e_1^-1e_2^-1, [128X[104X
    [4X[28X  e_2, e_2e_2^-1, e_2e_1, e_2e_1e_1^-1, e_2e_1e_1^-1e_2^-1, v_1, v_2, [128X[104X
    [4X[28X  v_3 ][128X[104X
    [4X[25Xgap>[125X [27XT := InverseSemigroup(Elements(S){[3, 5]});;[127X[104X
    [4X[25Xgap>[125X [27XIsGraphInverseSubsemigroup(T);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
