Теорема Кука — результат теории автоматов, демонстрирующий, что выполнение двустороннего детерминированного автомата с магазинной памятью может быть смоделировано за линейное время на машине с произвольным доступом к памяти. Открыта в 1970 году учёным из торонтского университета Стивеном Куком. Теорема послужила теоретическим фундаментом для множества линейных алгоритмов обработки текста, таких как алгоритм Манакера, алгоритм Кнута — Морриса — Пратта и алгоритм Вайнера.
Детерминированный двусторонний автомат с магазинной памятью может быть определён как набор P = ( Q , Σ , Π , δ , s 0 , Z 0 , s t ) {displaystyle P=(Q,Sigma ,Pi ,delta ,s_{0},Z_{0},s_{t})} , где