Одним из важных инструментов является SPIN с языком Promela. Если вы используете LaTeX, есть также TLA + .
Они не будут анализировать ваш код, но позволят вам выразить модель для ваших предположений и переходов между состояниями, а затем проанализируют недействительные состояния. Другими словами, они будут обнаруживать проблемы в вашей модели, а не в реализации вашей модели.
Я видел демоверсию Goanna , но я не знаю, доступна ли она вообще (коммерческая или иная); это дает преимущество фактического анализа вашего исходного кода.
Просто глядя на ваш вопрос и снова комментарии в вашем вопросе, звучит так, как будто вы действительно должны сначала прочитать какую-то литературу. Возможно, Spin Model Checker или Specifying Systems (можно загрузить с на сайте Лесли Лампорта ) Вам необходимо переосмыслить свою проблему, чтобы не пытаться решить проблему остановки.