Теормин 2014 (avasite), страница 6

2019-09-18СтудИзба

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

Документ из архива "Теормин 2014 (avasite)", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "Теормин 2014 (avasite)"

Текст 6 страницы из документа "Теормин 2014 (avasite)"

Темпоральные логики

Темпоральные (временные) логики применяются для описания и исследования причинно-следственных зависимостей, развивающихся во времени. Модальный оператор □ означает «всегда», а оператор ◊ — «когда-нибудь».

2 разновидности темпоральных логик:

  1. Логика линейного времени LTL

  2. Логика деревьев вычислений CTL (частный случай «Логики ветвящегося времени»), использует темпоральные операторы 2-х типов: универсальные и экзистенциальные ∀□, ∀◊, ∃□, ∃◊.

Логика деревьев вычислений CTL

Пусть I = <S, R, ξ> — древесная модель Крипке для логики CTL, s0 ∈ S — одно из состояний модели. Тогда

  1. I, s0|= ∀□ϕ ⇐⇒ в каждом состоянии s, достижимом из состояния s0, верно I, s |= ϕ;

  2. I, s0|= ∃□ϕ ⇐⇒ существует ветвь, исходящая из состояния s0, в каждом состоянии s которой верно I, s |= ϕ;

  3. I, s0|= ∀◊ϕ ⇐⇒ в каждой ветви, исходящей из состояния s0, есть состояние s, в котором верно I, s |= ϕ;

  4. I, s0|= ∃◊ϕ ⇐⇒ существует ветвь, исходящая из состояния s0, в одном из состоянии s которой верно I, s |= ϕ.

Лекция 20. Правильные программы. Императивные программы. Задача верификации программ. Логика Хоара. Автоматическая проверка правильности программ.

Описание требований правильности функционирования программы называется спецификацией программы.

Проверка соблюдения вычислениями программы требований правильности функционирования называется верификацией программы.

Определение

присваивание ::= «переменная» ⇐ «терм»

условие ::= «атом» | (¬условие ) | (условие & условие ) | (условие ∨ условие )

программа ::= присваивание | программа ; программа | if «условие» then программа else программа fi | while условие do программа od

Определение (состояния вычисления)

Пусть Var — это множество переменных, а GTerm — это множество основных термов сигнатуры σ.

Оценкой переменных (состоянием данных) будем называть всякое отображение (подстановку) θ: Var → GTerm.

Состоянием управления будем называть всякую программу, а также специальный символ ∅.

Состоянием вычисления будем называть всякую пару <π, θ>, где π — состояние управления, а θ — оценка переменных.

Запись Stateσ будет обозначать множество всевозможных состояний вычислений сигнатуры σ.

Определение (отношения переходов)

Пусть I — это интерпретация сигнатуры σ. Тогда отношение переходов для императивных программ — это бинарное отношение →I на множестве состояний вычисления Stateσ, удовлетворяющее следующим требованиям:

  1. ASS: <x ⇒ t, θ> →I <∅, {x/t}θ>;

  2. COMP_∅: <π1; π2, θ> →I <π2, η> тогда и только тогда, когда <π1, θ> →I <∅, η>;

  3. COMP: <π1; π2, θ> →I <π'1; π2, η> тогда и только тогда, когда <π1, θ> →I <π’1, η> и π’1 ≠ ∅;

Определение (отношения переходов)

  1. IF_1: <if C then π1 else π2 fi, θ> →I1, θ> тогда и только тогда, когда I |= Cθ;

  2. IF_0: <if C then π1 else π2 fi, θ> →I2, θ> тогда и только тогда, когда I |≠ Cθ;

  3. WHILE_1: <while C do π od, θ> →I <π; while C do π od, θ> тогда и только тогда, когда I |= Cθ;

  4. WHILE_0: <while C do π od, θ> →I <∅, θ> тогда и только тогда, когда I |≠ Cθ.

Частичным вычислением программы π0 на оценке переменных θ0 в интерпретации I называется последовательность (конечная или бесконечная) состояний вычисления <π0, θ0>, <π1, θ1>, …, <πn−1, θn−1>, <πn, θn>, …, в которой для любого n, n ≥ 1, выполняется отношение <πn−1, θn−1> →In, θn>.

Вычислением программы π0 на оценке переменных θ0 в интерпретации I называется всякое частичное вычисление, которое нельзя продолжить.

Как следует из определения, любое вычисление либо является бесконечной последовательностью, либо завершается состоянием <∅, η>. В последнем случае оценка η называется результатом вычисления.

Будем использовать запись →I для обозначения рефлексивного и транзитивного замыкания отношения переходов →I.

Неформальная постановка задачи верификации программ.

Программа π считается (частично) корректной, если для любых начальных данных, удовлетворяющих определенному условию ϕ, результат вычисления (если вычисление завершается) удовлетворяет определенному условию ψ.

Ограничение ϕ, которое налагается на начальные данные, называется предусловием, а требование ψ, которому должны удовлетворять результаты вычисления, называется постусловием программы.

Задача верификации программы π заключается в проверке частичной корректности программы π относительно заданного предусловия ϕ и заданного постусловия ψ.

Определение. Триплетом Хоара (тройкой Хоара) называется всякое выражение вида ϕ{π}ψ, где ϕ, ψ — формулы логики предикатов, а π — императивная программа.

Обозначим HTσ множество триплетов Хоара сигнатуры σ.

Выполнимость триплетов Хоара в интерпретациях определяется так:

I |= ϕ{π}ψ ⇐⇒ для любых оценок переменных θ, η, если I | = ϕθ и <π, θ> →I <∅, η>, то I |= ψη.

Определение (частичной корректности программы)

Пусть ϕ, ψ — формулы логики предикатов, а π — императивная программа.

Программа π называется частично корректной в интерпретации I относительно предусловия ϕ и постусловия ψ, если триплет ϕ{π}ψ выполним в интерпретации I, т. е. I |= ϕ{π}ψ.

Правила вывода Хоара

  1. ASS: ϕ{x/t} {x ⇐ t} ϕ  true,

  2. CONS: ϕ{π}ψ  ϕ → ϕ0, ϕ0{π}ψ0, ψ0→ ψ,

  3. COMP: ϕ{π1; π2}ψ  ϕ{π1}χ, χ{π2}ψ,

  4. IF: ϕ{if C then π1 else π2 fi}ψ  (ϕ&C){π1}ψ, (ϕ&¬C){π2}ψ,

  5. WHILE: ϕ{while C do π od} (ϕ&¬C)  (ϕ&C){π}ϕ.

Определение вывода в логике Хоара

Вывод в логике Хоара триплета Φ0 = ϕ000 — это корневое дерево, вершинами которого служат триплеты и формулы логики предикатов и при этом

  1. корнем дерева является триплет Φ0;

  2. из вершины Φi исходят дуги в вершину Φj ⇐⇒ Φi  Φj — правило табличного вывода;

  3. из вершины Φ1 исходят дуги в вершины ϕ1 , Φ3, ϕ2 ⇐⇒ Φ1ϕ1, Φ3, ϕ2 — правило табличного вывода;

  4. листьями дерева являются формулы логики предикатов.

Вывод триплета Φ0 = ϕ000 в логике Хоара называется успешным в интерпретации I, если дерево вывода является конечным, и все его листовые вершины — это истинные в интерпретации I формулы логики предикатов.

Теорема корректности

Для любой интерпретации I и для любого правила вывода логики Хоара ΦΨ, Φϕ, ΦΨ12, Φϕ,Ψ,ψ, если I |= Ψ, I |= ϕ, , то I |=Ф

(Докажем поочереди все павила ass, cons, comp, if, while. Для ass - возьмём некоторую произвольную оценку переменных. Согласно операционной семантике императивных программ существует единственное вычисление, …)

Следствие.

Если триплет ϕ{π}ψ имеет успешный в интерпретации I вывод, то программа π частично корректна в интерпретации I относительно предусловия ϕ и постусловия ψ.

Полнота правил вывода Хоара

  1. Верно ли, что для каждой интерпретации I существует система правил вывода, позволяющая для каждого триплета Φ = ϕ{π}ψ построить успешный вывод Φ в интерпретации I и доказать его успешность в случае I |= Φ?

(Нет, следует из теоремы Гёделя о неполноте)

  1. Верно ли, что для каждой интерпретации I существует система правил вывода, позволяющая для каждого триплета Φ = ϕ{π}ψ построить успешный вывод Φ в интерпретации I (но не гарантирующая доказательства его успешности) в случае I |= Φ?

(Может не найтись нужных формул для применения правила Хоара cons, если базовые предикаты сигнатуры будут недостаточно выразительными)

  1. Верно ли, что для некоторых интерпретаций I существует система правил вывода Хоара, которая позволяет для каждого триплета Φ = ϕ{π}ψ построить успешный вывод Φ в интерпретации I в случае I |= Φ?

(Да, достаточно чтобы для цикла существовал терм, который для любой оценки переменных был равен n+1 лишь тогда, когда цикл в вычислении совершает n итераций)

Определение

Пусть заданы интерпретация I , императивная программа π и постусловие ψ. Тогда формула ϕ0 называется слабейшим предусловием (weakest postcondition) для программы π и постусловия ψ, если

  1. I |= ϕ0{π}ψ,

  2. для любой формулы ϕ, если I |= ϕ{π}ψ, то I |= ϕ → ϕ0.

Слабейшее предусловие для программы π и постусловия ψ условимся обозначать wpr (π, ψ).

Теорема

I |= ϕ{π}ψ ⇐⇒

Таким образом, задача построения успешного вывода сводится к задаче вычисления wpr (π, ψ).

Теорема

wpr (x ⇐ t , ψ) = ψ{x/t},

wpr (π1; π2, ψ) = wpr (π1, wpr (π2, ψ)),

wpr (if C then π1 else π2 fi, ψ) =C & wpr (π1, ψ) ∨ ¬C & wpr (π2, ψ)

Лекция 21. Верификация распределенных программ. Логика линейного времени PLTL. Размеченные системы переходов. Задача верификации моделей программ.

Такой подход к проверке правильности программ называется верификацией моделей программ (англ. model-checking).

Верификацию распределенных систем нужно автоматизировать. Это можно сделать, например, так.

  1. Выбрать логический язык L, на котором можно описывать требования, предъявляемые к программе. Представить эти требования в виде формул ϕ1, …, ϕn.

  2. Выбрать математическую модель M, адекватно представляющую все вычисления программы. Модель должна быть устроен так, чтобы каждое вычисление I в модели M являлось интерпретацией языка L.

  3. Проверить выполнимость формул ϕ1, …, ϕn на всех вычислениях модели M. Для проверки выполнимости формул языка L на модели программы M должен быть разработан эффективный алгоритм.

Синтаксис PLTL

В PLTL наряду с булевыми логическими связками для описания причинно-следственной зависимости событий во времени применяются темпоральные операторы

  1. X (neXttime) «в следующий момент времени»;

  2. F (sometime in Future) «когда-то в будущем»;

  3. G (Globally) «всегда в будущем»;

  4. U (Until) «до тех пор пока»;

  5. R (Release) «высвободить, открепить».

Пусть задано множество булевых переменных AP = {p1, p2, …, pn, …} (будем называть их атомарными высказываниями). Формула PLTL — это

  • pi, если pi ∈ AP

  • (ϕ&ψ), (ϕ∨ψ), (ϕ→ψ), (¬ϕ) если ϕ и ψ — формулы

  • (Xϕ), «в следующий момент будет верно ϕ»

  • (Fϕ), «когда-то в будущем будет верно ϕ»

  • (Gϕ), «всегда верно ϕ»

  • (ϕUψ), «ϕ остается верной, пока не станет верной ψ»

  • (ϕRψ), «ψ может перестать быть верной только после того, как станет верной ϕ».

Семантика PLTL

Интерпретация PLTL — это темпоральная модель Крипке I = <N, ≤, ξ>, где

  1. N = {0, 1, 2, …} — множество моментов времени

  2. ≤ — отношение нестрогого линейного порядка на N

  3. ξ: N × AP → {true, false} — оценка атомарных высказываний на шкале времени.

Пусть I = <N, ≤, ξ> — темпоральная интерпретация (вычислительная трасса), n ∈ N — момент времени (состояние вычисления), ϕ — формула PLTL.

Тогда отношение выполнимости I, n |= ϕ формулы ϕ в момент времени n в интерпретации I определяется так.

  1. Если ϕ = p, p ∈ AP (т. е. ϕ — атомарное высказывание), то I, n |= ϕ ⇐⇒ ξn(p) = true.

  2. Если ϕ = ϕ12, то I, n |= ϕ ⇐⇒ I, n |= ϕ1 и I, n |= ϕ2.

  3. Аналогично ϕ1 ∨ ϕ2, ϕ1 → ϕ2, ¬ϕ1

  4. Если ϕ = Xψ, то I, n |= ϕ ⇐⇒ I, n+1 |= ψ.

  5. Если ϕ = Fψ, то I, n |= ϕ ⇐⇒ существует такое k, k≥0, что I, n+k |= ψ.

  6. Если ϕ = Gψ, то I, n |= ϕ ⇐⇒ для любого k, k ≥ 0, верно I, n+k |= ψ.

  7. Если ϕ = χUψ, то I, n |= ϕ ⇐⇒ существует такое k, k ≥ 0, что I, n+k |= ψ, и для любого i, 0 ≤ i < k , верно I, n+i |= χ.

  8. Если ϕ = χRψ, то I, n |= ϕ ⇐⇒ либо для любого k, k ≥ 0, верно I, n+k |= ψ, либо существует такое k, k ≥ 0, что I, n+k |= χ, и для любого i, 0 ≤ i ≤ k, верно I, n+i |= ψ.

Будем называть формулу PLTL ϕ

  1. выполнимой в интерпретации I, если верно I, 0|= ϕ (обозначается I |= ϕ);

  2. PLTL-общезначимой, если для любой интерпретации I верно I |= ϕ (обозначается |= ϕ).

Законы двойственности.

  1. |= ¬Xϕ ≡ X¬ϕ;

  2. |= ¬Fϕ ≡ G¬ϕ;

  3. |= ¬Gϕ ≡ F¬ϕ;

  4. |= ¬(ϕUψ) ≡ ¬ϕR¬ψ;

  5. |= ¬(ϕRψ) ≡ ¬ϕU¬ψ.

Законы взаимной зависимости.

  1. |= Fϕ ≡ ¬G¬ϕ;

  2. |= Gϕ ≡ ¬F¬ϕ;

  3. |= ϕUψ ≡ ¬(¬ϕR¬ψ);

  4. |= ϕRψ ≡ ¬(¬ϕU¬ψ);

  5. |= Fϕ ≡ true Uϕ;

  6. |= Gϕ ≡ false Rϕ.

Законы неподвижной точки.

  1. |= Fϕ ≡ ϕ ∨ XFϕ;

  2. |= Gϕ ≡ ϕ & XGϕ;

  3. |= ϕUψ ≡ ψ ∨ (ϕ & X(ϕUψ);

  4. |= ϕRψ ≡ ψ & (ϕ ∨ X(ϕRψ).

Определение LTS

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