36
03/14/12 Шилов Николай Вячеславович В 1 Fun with Formal Program Semantics (О формальной семантике программ – просто) Шилов Николай Вячеславович Computer Science клуб - Екатеринбург Март 2012

20120309 formal semantics shilov_lecture06

Embed Size (px)

Citation preview

Page 1: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 1

Fun with Formal Program Semantics (О формальной семантике программ –

просто)

Шилов Николай Вячеславович

Computer Science клуб - Екатеринбург

Март 2012

Page 2: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 2

Тема 3: Понятие о денотационной семантике языков программирования

(на примере ToyPL)

Page 3: 20120309 formal semantics shilov_lecture06

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 α.

Page 4: 20120309 formal semantics shilov_lecture06

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)).

Page 5: 20120309 formal semantics shilov_lecture06

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.

Page 6: 20120309 formal semantics shilov_lecture06

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;

Page 7: 20120309 formal semantics shilov_lecture06

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)ϕ ◦ дизъюнктивны (т.е. имеют непересекающиеся области определения).

Page 8: 20120309 formal semantics shilov_lecture06

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,◦ ϕ дизъюнктивны.

Page 9: 20120309 formal semantics shilov_lecture06

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 .ϕ

Page 10: 20120309 formal semantics shilov_lecture06

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...}.

Page 11: 20120309 formal semantics shilov_lecture06

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 |α).′ ′′

Page 12: 20120309 formal semantics shilov_lecture06

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.

Page 13: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 13

Элементы лямбда-исчисления: синтаксис

• Лямбда-термы – это слова в алфавите, состоящем из переменных (x, y, z, …), абстрактора λ, точки - разделителя и круглых скобок:– любая переменная – это терм,– для любой переменной x и терма M

выражение (λx. M) – терм,– для любых термов M и N выражение (MN) –

терм.• Упражнение #4: Является ли множество лямбда-

термов контекстно-свободным языком?

Page 14: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 14

Элементы лямбда-исчисления: синтаксис

• Соглашения об обозначениях:– внешние скобки опускаются;� λx,y,z. M ≡ λx.(λy.(λz. M));– MNPQ ≡ ((MN)P)Q.

Page 15: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 15

Элементы лямбда-исчисления: синтаксис

• Различают связанные (посредством λ) и свободные вхождения переменных в термах.

• Например, первое вхождение x в λy.xy(λx.xy) – свободное, второе – связанное, оба вхождения y в λy.xy(λx.xy) – связанные.

• Комбинатор – это терм, в котором все вхождения переменных связанные. Например, λxy.xy(λx.xy) – комбинатор, а λy.xy(λx.xy) – нет.

Page 16: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 16

Элементы лямбда-исчисления: аксиоматическая семантика

∀ λ-исчисление является эквициональной теорией, т.е. формулами являются равенства термов M=N. Оно аксиоматизируется следующим образом:� α-конверсия: λx.M = λy.M, если y не имеет

свободных вхождений в M;� β-конверсия: (λx.M)N = MN/x, т.е.

осуществляется подстановка N вместо всех свободных вхождений x в M но так (с использованием α-конверсии), что бы никакая свободная переменная N не стала связанной после подстановки;

Page 17: 20120309 formal semantics shilov_lecture06

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: Представьте аксиоматику λ-исчисления в виде секвенциальной форме.

Page 18: 20120309 formal semantics shilov_lecture06

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).

Page 19: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 19

Элементы лямбда-исчисления: теорема о неподвижной точке

• Следствие: Существует комбинатор неподвижной точки, т.е. такой комбинатор fix, что для любого терма F в λ-исчислении доказуемо равенство F(fixF) = fixF.

• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).

Page 20: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 20

Элементы лямбда-исчисления: о противоречивости λ-исчисления

• Эквициональная теория называется противоречивой, если в ней доказуемо любое равенство.

∀ λ-исчисление непротиворечиво (как это следует из теоремы Чёрча – Россера).

Page 21: 20120309 formal semantics shilov_lecture06

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.

Page 22: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 22

Найди ошибку

• Упражнение #6: Покажите, что из равенства xy=xx можно вывести равенство любых термов. Найдите ошибку в приведённом выше доказательстве.

Page 23: 20120309 formal semantics shilov_lecture06

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.

Page 24: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 24

Стандартные комбинаторы

• Для любых термов M иN имеем– «свёртка» [M,N] ≡ [_,_]MN = λz.zMN,

– «проекции» ([M,N])0=M и ([M,N])1=N.

• Упражнение #7: Проверьте приведённые свойства комбинаторов булевских значений, композиции, если-то-иначе, свёртки и проекций.

Page 25: 20120309 formal semantics shilov_lecture06

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: Проверьте приведённые свойства следующий, предшественник и ноль-тест.

Page 26: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 26

Идея в основе классической денотационной семантике для ToyPL

• [[;]] = comp• [[if-then-else]] = if-th-el• [[while-do]] = (fix)(if-th-el)

Page 27: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 27

Что читать?

• Шилов Н.В. Основы синтаксиса, семантики, трансляции и верификации программ. Новосибирск: РИЦ НГУ. 2011. 292 стр.

• (Спросить у лектора в формате PDF.)

Page 28: 20120309 formal semantics shilov_lecture06

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)

Page 29: 20120309 formal semantics shilov_lecture06

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

Page 30: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 30

Важные даты

• Представление докладов по электронной почте: 18.03. 2012

• Извещение о включении доклада в программу семинара: 09.04.2012

Page 31: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 31

Тематика

• формализмы для описания семантики;• формальные модели и семантики программ и

систем;• семантика языков программирования и языков

спецификаций;• языки формальной спецификации программ и

систем;• логики для формальной спецификации и

верификации;

Page 32: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 32

Тематика

• дедуктивная верификация программ;• автоматическое доказательство теорем;• верификация моделей (model checking) программ

и систем;• статический анализ программ;• формальный подход к тестированию и

валидации;• системы и инструментальные средства

тестирования и верификации.

Page 33: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 33

Программный комитет

• Непомнящий Валерий Александрович (Институт систем информатики СО РАН, [email protected]),

• Соколов Валерий Анатольевич (Ярославский государственный университет, [email protected]).

• Natasha Alechina (University of Nottingham, UK), • Баранов Сергей Николаевич (Санкт-Петербургский

институт информатики и автоматизации РАН),

Page 34: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 34

Программный комитет

• Alexander Bolotov (University of Westminster, UK), • Евтушенко Нина Владимировна (Томский

государственный университет), • Захаров Владимир Анатольевич (Московский

государственный университет),• Ицыксон Владимир Михайлович (Санкт-

Петербургский государственный политехнический университет),

• Климов Андрей Валентинович (Институт прикладной математики РАН, Москва),

Page 35: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 35

Программный комитет

• Boris Konev (University of Liverpool, UK),• Кулямин Виктор Вячеславович (Институт

системного программирования РАН, Москва), • Ломазова Ирина Александровна (Высшая школа

экономики, Москва), • Andrey Rybalchenko (Technical University, Munich,

Germany),• Sergey Tverdyshev (SYSGO AG, Germany),• Шилов Николай Вячеславович (Институт систем

информатики СО РАН, Новосибирск).

Page 36: 20120309 formal semantics shilov_lecture06

03/14/12 Шилов Николай Вячеславович Всего слайдов 36 36

До встречи ELSEWHERE!