Abstract

The development of the C-light project resulted in the application of new formalisms and implementation techniques which facilitate the verification process. The mixed axiomatic semantics proposes a choice between simplified and full-strength deduction rules depending on program objects and their properties. The LLVM infrastructure helps greatly in writing the C-light program analyzer and translator. The semantical labeling technique, proposed earlier, can now be safely kept in verification conditions during their proof. Two programs from the well-known verification benchmarks 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.