Abstract

The article is devoted to the architecture development of the toolkit for supporting formal verification of functional data-flow parallel programs in the Pifagor Language. The method of deduction based on Hoare logic is used for formal verification. A proof process is considered as a tree where each node is a program data-flow graph, whose edges are marked with formulas in a specification language. The tree root is the initial Hoare triple, namely the program data-flow graph with a precondition and a postcondition. In this article basic transformations of the data-flow graph are considered: edge marking, equivalent transformation, splitting, folding of the program. By means of these transformations the initial triple is being transformed and finally is reduced to a set of formulas in the specification language. If all of these formulas are identically true, then the program is correct. Architecture of the toolkit for supporting formal verification of functional data-flow parallel programs is proposed, which allows to construct a proof three. The implementation of the toolkit is introduced and its main functionality is considered.

Highlights

  • Работа посвящена разработке архитектуры инструментальных средств для поддержки формальной верификации функционально-потоковых параллельных программ на языке Пифагор

  • Процесс доказательства корректности функционально-потоковая параллельная (ФПП) программы можно рассматривать как последовательность преобразований исходного информационного графа с разметкой, где под «исходным информационным графом с разметкой» понимается ИГР, которому соответствует исходная тройка Хоара, то есть граф у которого входная дуга размечена заданным пользователем предусловием, выходная — постусловием, а остальные дуги не размечены

  • By means of these transformations the initial triple is being transformed and is reduced to a set of formulas in the specification language

Read more

Summary

Преобразования информационного графа с разметкой

Программу на языке Пифагор удобно отображать в виде информационного графа — ациклического ориентированного графа, определяющего информационную структуру программы, у которого вершины представляют программо-формирующие операторы, а дуги задают пути передачи информации между вершинами [7]. Информационный граф программы, дуги которого помечены формулами на языке спецификации, будем называть информационным графом с разметкой (ИГР). Зададим над информационным графом с разметкой следующие преобразования: 1) разметка дуги; 2) изменение информационного графа программы:. Процесс доказательства корректности ФПП программы можно рассматривать как последовательность преобразований исходного информационного графа с разметкой, где под «исходным информационным графом с разметкой» понимается ИГР, которому соответствует исходная тройка Хоара, то есть граф у которого входная дуга размечена заданным пользователем предусловием, выходная — постусловием, а остальные дуги не размечены. При преобразовании графа, для оператора 1 применимо три аксиомы, то в результате преобразования получится три новых ИГР, которые компактно будут отображаться как исходный граф, у которого к дуге (1, 3) приписаны три формулы. В результате разметки получится семь графов, это число соответствует общему числу применимых аксиом и количеству формул, которые будут приписаны к дуге (3, 4). На рис. 1.А индексы (i, j) возле формул, помечающих дугу (3, 4), обозначают номер i родительской формулы, помечающей дугу (1, 3), и номер j родительской формулы, помечающей дугу (2, 3)

Изменение информационного графа
Свертка
Обобщенная структура системы поддержки формальной верификации
Реализация системы
Full Text
Published version (Free)

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