Libelectrod.TupleSourceTuples of atoms.
invariant: atoms <> empty
t1 @@@ t2 yields the concatenation of t1 followed by t2 (useful to compute the flat product of bounds/tuple sets).
is_in_join tuple t1 t2 says whether tuple is the concatenation of t1 (minus the last column) and t2 (minus the ifrst column).
split t lg splits a tuple into two, the first being of length lg.
all_different t tells whether all atoms in a tuple are different.
to_ntuples n t splits a tuple into n-tuples (length must be a multiple of n).