A virtual sequence is an implementation of the Sequence protocol which does not store its own elements, and instead computes them, either from scratch or by retrieving them from another sequence.
Virtual sequences can be implemented with the Virtual sequence protocol, by translating an index in the virtual sequence into an index in another sequence.