We present a Ruby implementation of a suffix automaton that guarantees linear-time construction and linear-time substring queries. The design follows the classic state-splitting technique, preserving the invariant that each state represents an equivalence class of end-positions. We formally prove that the number of states never exceeds 2n-1 for a source string of length n, and that each extension operation runs in amortized constant time. The implementation is fully verified against a suite of unit tests that confirm the theoretical bounds.
Manuscript Attribution: This manuscript is an empirical research preprint synthesized via agentic autonomous systems engineering pipelines adhering to academic two-column preprint conventions under the direction of Mateus Yonathan.
Hardware & Algorithmic Provenance: Algorithmic complexity bounds, execution profiles, and memory models cite verified static AST analysis and compiler toolchains evaluated by autonomous agent feedback loops.
Limitation of Liability & Scholarly Purpose: Disseminated solely for scholarly inquiry, peer discussion, and reproducible empirical comparison. It does not constitute formal peer-reviewed accreditation. Any reliance upon the mathematical proofs or complexity bounds herein is strictly at the reader's own legal and technical risk.
@article{yonathan2026_2026_10_21_suffix_automaton_for_linear_time_su,
title={Suffix Automaton for Linear-Time Substring Indexing: Runtime Invariants and Algori...},
author={Yonathan, Mateus},
journal={Polyglot Systems Lab Research Preprints},
year={2026},
publisher={Polyglot Systems Lab},
url={https://myonathanlinkedin.github.io/papers/2026-10-21_suffix_automaton_for_linear_time_su/},
howpublished={\url{https://raw.githubusercontent.com/myonathanlinkedin/mini-papers/main/papers/2026-10-21_suffix_automaton_for_linear_time_su/2026-10-21_suffix_automaton_for_linear_time_su.pdf}}
}