Ах да, работает оно по типу контрактного программирования. То есть к C# добавлены новые конструкции. Для верификации исходный код компилируется специальным компилятором, который на эти новые конструкии и смотрит.
На моей прошлой работе использовали TLA(temporal logic) для верификации модели распределенной системы. Еще пытались использовать Frama C - но не хватило навыков. Сам изучал Coq, в частности для верификации интерпретатора.
Гуглим по теме: Ada, Spark. Spark - это подмножество языка Ada плюс доп. конструкции в комментах, описывающие входные-выходные параметры и еще что-то там. Не все языки программирования пригодны для подобного анализа кода. Например, C++ не подходит.
Кстати, а есть реальный опыт работы c этим языком? Просто в гугле куча всего подобного по данной тематике, но оно в основном вызывает впечатление дохлятины. Хочется зяться за что-нибудь живое.