Iterated Straight-Line Programs

Gonzalo Navarro and Cristian Urbina

We explore an extension to straight-line programs (SLPs) that breaks, for some text families, the lower bound δ based on substring complexity. The extension, called iterated SLPs (ISLPs), allows rules of the form A -> Prod_{i=k_1}^{k_2} B_1^{i^{c_1}} ... B_t^{i^{c_t}}, for which we show how to extract any substring of length λ, from the represented text T[1..n], in time O(λ + log^3 n). This is the first compressed representation for repetitive texts breaking δ while, at the same time, supporting direct access to arbitrary text symbols in polylogarithmic time. As a byproduct, we extend Ganardi et al.'s technique to balance any SLP (so it has a derivation tree of logarithmic height), to a wide generalization of SLPs including ISLPs.