Abstract

The development of the C-light project led to the application of new formalisms and method implementations that facilitate the verification of C programs. The mixed axiomatic semantics provides a choice between simplified and general inference rules of verification conditions (VC) depending on the program objects and their properties. The LLVM infrastructure greatly simplifies the implementation of the analyzer and translator of C-light programs. The semantic labeling method proposed earlier can now be safely used in verification conditions during their proving. A program from well-known verification competition is considered in order to illustrate the applicability of the system.

Highlights

  • Ключевые слова: верификация, операционная семантика, аксиоматическая семантика, язык C, язык C-light, язык C-kernel, частичная корректность, ACSL, LLVM, Simplify

  • Оно может быть доказано с помощью Simplify с использованием только стандартной семантики выбора элементов массива

  • Ершова СО РАН, научный сотрудник; Кондратьев Дмитрий Александрович, Новосибирский государственный университет, студент

Read more

Summary

Введение

В настоящее время верификация C-программ является актуальной проблемой, поскольку язык C широко применяется в системном программировании. В действительности WHY это платформа, подходящая для верификации многих императивных языков. Однако трансляция в другой язык является определенным недостатком подхода, так как не представлено доказательство корректности такой трансляции (это же справедливо и для проекта WHY). Для верификации Clight программ ранее был предложен двухуровневый подход [3] и метод смешанной аксиоматической семантики [4]. На второй стадии генерируются условия корректности по правилам смешанной аксиоматической семантики. Были доказаны теоремы о корректности трансляции из C-light в Ckernel и о корректности смешанной аксиоматической семантики C-kernel [4]. Для преодоления этой проблемы используется метод смешанной аксиоматической семантики [4], который является комбинацией двухуровневого метода верификации C-программ и смешанной аксиоматической семантики языка C-kernel. 1 иллюстрирует схему системы верификации C-light программ. В противном случае пользователь должен исправить программу или ее спецификацию и повторить процесс верификации в системе

Трансляция из C-light в C-kernel
Генерация условий корректности
Пример поиск максимума в массиве
Работа с условиями корректности
Заключение
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.