Решения задач МСФП.

PDF-файл Решения задач МСФП. Формальная спецификация и верификация программ (64423): Курсовая работа - 9 семестр (1 семестр магистратуры)Решения задач МСФП.: Формальная спецификация и верификация программ - PDF (64423) - СтудИзба2020-08-21СтудИзба

Описание файла

PDF-файл из архива "Решения задач МСФП.", который расположен в категории "". Всё это находится в предмете "формальная спецификация и верификация программ" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Решения задач МСФП. Составлял Николай Князев на основеразбора задач, проводимого Михаилом Балюком 19.12.09.Вопросы присылайте rumata@angel.cs.msu.su version 1.2 от 21.12.09 15:15Первая задача по явному описанию функций построить пост-условия для всех. Важно: в пост-условиях не должно быть локальных переменныхF: intXInt -> write x,y,z intxintxintf(a,b) as (c,d,e)f(a,b) is x=2local variable v int :=1 infor i in <a...a-1+b>inv:=i*(x=x+v;)i*2 (ЗДЕСЬ v не успевает обновиться,т.е идет с предыдущего цикла, т.е. Для x последнейитерацией (где v=a-1+b) нет)end;(y:=z;a,v:=v+1;x,b+v)Необходимо помнить формулыcуммы арифм и геом прогрессиx=2A  Akn−1Sn = k2nB 1−q Sn = 11−q1=b>b<1но в нашей задаче мы имеемcумму квадратов арифм.прогрессии.

Формула извикипедии для 1..kk(k+1)-(2k+1)/6V=(a-1+b)²*2Надо учесть, чтоx=3 на первойитерации, таким образом для x:x=32Sa− 2 b−2S ay=z´c=ad=ze=e+2x=2z=z´(важно,все писать!)с=ad=xe=b+v+1y=z´x=32Sa− 2 b−2S aОтвет, это пост-условие(b<1 /\ y=z´ /\ с=a /\ d=z /\ e=b+2 /\ x=2 /\ z=z¨)\/(b>=1/\ c=a/\d=(здесь расписываем x)/\e=b+(a-1+b)*(a-1*b)*2+1)Задача 2Дана алгебраическая спецификация набора функций, нужнопереписать все в явном или неявном, но проще в явном ;).Карныхин обещал, что задачи будут как на форуме и попроще, что можнорешить пристальным взглядом.(набор функций это все булевы выражения, т.е.

Если нет знака ´=´ значитэта штука должна быть true а ´~´ значит отрицание)Задачаtype E, Tvalue empty: Tput: TxE -> Tchech T->boolput (put(t,x),y)is put(put(t,y),x)check(empty)~check(put(empty,x))check(put(put(empty,x),y)is(x~=y)check(put(put(t,x),x)is check(put(t,x))~check(put(put(t,x),y)) pre x~=y /\ put(t,x)~=t /\/\ put(t,y)~=t /\ ~check(t)РешениеВозникла идея от Степы - сheck, это проверка на четность числа разныхэлементов, посмотрим что означают написанны аксиом:check(put(put(empty,x),y)is(x~=y) — (т.е.

По суте Положили вмн-во два элемента разных сheck - true)~check(put(put(t,x),y)) pre x~=y /\ put(t,x)~=t /\/\ put(t,y)~=t /\ ~check(t) — если добавление двух новыхэлментов то чек не изменилсяпереписываем явноtype E, T = E servalue empty: Tput: TxE -> Tcheck T->boolput (t,e) is t union {e}check (t) is ((card t)\2)=0)Задача на ЭТО (№ 4) и проверять их будет только Лекторусловие игра в пятнашки преобразить в рсл, приведены часть спецификаций и(описание игры здесь его не переписываю)Nat4={|n:Nat:-<=/\n>0|} - мн-во нат чисел 1..4Nat15={n:Nat:-n<=5/\n>0} —Square=(Nat4xNat4xNat15)-set — мн-во состоящие из троек чиселvaluemove Square x Nat4x Nat4 -~ ->Squarenew game Unit ->square (Unit это пустой тип)Функция move берет поле и сдвигает клетку на пустую — получаем поле1.

подумать и написать все ограничения на русском языке.Ограничения на Square не более 15 фишекforall s : Square :- card s = 15в S (x,y,x) нет троек с одинаковым 3-му параметром(номер пятнашки), в s нетэлементов у которых одновременно равны 1 и2й параметры(находятсяодновременно на одной позиции)ограничения для movepre: рядом должна быть пустая клеткаpost: поменялось положение только одной пятнашкиесли это все написать, то уже 1 балпишем теперь формально на rsl:newgame() as spost forall z:Nat15 :- if exists x,y:Nat4 :- (x,y,z) isin S then ~exist s x1 y1:Nat4:(x1,y1,z)isin S/{(x,y,z)} /\ (анаглогично условие на уникальноссть места) ( лекторсказал что можно писать в похожих случаях слово ¨аналогично¨)move (s,x,y ) as S1post [ exist t : Nat15 :- (x,y,t) isin S /\ exists x1,y1:Nat4 :- (x1,y1,t) isin S1 /\/\ (x=x1/\abs(y-y1)=1 \/ y=y´/\ abs (x-x1)=1 ) /\ s\(x,y,t)=s1/\(x1,y1,t) ] /\ forallt1:Nat15:-(x,y,t1)~isin S1( второй вариант постусловия что-то типа card (s1\s2) /\ card(s\s1 = 1) /\ ...)pre forall z:Nat15:-((x-1,y,z)~isins/\x>1)/\аналогично для остальныхaxiomforall s : Square :- (card s = 15)/\forall z:Nat15 :- if exists x,y:Nat4 :- (x,y,z) isin S then ~exist s x1 y1:Nat4:(x1,y1,z)isin S/{(x,y,z)} — условие на уникальность номеров фишеканалогично расписать уникальнось местАксимоы и постусловия функции newgame — совпадают с точностью до символа,т.к.

И то и то, есть ограничения на поле для игры.Задача 6. будет задача как в праке и доказать через PVSлегко это с ноутом без него сделать, считает Миша, нереально. Есть наборкоманд кот можно юзать.Но попробуем.антецендент сверхуконсиквент снизув общем случае-1 a1узел верен если верно следствие-2 a2a1/\a2/\а3=>u1\/u2\/u3-3 a3-------1 u12 u23 u3условие задачи:task Theorybeginsum2(n:nat):recursive nat =if n=0 then 0 else n*(n-1)+sum2(n-1) elseifmeasure nsun2_theorem: theoremforall (n:nat):(n>=2) implies sum2(n)=(n-1)*n(n+1)/3End taskБазаиндукции0>=2=>..flatten 1(Induct 1)Forall n in nat:n>=2 =>sum2(n)Forall n S(n)=>S(n+1)skolem 10>=2asserttrueInduct — делит доказывемое утвердение на базу и индуктю переходflatten - делит так, чтобы из правды не следовала ложь, т.е антедент наверх и true а кfalseskolem разбивает forall делает подстановку.

(сразу его сделать не можем, т.к. У на Nat)assert — проверка на очевидную верность полученного утвержденияДаже при помощи ноута и pvs решить задачу нам не удалось, более того врезультате преобразований мы получили не верное утверждение, хотя условиебыло переписано верно а преобразования проводились на ноуте. Что делать втаких случаях непонятно.Общие слова по третей задачи аксиомы и реализации нужно проверитьявляется ли вторая уточнением первой.

Мы должны подставлять функции извторой в аксиомы пока не докажем что все ок НО много где получается чтовторая не является уточнением. Нужно приводить контр-пример. Придуматьнабор переменных такие, что не выполняются аксиомы. Есть доходчивыепримеры как доказыать, если оно является уточнением.Задача 4 с помощью метода Флойда доказать полную корректностьесть блок-схема программы, доказать что из описанногопредусловия φ следует описанное постусловие ΨSTART(y1,y2)<-(x,1)T2y2<=xA (точка сечения)Fy2<xFTHALTz<-y1(y1y2)<-(2y1,2y2)(y1y2)<-(y1+x,y2+1)Дано: Предусловие φ=(x>=0) постусловие Ψ=(z=x²)в блок-схеме существуют входные параметры (х и 1 в нашем случае), они не изменяютсяв процессе выполнения, промежуточноые у1 и у2 и выходные их пишем только в конце z.Для доказательства полной корректности по методу Флойда надо доказать частичнуюкорректнось и завершаемость.Нужно выбрать точки сечения: это начало и конец программы +хоть одна точка вкаждом цикле.Нужно придумать предикаты, которые правдивы в точках сечения и из них ипредусловия должно следолвать постусловияпредикаты придумываются пристальным взглядом+можно попробовать посчитать прогуна конкретных числах.Придумали y1 = x*y2нужно для всех путей между точками сечения проверить наши предикатыесть пути между точками сечения.

Присваем y1= x*y2 должны проверитьS-A(x>=0 => x=x*1A-T-T-A  (y1=x*y2)/\(y2<x)/\(2y2<=x))=>2y1=x*2y2A-T-F-A y1=xy2/\....=>(y1+x=xy2+x)A-F-H (y1=xy2)/\ ((y2>=x)\/(x=0))=>z=x² (т.к. Одновременно z=y1=xy2 и x=<y2<x)то, что написан красным мы придумали вставить в предикат потом, по хорошему нужнотогда доказать прадивость всего получившегосяэ предиката (y1=xy2)/\ ((y2>=x)\/(x=0)для всех путей.

частичная коррекктность доказаназавершаемость доказываем методом фундированных множеств. Т.е. Мн-во ЧУМ где несуществует бесконечно убывающей последовательности положительных чисел.Надо написать:W=Nat, < (т.е мы берем мн-во натуральных чисел, с операцией <)мы должны напистать, что когд U станет меньше 0, мы пришли в конец в нашем случаеU(x...y)=x-y2, и если она убывает то рано или поздно будет меньше 0, Мише такое зачли,но хз как будет проверять Карныхин..

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее