Современные технические системы -это, возможно, одни из самых сложных технических систем во всей человеческой деятельности. На сегодняшний день такие системы чаще все-го состоят из интеграции программной и аппаратной частей. При этом рост сложности са-мой системы приводит к значительному увеличению сложности разработки и контроля за качеством программной системы. На сегодняшний день в индустрии разработки про-граммного обеспечения нет формальных средств, которые могли бы гарантировать отсут-ствие программных ошибок. Большое влияние на сложность программного анализа ока-зывает значительное увеличение программных путей, в особенности из-за наличия услов-ных операторов в циклах. В данной статье рассматривается подход уменьшения количе-ства программных путей, который основан на символьной нотации. Согласно данному подходу программный цикл должен быть представлен как символьное выражение, кото-рое определяет переменные и в котором условные операторы представлены в виде допол-нительных переменных. После этого программа должна быть представлена в виде дерева с вершинами в виде контекстов. Далее полученное дерево контекстов может быть проана-лизировано в любом состоянии путем вычисления выражения, в котором содержатся воз-можные значения переменных вместо их символьного представления. Статья завершается формулированием общего алгоритма анализа программы. Задача получения формального алгоритма преобразования цикла является темой отдельного исследования и будет рас-смотрена в последующих работах, так же как и представление математического аппарата для вычисления возможных значений символьных выражений при подстановке в него возможных значений переменных.Ключевые слова: программное обеспечение, тестирование, входные интервалы, фор-мальная верификация, динамическая верификация, верификация, проверка моделей, модели программного обеспечения, графы, тотальная корректность программ