One relation table for each relation in is maintained. Let be a relation in , where . The relation table has rows representing the cosets of , as in the coset table. It has t columns, and the entry in the ith row and jth column is defined to be (if known) k, where . In particular, the 'th entry is initially i, since . Finally, the subgroup tables are similar to the relation tables, except that they keep track of possible relations of the generators of . For each generator of , with , we create a subgroup table. It has only one row, corresponding to the coset of itself. It has t columns, and the entry in the jth column is defined (if known) to be k, where . When a row of a relation or subgroup table is completed, a new piece of information , , is found. This is known as a deduction. From the deduction, we may be able to fill in additional entries of the relation and subgroup tables, resulting in possible additional deductions. We can fill in the entries of the coset table corresponding to the equations and . However, when filling in the coset table, it is possible that we may already have an entry for the equation, but the entry has a different value. In this case, we have discovered that two of our cosets are actually the same, known as a coincidence. Suppose , with . We replace all instances of j in the tables with i. Then, we fill in all possible entries of the tables, possibly leading to more deductions and coincidences. If there are empty entries in the table after all deductions and coincidences have been taken care of, add a new coset to the tables and repeat the process. We make sure that when adding cosets, if Hx is a known coset, then Hxg will be added at some point for all . (This is needed to guarantee that the algorithm will terminate provided is finite.) When all the tables are filled, the algorithm terminates. We then have all needed information on the action of on the cosets of . See also Coxeter group References Computational group theory