## Relational Join

`a.b` is the composition of the relations
`a` and `b`. For each tuple in
`a` of the form `(a0, a1, ..., an, X)`, and
each tuple in `b` of the form `(X, b1, ...,
bn)`, the new relation `a.b` contains a tuple
`(a0, a1, ..., an, b1, ... bn)`. Only the last atom in
tuples of **a** are matched with the first atom in
tuples of **b**. Note that the
matched atom is removed from the resulting tuple.

Due to some clever definitions of Semantics, it can also be used
to access fields of a signature. See levels of understanding for examples of different ways to
interpret the dot.