Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLTA_dlya_vsekh (1) / МЛТА-КонтРаб.doc
Скачиваний:
41
Добавлен:
02.04.2015
Размер:
88.06 Кб
Скачать

3. Методические указания к выполнению контрольной работы 2

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

Пусть задана формула x (P(x)  Q(x))  x (P(x) & Q(x)). Можно попытаться установить общезначимость данной формулы (тем более что, для одноместных предикатов это алгоритмически разрешимая задача). Для этого левую часть заданной эквивалентности заменим равноcильной формулой

x (P(x)  Q(x)) на основе (5), а правую часть – формулой x(P(x) & Q(x)) на основе x T(x)  xT(x). Далее, с учетом эквивалентности

 (P1 & P2)  P1P2

правая часть примет вид x (P(x)  Q(x)), т.е. исходная формула преобразована к виду x (P(x)  Q(x))  x (P(x)  Q(x)), где левая часть равна правой. Следовательно, заданная формула является общезначимой (в ответ записываем T в латинском регистре).

Пусть задана формула x (P(x)  Q(x))  x (P(x) & Q(x)). Левую часть этой формулы можно преобразовать к виду x (P(x) & Q(x)). Таким образом, левая часть равна отрицанию правой части (в ответ записываем C в латинском регистре).

Пусть задана формула x (P(x)  Q(x))  x (P(x) & Q(x)), причем интерпретация P(x) и Q(x) берется из задачи 3. Левую часть этой формулы можно преобразовать к виду x (P(x) & Q(x)). Таким образом, левая часть не равна правой части или ее отрицанию. Используем заданную интерпретацию для установления истинности левой и правой части. Левая часть x (P(x) & Q(x)) ложна, т.к. существует x=a, при котором P(a)=0 и Q(a)=0. Правая часть x (P(x) & Q(x)) истинна, т.к. существует x=e, при котором P(e)=0 и Q(e)=1. Таким образом, исследуемая формула сведена к виду 0 1 и, следовательно, ложна при заданной интерпретации (в ответ записываем 0).

Задачи 5 и 6 посвящены верификации программ – анализу действия программ над данными. Для каждого исходного состояния данных X, для которого выполнение завершается, результирующее состояние данных Y является определенным. Это значение Y единственно для данного X, поэтому множество всех упорядоченных пар (X,Y) определяет функцию, которую будем называть программной функцией.

Мы будем использовать символьные вычисления, чтобы получить аналитическое выражение программной функции для исследуемой программы. Программную функцию f для простой программы P обозначим через [P] и определим выражением [P]={(X,Y) Y=f(X), где X – состояние поля данных до выполнения P, Y – состояние поля данных после выполнения P, {(X,Y)  Y=f(X)} – множество пар (X,Y), таких, что Y=f(X). В задаче 5 рассматривается верификация простой линейной программы, а в задаче 6 – программы с ветвлениями. Подробная методика решения приведена в учебном пособии [1, стр.29 – 35].

4. Автоматическая проверка результатов

Для облегчения проверки контрольных работ в конце работы следует привести основные результаты как показано на рис.2, а именно:

- по задаче 1 даются ответы в том порядке, в котором приведены исходные формулы;

- по задаче 2 приводятся номера высказываний, являющихся следствием заданного высказывания;

- по задаче 3 даются множества истинности предикатов в том порядке, в котором заданы предикаты;

- по задаче 4 выписываются значения формул, причем используются обозначения: T (лат) – тавтология, C (лат) – противоречие, 1 – истинна для заданной интерпретации, 0 – ложна для заданной интерпретации;

  • по задаче 5 выписываются результирующие присваивания;

- п

Вариант #1: MLTA3000

1) 1;1; s\/-p; 1; q-sp-r;-v\/q\/r; 0;1;0;1; -q-s-p-r; v\/-q\/-r\/t;

2) 2 3 5

3) {k,h,b,g,a,f,c,e,d} {j,i,g,a,f} {g,a,f} {j,i,g,a,f,c,e,d}

4) T; C; T; C; 1; 0; C; 1;

5) Q=-Ro-3*Po; R=-Ro; P=-6*Po

6) 1.1 (Qo<2)&(Po<-5): Q:= 2*Qo-Po; P:= -2*Qo-2*Po;

1.2 (Qo<2)&((Po>=-5): Q:= 2*Qo+2*Po; P:= Po;

2.1 (Qo>=2)&(Po<-2): Q:= Qo; P:= 5*Qo-3*Po;

3.2 (Qo>=2)&(Po>=-2): Q:= Qo+3*Po; P:= Po;

Рис.2

о задаче 6 выписываются условия и результирующие присваивания для каждого возможного пути.

Соседние файлы в папке MLTA_dlya_vsekh (1)