Page 68 - 6571
P. 68

тивість живучості – це тотальна (повна) коректність, тобто час-
                  ткова  коректність  плюс  завершуваність  (всі  історії  закінчують
                  своє виконання).
                        Предикати P та Q в трійці часто називаються твердженнями,

                  оскільки вони стверджують, що стан програми має задовольняти
                  предикату,  щоб  інтерпретація  трійки  була  істинною.  Таким  чи-
                  ном,  твердження  характеризує  допустимий  стан  програми.  Пре-

                  дикат P називається передумовою S. Він описує умову, якій має
                  задовольняти стан перед початком виконання S. Предикат  Q  на-
                  зивається  післяумовою  S.  Він  описує  стан  після  виконання  S  за

                  умови,  що  виконання  S  завершується.  Двома  особливими  твер-
                  дженнями є true (істина), що характеризує всі стани програми, і
                  false (хиба), яке не описує жодного стану програми.

                        Для того щоб інтерпретація могла виступати моделлю логіки
                  програмування, аксіоми і правила виведення ЛП повинні бути не-
                  суперечливими. Це гарантує, що всі доказові теореми в ЛП несу-
                  перечливі. Наприклад, дана трійка є теоремою:

                        {x == 0} x = x+1; {x == 1}

                        Однак наступна трійки не буде теоремою, оскільки процеду-

                  ра  присвоєння  значення  змінній  x  не  може  змінити  значення
                  змінної y на 1:

                        {x == 0} x = x+1; {y == 1}

                        Найважливішою  аксіомою  логіки  програмування  є  аксіома,
                  пов’язана із операцією присвоєння.

                        Аксіома          присвоєнняформально                 представляється              як
                  {P      } x =  e  { }P , де запис  P         визначає текстуальну підстано-
                     x¬  e                               x¬  e
                  вку виду «замінити всі вільні входження змінної x в предикат  P

                  виразом e». Змінна називається вільною у предикаті, якщо вона
                  не входить в область дії квантора існування або загальності, який

                  має змінну з тим же іменем. Аксіома присвоєння говорить про те,
                  що якщо необхідно, щоб операція присвоєння породжувала стан,
                  який  задовольняє  предикату  P,  то  попередній  стан  повинен
                  задовольняти предикату  P, в якому замість змінної x записаний

                  вираз e.
                        Як приклад для цієї аксіоми наведемо наступну трійку:

                        {1 == 1} x = 1; {x == 1}



                                                              67
   63   64   65   66   67   68   69   70   71   72   73