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 с использованием только стандартной семантики выбора элементов массива
Ершова СО РАН, научный сотрудник; Кондратьев Дмитрий Александрович, Новосибирский государственный университет, студент
Summary
В настоящее время верификация C-программ является актуальной проблемой, поскольку язык C широко применяется в системном программировании. В действительности WHY это платформа, подходящая для верификации многих императивных языков. Однако трансляция в другой язык является определенным недостатком подхода, так как не представлено доказательство корректности такой трансляции (это же справедливо и для проекта WHY). Для верификации Clight программ ранее был предложен двухуровневый подход [3] и метод смешанной аксиоматической семантики [4]. На второй стадии генерируются условия корректности по правилам смешанной аксиоматической семантики. Были доказаны теоремы о корректности трансляции из C-light в Ckernel и о корректности смешанной аксиоматической семантики C-kernel [4]. Для преодоления этой проблемы используется метод смешанной аксиоматической семантики [4], который является комбинацией двухуровневого метода верификации C-программ и смешанной аксиоматической семантики языка C-kernel. 1 иллюстрирует схему системы верификации C-light программ. В противном случае пользователь должен исправить программу или ее спецификацию и повторить процесс верификации в системе
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
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.