Господа (и дамы),
Ниже находится текст четвёртого, последнего задания. Перешлите его, пожалуйста, тем вашим коллегам, которые не удосужились подписаться на рассылку.
Срок высылки решённого задания -- 25 апреля.
Понедельник 28 апреля с 9 утра в аудитории 758 -- зачёт по практикуму для студентов групп кафедры АСВК. Те, кто не прислал какие-то задачи или недоволен полученной оценкой за практикум (она к этому моменту будет выставлена), сможет попытаться поправить эту ситуацию на зачёте. У студентов других групп такая попытка будет на экзамене.
На последней лекции будет консультация к экзамену. Список экзаменационных вопросов к этому моменту будет разослан.
На майских праздниках меня здесь не будет. С 12 по 25 мая я буду в командировке. Соответственно, если вы не получите свою оценку по практикуму на зачёте (это касается студентов АСВК), то к сессии вы допущены не будете, и помочь вам никто не сможет. Оценка за практикум идёт в диплом. Соответственно, думайте сами. Особенно это касается господ Ермакова, Салия, Волкова, Крупа, Попова, Семёнова, Баранова, Любицкого, Петрова и госпожи Полежаевой.
Экзамен будет после 25 мая. В экзаменационный день будет разбит на две части: приём экзамена у тех, у кого нет проблем по практикуму и у тех, у кого есть проблемы.
---- Легенда 4 задания --------
Для данной вам программы и её модели, построенной в ходе решения третьей задачи:
1. Проверить свойство отсутствия тупиков (invalid end-states). Тупиков в модели быть не должно. Вывод pan по проверке свойства приложить в файле с именем safety_out.txt. 2. В модели не должно быть недостижимого кода (unreachable code). 3. Сформулированное в третьей задаче свойство описать в модели с помощью assertions, проверить с помощью Spin. Возможно потребуется ввести дополнительные переменные. Модель с assertions приложить в файле с именем model_assert.prm. Вывод pan по проверке приложить в файле с именем assert_out.txt 4. В модели не должно быть циклов бездействия (non-progress cycles), за исключением: 4.1) цикла, связанного с бесконечным выполнением моделируемой функции 4.2) циклов, соответствующих циклам моделируемой функции, которые после абстракции предикатов стали бесконечными. Иными словами, конструкции, добавленные вами в модель (например, дназначенниые для моделирования случайных данных) не должны вносить в модель бесконечных циклов. Вывод верификатора для проверки отсутствия циклов бездействия приложить в файле с именем nonprogress_out.txt. Метки progress, предназначенные для того, чтобы верификатор не обращал внимания на бесконечные циклы, перечисленные в пунктах 3.1 и 3.2, должны быть расставлены в модели model_assert.pml. 5. Сформулированное в третьей задаче свойство описать с помощью логики линейного времени в формате Spin, проверить с помощью Spin. Спецификацию приложить в файле с именем spec.ltl.
a. В случае, если модель пришлось изменить: * описать в теле письма, почему спецификация не выполняется на исходной модели; * описать в теле письма, как изменилась модель и почему; * описать в теле письма, почему новая модель адекватна; * приложить контрпример, выданный pan, в файле counterexample.txt; * приложить исходную и изменённую модели в файлах model.prm и new_model.prm; * приложить вывод pan в файле ver_out.txt.
b. В случае, если спецификация не выполняется на модели: * приложить контрпример, выданный pan, в файле counterexample.txt; * построить по контрпримеру Spin контрпример на исходной программе; * убедиться в том, что контрпример на исходной программе выполняется; * приложить контрпример на исходной программе в файле prog_counterexample.txt. Контрпример должен быть описан в виде последовательности номеров строк исходной программы и значений переменных. * приложить вывод pan в файле ver_out.txt.
c. В случае, если изменения в модели не потребовались и спецификация выполняется: * приложить модель в файле model.prm; * приложить вывод pan в файле ver_out.txt.
Во всех случаях письмо должно удовлетворять требованиям: * письмо написано в формате plain/text без html; * в письме допускаются только текстовые вложения в кодировках cp1251, koi8-r и utf8 (желательно в кодировке koi8-r). * к письму должна прилагаться формулировка третьей задачи с файле с именем task3.txt ------------------------------------