Семантика на програмните езици. Индуктивно правило на Скот за области на Скот и рекурсивни програми
| Информационни технологии | 2009-12-04 | 64 сваляния |
15. Индуктивно правило на Скот за области на Скот и рекурсивни програми.
А1 A2i C2i ‡ g f1 } fi b 1 ,.., b n a1 ,.., an a1 f1 } b ‡ aк a1 }1a2}1... }1aк }1... h= g0 f h а1 g А3 А2 А1 f yхy N В Nn N n " $ x k F mk N n c1 (yхy, y vy) v1 ,..., vк € x1
15.Индукционно правило на Скот за области на Скот и рекурсивни програми.
Свойството Р наричаме непрекъснато ако при всеки избор на монотонно растяща редица _b0 _, _b 1 _,...от елементи на А е в сила импликацията "r(Р(_br _)Р(_br _)).Нека fi :А Аi ,i=1,,k,са непрекъснати изображения и yаy= a1 ,.., aк е минималното решение на системата fi (Х1 ,.., Хк )= Хi , i=1,...,к.Нека Р е непрекъснато свойство Р(), където е минималният елемент на А ,и при всеки избор на _b _ А е в сила импликацията Р(_b_)Р(f1 (_b_),..., fк (_b_)) .Тогава Р(_а_).Нека g1 и g2 са непрекъснати изображения на А в А.Тогава свойството
| Р(_b_)= |
|
| |
е непрекъснато.Конюнкция на непрекъснати свойства е непрекъснато свойство.Нека разгледаме рекурсивната програма R:
c0 (Х1,..., Хn ,F1m1 ,, Fkmk ), where
Fimi (Х1,..., Хmi )= ci (Х1 ,, Хmi , F1m1 ,, Fkmk),i=1,..,k.
В зависимост от начина на предаване на параметрите имаме две семантики Dv (R) и Dn (R) на R.Да вземем например едно условие за частична коректност Р:{tt,ff} от вида Р(f) " yаy(! f (yаy)^I(yаy)О(yаy, fi(yаy))).Да предположим първо че желаем да покажем Р за Dv (R).За целта разглеждаме свойството Р1 : F{tt,ff}, дефинирано с еквивалентността Р1 (yx y) " yаy(! c0 (yаy,yx y)^(yаy)О(yаy,c0 (yаy,yx y))).
Свойството Р1 е непрекъснато.
Нека _x0_,_x1_,... е монотонно растяща редица от елементи F с точна горна граница yx y и нека Р1 приема стойност tt за всеки член на редицата.Да фиксираме елементът yаy на N n и да предположим че (yаy) и ! c0 (yаy, yx y).Намираме член _xк_ на редицата такъв че c0 (yаy yx y ) c0 (yаy,_xк_).Тъй като Р1 (_xк_)=tt имаме О(yаy,c0 (yаy,_xк_)),откъдето веднага следва и О(yаy,c0 (yаy,_x_)).Нека yvy= v1 ,..., vк е минимално решение на системата съответно на R в F.От дефиницията на Dv (R) веднага следва че Р(Dv (R)) Р1 (yvy).За да покажем верността на Р(Dv (R)) можем да използваме правилото на Скот приложено за условието Р1 и системата съответно на R в областта F.При прилагането на това правило понякога се налага усилим Р1 ,добавяйки допълнителни условия за частична коректност описващи свойствата на функциите v1 ,..., vк .Проблемът за намиране на подходящи допълнителни условия е сходен с този за намиране на подходящ инвариант на цикъл при използването на метода на Флойд за доказателство на коректност на блок-схеми.НЕка R1 е рекурсивната програма:
F1 (Х) where
F1 (Х)=if Х=0 then 1 else F1 (Х-1)+ F2 (Х-1)
F2 (Х)= if Х=0 then 0 else F2 (Х+1).
Ще покажем че "а(!Dv (R1)(а) Dv (R)(а) 1).
Разглеждаме условията Р1 (x1 , x2) "а(!x1 (а) x1(а) 1),
Р2 (x1 , x2)Ј "а(!x2 (а)ђ x2(а) 0).
Тагове от реферата: ндуктивно, програмнит, семаика, рекурсивни, правил, програми











