Notes on RUBOT project

====================================================================
Optima:

Other apps might want to use some of these routines with mult. optima.
Currently, I only detect and FAIL on mult. optima/no optima when
a competition is added to a comparative tableau. If win-lose-pairs
are individually added to a comparative tableau, currently no check
is made to see if the same winner is always employed for the same
input (is such a check even worthwhile?).

====================================================================
Minimal Atomic Generating Set
The smallest set such that every erc in the "language" is entailed
by a single erc of the generating set.

This will be a superset of the MIB; where the MIB tosses out CT fusions
that are entailed by the fusion of the total residue, an atomic generating
set only tosses out a CT fusion if it is entailed by the set of
fusions of the individual residues.
See sec. 3.3 of Brasovaneau & Prince revised.

====================================================================
Reading in directly from a CT sheet in Excel

Want to end up with something like a Winner-Loser Pair, but you
cannot recover the full winners and loser (no violation count data).
Solution: create a class intermediate between Erc and Win_lose_pair
that only has string representations of the winner, loser, and input,
and only has methods to return winner_as_string(), etc. This should
be a subclass of Erc and a superclass of Win_lose_pair.
====================================================================
Priority List

Next Stuff:
Implement factorial typology code in Ruby.
Minimal Atomic Generating Set.
