1. Computer Science клуб - Екатеринбург
Март 2012
Fun with Formal Program Semantics
(О формальной семантике программ –
просто)
Шилов Николай Вячеславович
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 1
2. Тема 3: Понятие о денотационной
семантике языков программирования
(на примере ToyPL)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 2
3. Реляционная денотационная семантика
ToyPL
• Let VRS be the set of all variables that are admissible
in ToyPL and let SupSts be the set of all total
functions ss: VRS → Z/2N.Letusdenote
• Thus, for every super-state ss and every ToyPL-
program α, the restriction (ss|α)of ss on the set
VAR(α) is a state of α.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 3
4. Реляционная денотационная семантика
ToyPL
• Let SupSts⇒SupSts denote the set of all partial
functions f:SupSts → SupSts.
• Some useful functions in this set are defined below:
– abort is the totally undefined function ∅ on
super-states;
– skip is the identical function λss.ss on super-
states;
– for every condition ϕ the test function ϕ?=
{(ss,ss): ss |= ϕ};
– for every variable x and every expression t the
update function UPDx,t = λss. upd(ss, x, ss(t)).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 4
5. Реляционная денотационная семантика
ToyPL
• Several operations can be defined on functions in
SupSts ⇒SupSts:
– the unary identity operation I = λF.F;
– binary composition operation such that (F◦G)(ss)=
G(F(ss)) for allfunctions F,G∈(SupSts⇒SupSts) and
every super-state ss;
– (in)finitary union operation such that (∪m∈MFm)
(ss)= Fm(ss), if ss∈dom(Fm) for every (finite or
infinite) family of functions Fm∈(SupSts⇒SupSts),
m∈M, with disjoint domains, and everysuper-
state ss.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 5
6. Реляционная денотационная семантика
ToyPL
• Some other useful operations can be derived as
follows:
– for every m≥0 a unary m-power operation such
that F0= skip, F1= F and Fm+1 F◦Fm for every
function F∈(SupSts⇒SupSts);
– a binary union operation (F1∪F2)= ∪m∈{1,2}Fm for all
functions F1, F2 with disjoint domains;
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 6
7. Реляционная денотационная семантика
ToyPL
– for every condition ϕ, a binary choice operation
IFϕ such that IFϕ(F,G)= ((ϕ? ◦ F) ∪ ((¬ϕ)? ◦ G)) for
all functions F,G∈(SupSts⇒SupSts);
• Упражнение #1: Проверте, что (ϕ?◦F) и ((¬ϕ)?◦G)
дизъюнктивны (т.е. имеют непересекающиеся
области определения).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 7
8. Реляционная денотационная семантика
ToyPL
– for every condition ϕ, a unary loop operation WHϕ
such that WHϕ(F)= (∪m≥0((ϕ? ◦ F)m ◦(¬ϕ)?) for
every function F∈(SupSts⇒SupSts).
• Упражнение #2: Проверьте, что все функции (ϕ?
◦F)m◦(¬ϕ)?, m ≥ 0, дизъюнктивны.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 8
9. Реляционная денотационная семантика
ToyPL
• Now we are ready to define the relational
(denotational) semantics forToyPL. Let us consider
the following algebra
⟨(SupSts⇒SupSts), I,◦, UPD, IF, WH⟩,
• where
– UPD is the set of all update operations UPDx,t for
all variables x and expressions t,
– IF is the set of all choice operations IFϕ for every
condition ϕ,
– WH is the set of all loop operations WHϕ for every
condition ϕ.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 9
10. Реляционная денотационная семантика
ToyPL
• Assign the elements of the algebra to ToyPL-
programs and the operations of this algebra toToyPL-
constructs as follows:
• [[x:=t]]= UPDx,t;
• [[(...)]]= I = λF.F;
• [[;]]= ◦ = λF,G.(F ◦ G);
• [[if ϕ then...else...]] = IFϕ = λF,G. IFϕ(F,G);
• [[while ϕ do...]]= WHϕ = λF.WHϕ(F);
• [[prog_constr(α,β,...)]]=[[prog_constr]]([[α]] ,
[[β]] ,...) for every prog_constr∈{ ; , if−then...else...,
while−do...}.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 10
11. Реляционная денотационная семантика
ToyPL
• Relational denotational semantics for ToyPL is sound
and complete with respect to SOS ToyPL semantics in
the following sense.
• Statement 1: ForeveryToyPL-program α the following
holds:
– Soundness: For all states s′, s′′, if |=ToyPL s′<α>s′′
then [[α]](ss′)= ss′′ for all super-states ss′=(ss′|α)
and ss′′=(ss′′|α) that are equal on all variablesin
VRSVAR(α).
– Completeness: For all super-states ss′ and ss′′, if
[[α]](ss′) = ss′′, then |=ToyPL(ss′|α)<α>(ss′′|α).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 11
12. Реляционная денотационная семантика
ToyPL
• Proof: Soundness by induction on the height of the
inference tree, completeness by induction on the
program structure.
• Упражнение #3: Докажите утверждение 3.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 12
13. Элементы лямбда-исчисления: синтаксис
• Лямбда-термы – это слова в алфавите, состоящем
из переменных (x, y, z, …), абстрактора λ, точки -
разделителя и круглых скобок:
– любая переменная – это терм,
– для любой переменной x и терма M
выражение (λx. M) – терм,
– для любых термов M и N выражение (MN) –
терм.
• Упражнение #4: Является ли множество лямбда-
термов контекстно-свободным языком?
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 13
14. Элементы лямбда-исчисления: синтаксис
• Соглашения об обозначениях:
– внешние скобки опускаются;
λx,y,z. M ≡ λx.(λy.(λz. M));
– MNPQ ≡ ((MN)P)Q.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 14
15. Элементы лямбда-исчисления: синтаксис
• Различают связанные (посредством λ) и
свободные вхождения переменных в термах.
• Например, первое вхождение x в λy.xy(λx.xy) –
свободное, второе – связанное, оба вхождения y
в λy.xy(λx.xy) – связанные.
• Комбинатор – это терм, в котором все вхождения
переменных связанные. Например, λxy.xy(λx.xy) –
комбинатор, а λy.xy(λx.xy) – нет.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 15
16. Элементы лямбда-исчисления:
аксиоматическая семантика
∀ λ-исчисление является эквициональной теорией,
т.е. формулами являются равенства термов M=N.
Оно аксиоматизируется следующим образом:
α-конверсия: λx.M = λy.M, если y не имеет
свободных вхождений в M;
β-конверсия: (λx.M)N = MN/x, т.е.
осуществляется подстановка N вместо всех
свободных вхождений x в M но так (с
использованием α-конверсии), что бы никакая
свободная переменная N не стала связанной
после подстановки;
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 16
17. Элементы лямбда-исчисления:
аксиоматическая семантика
–
M=M;
M=N ⇒ N=M;
–
M=N, N=L ⇒ M=L;
–
M=N ⇒ ML=NL;
–
–
M=N ⇒ LM=LN;
правило ξ: M=N ⇒ λx.M= λx.N.
–
• Упражнение #5: Представьте аксиоматику λ-
исчисления в виде секвенциальной форме.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 17
18. Элементы лямбда-исчисления:
теорема о неподвижной точке
• Теорема:
Для любого терма F существует такой терм X,
что FX=X доказуемо в λ-исчислении.
• Доказательство: Пусть W≡ λx.F(xx), а X ≡WW.
Тогда X ≡WW ≡ λx.F(xx)W = F(WW) ≡ F(X).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 18
19. Элементы лямбда-исчисления:
теорема о неподвижной точке
• Следствие: Существует комбинатор
неподвижной точки, т.е. такой комбинатор fix,
что для любого терма F в λ-исчислении
доказуемо равенство F(fixF) = fixF.
• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 19
20. Элементы лямбда-исчисления:
о противоречивости λ-исчисления
• Эквициональная теория называется
противоречивой, если в ней доказуемо любое
равенство.
∀ λ-исчисление непротиворечиво (как это следует
из теоремы Чёрча – Россера).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 20
21. Найди ошибку
• Однако, если выполнять α- или β-редукции
неаккуратно, то можно получить противоречие.
– Пусть F≡ λxy.yx.
– Тогда FMN ≡ ((λx.(λy.yx))M)N = (λy.yM)N = NM
для любых термов M и N.
– В частности Fyx = xy.
– Но Fyx = ((λx.(λy.yx))y)x = (λy.yy)x = xx.
– Следовательно, xy=xx.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 21
22. Найди ошибку
• Упражнение #6: Покажите, что из равенства xy=xx
можно вывести равенство любых термов.
Найдите ошибку в приведённом выше
доказательстве.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 22
23. Стандартные комбинаторы
• «Булевские значения» T ≡ λxy.x и F ≡ λxy.y. Для
любых термов M и N имеем TMN=M и FMN=N.
• «Композиция» comp ≡ λxyz.y(xz). Для любых
термов M иN имеем (comp)MN = λz.N(Mz).
• «Если-то-иначе» if-th-el ≡ λxyz.xyz. Для любых
термов M иN имеем
– (if-th-el)TMN = M,
– (if-th-el)FMN = N.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 23
24. Стандартные комбинаторы
• Для любых термов M иN имеем
– «свёртка» [M,N] ≡ [_,_]MN = λz.zMN,
– «проекции» ([M,N])0=M и ([M,N])1=N.
• Упражнение #7: Проверьте приведённые свойства
комбинаторов булевских значений, композиции,
если-то-иначе, свёртки и проекций.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 24
25. Натуральные числа
• Для каждого n∈N определим комбинатор {n} по
индукции: {0} ≡ λx.x и {n+1} ≡ [F,{n}].
• Комбинаторы «следующий» S ≡ λx.[F,x],
«предшественник» P ≡ λx.xF и «ноль-тест» Z ≡
λx.xT.
• Для любого n∈N имеем:
– S{n} = {n+1} и P{n+1} = {n},
– Z{0} = T и Z{n+1} = F.
• Упражнение #8: Проверьте приведённые свойства
следующий, предшественник и ноль-тест.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 25
26. Идея в основе классической денотационной
семантике для ToyPL
• [[;]] = comp
• [[if-then-else]] = if-th-el
• [[while-do]] = (fix)(if-th-el)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 26
27. Что читать?
• Шилов Н.В. Основы синтаксиса, семантики,
трансляции и верификации программ.
Новосибирск: РИЦ НГУ. 2011. 292 стр.
• (Спросить у лектора в формате PDF.)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 27
28. Куда податься?
• Третий международный семинар «Семантика,
спецификация и верификация программ: теория и
приложения» (г. Нижний Новгород, 1-2 июля
2012).
• 7th International Computer Science Symposium in
Russia (CSR-2012)
• Specification and Verification: Theory and
Applications (PSSV 2012)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 28
29. Куда податься?
• Семинар пройдет в рамках седьмого
международного симпозиума по компьютерным
наукам в России (7th International Computer
Science Symposium in Russia, CSR-2012, July 3-7,
2012) http://agora.guru.ru
/display.php?conf=csr2012&page=item009
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 29
30. Важные даты
• Представление докладов по электронной почте:
18.03. 2012
• Извещение о включении доклада в программу
семинара: 09.04.2012
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 30
31. Тематика
• формализмы для описания семантики;
• формальные модели и семантики программ и
систем;
• семантика языков программирования и языков
спецификаций;
• языки формальной спецификации программ и
систем;
• логики для формальной спецификации и
верификации;
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 31
32. Тематика
• дедуктивная верификация программ;
• автоматическое доказательство теорем;
• верификация моделей (model checking) программ
и систем;
• статический анализ программ;
• формальный подход к тестированию и
валидации;
• системы и инструментальные средства
тестирования и верификации.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 32
33. Программный комитет
• Непомнящий Валерий Александрович (Институт
систем информатики СО РАН, vnep@iis.nsk.su),
• Соколов Валерий Анатольевич (Ярославский
государственный университет,
sokolov@uniyar.ac.ru).
• Natasha Alechina (University of Nottingham, UK),
• Баранов Сергей Николаевич (Санкт-Петербургский
институт информатики и автоматизации РАН),
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 33
34. Программный комитет
• Alexander Bolotov (University of Westminster, UK),
• Евтушенко Нина Владимировна (Томский
государственный университет),
• Захаров Владимир Анатольевич (Московский
государственный университет),
• Ицыксон Владимир Михайлович (Санкт-
Петербургский государственный политехнический
университет),
• Климов Андрей Валентинович (Институт
прикладной математики РАН, Москва),
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 34
35. Программный комитет
• Boris Konev (University of Liverpool, UK),
• Кулямин Виктор Вячеславович (Институт
системного программирования РАН, Москва),
• Ломазова Ирина Александровна (Высшая школа
экономики, Москва),
• Andrey Rybalchenko (Technical University, Munich,
Germany),
• Sergey Tverdyshev (SYSGO AG, Germany),
• Шилов Николай Вячеславович (Институт систем
информатики СО РАН, Новосибирск).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 35