ко второй контрольной
Описание файла
PDF-файл из архива "ко второй контрольной", который расположен в категории "". Всё это находится в предмете "формальная спецификация и верификация программ" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Тема №1. Понятие частичной корректности.1. Дайте определение частичной корректности программ.2. Какое поведение Dafny говорит о том, что она пытается доказывать частичнуюкорректность?3. Может ли программа одновременно являться частично корректной и неявляться частично корректной ? Приведите примеры.4. Справедливы ли следующие утверждения для любых значений свободныхпеременных? Ответ обоснуйте.a) если {α}P{γ} и {β}P{γ}, то {α /\ β}P{γ}b) если {α}P{β}, то {¬α}P{false}c) если {α}P{β => γ} и {α}P{γ => β}, то {α}P{β}d) если {α}P{β}, то {β}P{α}5.
Для данных пред- (pre) и пост- (post) условия, записанных на RSL, предложитереализацию функции без побочных эффектов, которая является частичнокорректной относительно них. Для записи функции так же используйте RSL.Функция должна завершаться на максимальном числе входных данных,удовлетворяющих предусловию.a) pre(x, y) = x > ypost(x, y, z) = z > x + yb) pre(x, y) = x > ypost(x, y, z) = x < z /\ z < yc) pre(x, y) = x > ypost(x, y, z) = x < z /\ z < 2 * yd) pre(x, y) = hd x > ypost(x, y, z) = z isin {y .
. hd x}e) pre(x, y) = hd x > hd ypost(x, y, z) = z(2) isin elems tl tl xТема №2. Методы Флойда.1. Сформулируйте вкратце методы Флойда. Зачем они нужны. Где онииспользуются в известных вам инструментах для верификации программ.Повторите основные понятия методов Флойда (точка сечения, индуктивноеутверждение, условие корректности, условие верификации, условиезавершимости, фундированное множество, оценочная функция)2. Определите фундированное множество на основеa) вещественных чиселb) пар целых чисел от -1 до 1c) списков вещественных чисел3. Для данной блок-схемы программы с выделенными точками сечения, еепредусловия и постусловия выпишите все условия верификации, корректностиили завершимости по методам Флойда, которые не являются истинными. Дляточек сечения указаны индуктивные утверждения и оценочные функции.a) pre(x) = (x >= 0) /\ (x\3 = 0)post(x, z) = (z\3 = 0)W = (Nat, >)inv(x, y1, y2, y3) = (y2\5 = 0) /\ (y3\3 = 0)var(x, y1, y2, y3) = x – y2 – y3b) pre(x) = (x >= 0) /\ (x\3 = 0)post(x, z) = (3*z = x**2)W = (Nat, >)inv(x, y1, y2, y3) = (y2/5 = y3/3) var(x, y1, y2, y3) = x + 1 – y2c) pre(x) = (x >= 0) /\ (x\3 = 0)post(x, z) = (3*z = x**2)W = (Nat, >)inv(x, y1, y2, y3) = (6*y1 = y3**2 + 3*y2)var(x, y1, y2, y3) = 3 – y2.