Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_рекоменд-ТП-4.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
2.49 Mб
Скачать

1.7. Приклади розв’язків задач.

Припустимо, що у SIPL введено лише базові необхідні предикати: , , . Виразимо решту предикатів , =, >, , <,  через базові: у змінну res записати результат обчислення відповідного предикату над значеннями вхідних змінних A та B.

Завдання 1.7. Розписати  через  і  .

begin

if then res:=true

else res:=false

end

Побудуємо дерево виводу:

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=IF(S1(neg,S2(or,S1(neg,A=>),S1(neg,B=>))),ASres( ), ASres( ))

Доведемо часткову коректність:

Маємо початкове дане d=[A ,B ].

Sem_P(P)(d)= IF(S1(neg,S2(or,S1(neg,A=>),S1(neg,B=>))),ASres( ), ASres( ))(d)=

= =

= =

=

=

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.

Завдання 1.8. Розписати = через ≤

begin

if then res:=true

else res:=false

end

Побудуємо дерево виводу:

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=

=IF(S2(and,S2(leq,X=>, Y=>),S2(leq, Y=>, X=>)),ASres( ), ASres( ))

Доведемо часткову коректність:

d=[X ,Y ]

Sem_P(P)(d)=

=IF(S2(and,S2(leq,X=>, Y=>),S2(leq, Y=>, X=>)),ASres( ), ASres( ))(d)=

= =

= =

=

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.

Завдання 1.9. Розписати >

begin

if then res:=true

else res:=false

end

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=

=IF(S1(neg,S2(leq,X=>, Y=>)),ASres( ), ASres( ))

Доведемо часткову коректність:

d=[X ,Y ]

Sem_P(P)(d)=IF(S1(neg,S2(leq,X=>, Y=>)),ASres( ), ASres( ))(d)=

= =

= =

= =

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.

Завдання 1.10. Розписати

begin

if then res:=true

else res:=false

end

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=

=IF(S1(neg,S2(eq,X=>, Y=>)),ASres( ), ASres( ))

Доведемо часткову коректність:

d=[X ,Y ]

Sem_P(P)(d)=IF(S1(neg,S2(eq,X=>, Y=>)),ASres( ), ASres( ))(d)=

= =

= =

= =

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.

Завдання 1.11. Розписати <

begin

if then res:=true

else res:=false

end

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=

=IF(S2(and,S2(leq,X=>, Y=>),S2(neq, X=>, Y=>)),ASres( ), ASres( ))

Доведемо часткову коректність:

d=[X ,Y ]

Sem_P(P)(d)=

=IF(S2(and,S2(leq,X=>, Y=>),S2(neq, X=>, Y=>)),ASres( ), ASres( ))(d)=

= =

= =

= =

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.

Завдання 1.12. Розписати

begin

if then res:=true

else res:=false

end

Побудуємо семантичний терм:

Sem_P(P)=Sem_S(if then res:=true else res:=false)=

=IF(S2(or,S2(gr,X=>, Y=>),S2(eq, X=>, Y=>)),ASres( ), ASres( ))

Доведемо часткову коректність:

d=[X ,Y ]

Sem_P(P)(d)=IF(S2(or,S2(gr,X=>, Y=>),S2(eq, X=>, Y=>)),ASres( ), ASres( ))(d)=

= =

= =

= =

=

Часткову коректність доведено.

Програма не має циклів, тому вона завершується. А оскільки часткова коректність доведена, то маємо тотальну коректність.