1: \begin{abstract}
2: In this paper, we present two algorithms based on the Froidure-Pin Algorithm
3: for computing the structure of a finite semigroup from a generating set.
4: As was the case with the original algorithm of Froidure and Pin, the
5: algorithms presented here produce the left and right Cayley graphs, a
6: confluent terminating rewriting system, and a reduced word of the rewriting
7: system for every element of the semigroup.
8:
9: If $U$ is any semigroup, and $A$ is a subset of $U$, then we denote by
10: $\langle A\rangle$ the least subsemigroup of $U$ containing $A$.
11: If $B$ is any other subset of $U$, then, roughly speaking, the first
12: algorithm we present describes how to use any information about $\langle
13: A\rangle$, that has been found using the Froidure-Pin Algorithm, to compute
14: the semigroup $\langle A\cup B\rangle$. More precisely, we describe the data
15: structure for a finite semigroup $S$ given by Froidure and Pin, and how to
16: obtain such a data structure for $\langle A\cup B\rangle$ from that for
17: $\langle A\rangle$. The second algorithm is a lock-free concurrent version
18: of the Froidure-Pin Algorithm.
19: \end{abstract}
20: