20120309 formal semantics shilov_lecture06
TRANSCRIPT
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 1
Fun with Formal Program Semantics (О формальной семантике программ –
просто)
Шилов Николай Вячеславович
Computer Science клуб - Екатеринбург
Март 2012
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 2
Тема 3: Понятие о денотационной семантике языков программирования
(на примере ToyPL)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 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 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 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 F◦ m 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 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 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 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 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 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 ′′ ′′VRS\VAR(α).
– Completeness: For all super-states ss and ss , if ′ ′′[[α]](ss ) = ss , then |=′ ′′ ToyPL(ss |α)<α>(ss |α).′ ′′
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 13
Элементы лямбда-исчисления: синтаксис
• Лямбда-термы – это слова в алфавите, состоящем из переменных (x, y, z, …), абстрактора λ, точки - разделителя и круглых скобок:– любая переменная – это терм,– для любой переменной x и терма M
выражение (λx. M) – терм,– для любых термов M и N выражение (MN) –
терм.• Упражнение #4: Является ли множество лямбда-
термов контекстно-свободным языком?
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 14
Элементы лямбда-исчисления: синтаксис
• Соглашения об обозначениях:– внешние скобки опускаются;� λx,y,z. M ≡ λx.(λy.(λz. M));– MNPQ ≡ ((MN)P)Q.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 15
Элементы лямбда-исчисления: синтаксис
• Различают связанные (посредством λ) и свободные вхождения переменных в термах.
• Например, первое вхождение x в λy.xy(λx.xy) – свободное, второе – связанное, оба вхождения y в λy.xy(λx.xy) – связанные.
• Комбинатор – это терм, в котором все вхождения переменных связанные. Например, λxy.xy(λx.xy) – комбинатор, а λy.xy(λx.xy) – нет.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 16
Элементы лямбда-исчисления: аксиоматическая семантика
∀ λ-исчисление является эквициональной теорией, т.е. формулами являются равенства термов M=N. Оно аксиоматизируется следующим образом:� α-конверсия: λx.M = λy.M, если y не имеет
свободных вхождений в M;� β-конверсия: (λx.M)N = MN/x, т.е.
осуществляется подстановка N вместо всех свободных вхождений x в M но так (с использованием α-конверсии), что бы никакая свободная переменная N не стала связанной после подстановки;
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 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 19
Элементы лямбда-исчисления: теорема о неподвижной точке
• Следствие: Существует комбинатор неподвижной точки, т.е. такой комбинатор fix, что для любого терма F в λ-исчислении доказуемо равенство F(fixF) = fixF.
• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 20
Элементы лямбда-исчисления: о противоречивости λ-исчисления
• Эквициональная теория называется противоречивой, если в ней доказуемо любое равенство.
∀ λ-исчисление непротиворечиво (как это следует из теоремы Чёрча – Россера).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 22
Найди ошибку
• Упражнение #6: Покажите, что из равенства xy=xx можно вывести равенство любых термов. Найдите ошибку в приведённом выше доказательстве.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 24
Стандартные комбинаторы
• Для любых термов M иN имеем– «свёртка» [M,N] ≡ [_,_]MN = λz.zMN,
– «проекции» ([M,N])0=M и ([M,N])1=N.
• Упражнение #7: Проверьте приведённые свойства комбинаторов булевских значений, композиции, если-то-иначе, свёртки и проекций.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 26
Идея в основе классической денотационной семантике для ToyPL
• [[;]] = comp• [[if-then-else]] = if-th-el• [[while-do]] = (fix)(if-th-el)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 27
Что читать?
• Шилов Н.В. Основы синтаксиса, семантики, трансляции и верификации программ. Новосибирск: РИЦ НГУ. 2011. 292 стр.
• (Спросить у лектора в формате PDF.)
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 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 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 30
Важные даты
• Представление докладов по электронной почте: 18.03. 2012
• Извещение о включении доклада в программу семинара: 09.04.2012
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 31
Тематика
• формализмы для описания семантики;• формальные модели и семантики программ и
систем;• семантика языков программирования и языков
спецификаций;• языки формальной спецификации программ и
систем;• логики для формальной спецификации и
верификации;
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 32
Тематика
• дедуктивная верификация программ;• автоматическое доказательство теорем;• верификация моделей (model checking) программ
и систем;• статический анализ программ;• формальный подход к тестированию и
валидации;• системы и инструментальные средства
тестирования и верификации.
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 33
Программный комитет
• Непомнящий Валерий Александрович (Институт систем информатики СО РАН, [email protected]),
• Соколов Валерий Анатольевич (Ярославский государственный университет, [email protected]).
• Natasha Alechina (University of Nottingham, UK), • Баранов Сергей Николаевич (Санкт-Петербургский
институт информатики и автоматизации РАН),
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 34
Программный комитет
• Alexander Bolotov (University of Westminster, UK), • Евтушенко Нина Владимировна (Томский
государственный университет), • Захаров Владимир Анатольевич (Московский
государственный университет),• Ицыксон Владимир Михайлович (Санкт-
Петербургский государственный политехнический университет),
• Климов Андрей Валентинович (Институт прикладной математики РАН, Москва),
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 35
Программный комитет
• Boris Konev (University of Liverpool, UK),• Кулямин Виктор Вячеславович (Институт
системного программирования РАН, Москва), • Ломазова Ирина Александровна (Высшая школа
экономики, Москва), • Andrey Rybalchenko (Technical University, Munich,
Germany),• Sergey Tverdyshev (SYSGO AG, Germany),• Шилов Николай Вячеславович (Институт систем
информатики СО РАН, Новосибирск).
03/14/12 Шилов Николай Вячеславович Всего слайдов 36 36
До встречи ELSEWHERE!