SlideShare a Scribd company logo
Computer Science клуб - Екатеринбург
                        Март 2012



        Fun with Formal Program Semantics
      (О формальной семантике программ –
                     просто)
             Шилов Николай Вячеславович




03/14/12           Шилов Николай Вячеславович Всего слайдов 36   1
Тема 3: Понятие о денотационной
       семантике языков программирования

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




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   2
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Элементы лямбда-исчисления: синтаксис

• Лямбда-термы – это слова в алфавите, состоящем
  из переменных (x, y, z, …), абстрактора λ, точки -
  разделителя и круглых скобок:
   – любая переменная – это терм,
   – для любой переменной x и терма M
     выражение (λx. M) – терм,
   – для любых термов M и N выражение (MN) –
     терм.
• Упражнение #4: Является ли множество лямбда-
  термов контекстно-свободным языком?
03/14/12         Шилов Николай Вячеславович Всего слайдов 36   13
Элементы лямбда-исчисления: синтаксис

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




03/14/12         Шилов Николай Вячеславович Всего слайдов 36   14
Элементы лямбда-исчисления: синтаксис

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


03/14/12        Шилов Николай Вячеславович Всего слайдов 36   15
Элементы лямбда-исчисления:
            аксиоматическая семантика
∀ λ-исчисление является эквициональной теорией,
  т.е. формулами являются равенства термов M=N.
  Оно аксиоматизируется следующим образом:
     α-конверсия: λx.M = λy.M, если y не имеет
     свободных вхождений в M;
     β-конверсия: (λx.M)N = MN/x, т.е.
     осуществляется подстановка N вместо всех
     свободных вхождений x в M но так (с
     использованием α-конверсии), что бы никакая
     свободная переменная N не стала связанной
     после подстановки;

03/14/12         Шилов Николай Вячеславович Всего слайдов 36   16
Элементы лямбда-исчисления:
            аксиоматическая семантика
     –
    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
Элементы лямбда-исчисления:
           теорема о неподвижной точке
• Теорема:
  Для любого терма 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
Элементы лямбда-исчисления:
           теорема о неподвижной точке
• Следствие: Существует комбинатор
  неподвижной точки, т.е. такой комбинатор fix,
  что для любого терма F в λ-исчислении
  доказуемо равенство F(fixF) = fixF.
• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).




03/14/12         Шилов Николай Вячеславович Всего слайдов 36   19
Элементы лямбда-исчисления:
           о противоречивости λ-исчисления
• Эквициональная теория называется
  противоречивой, если в ней доказуемо любое
  равенство.
∀ λ-исчисление непротиворечиво (как это следует
  из теоремы Чёрча – Россера).




03/14/12           Шилов Николай Вячеславович Всего слайдов 36   20
Найди ошибку
• Однако, если выполнять α- или β-редукции
  неаккуратно, то можно получить противоречие.
   – Пусть 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
Найди ошибку

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




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   22
Стандартные комбинаторы

• «Булевские значения» 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
Стандартные комбинаторы

• Для любых термов M иN имеем
  – «свёртка» [M,N] ≡ [_,_]MN = λz.zMN,
  – «проекции» ([M,N])0=M и ([M,N])1=N.
• Упражнение #7: Проверьте приведённые свойства
  комбинаторов булевских значений, композиции,
  если-то-иначе, свёртки и проекций.




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   24
Натуральные числа

• Для каждого 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
Идея в основе классической денотационной
            семантике для ToyPL
• [[;]] = comp
• [[if-then-else]] = if-th-el
• [[while-do]] = (fix)(if-th-el)




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

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




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   27
Куда податься?

• Третий международный семинар «Семантика,
  спецификация и верификация программ: теория и
  приложения» (г. Нижний Новгород, 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
Куда податься?

• Семинар пройдет в рамках седьмого
  международного симпозиума по компьютерным
  наукам в России (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
Важные даты

• Представление докладов по электронной почте:
  18.03. 2012
• Извещение о включении доклада в программу
  семинара: 09.04.2012




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

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



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

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


03/14/12       Шилов Николай Вячеславович Всего слайдов 36   32
Программный комитет

• Непомнящий Валерий Александрович (Институт
  систем информатики СО РАН, vnep@iis.nsk.su),
• Соколов Валерий Анатольевич (Ярославский
  государственный университет,
  sokolov@uniyar.ac.ru).

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



03/14/12        Шилов Николай Вячеславович Всего слайдов 36   33
Программный комитет

• Alexander Bolotov (University of Westminster, UK),
• Евтушенко Нина Владимировна (Томский
  государственный университет),
• Захаров Владимир Анатольевич (Московский
  государственный университет),
• Ицыксон Владимир Михайлович (Санкт-
  Петербургский государственный политехнический
  университет),
• Климов Андрей Валентинович (Институт
  прикладной математики РАН, Москва),


03/14/12         Шилов Николай Вячеславович Всего слайдов 36   34
Программный комитет

• Boris Konev (University of Liverpool, UK),
• Кулямин Виктор Вячеславович (Институт
  системного программирования РАН, Москва),
• Ломазова Ирина Александровна (Высшая школа
  экономики, Москва),
• Andrey Rybalchenko (Technical University, Munich,
  Germany),
• Sergey Tverdyshev (SYSGO AG, Germany),
• Шилов Николай Вячеславович (Институт систем
  информатики СО РАН, Новосибирск).

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




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

More Related Content

PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PDF
PDF
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
PDF
20111120 circuit complexity_seminar_lecture09_alexeenko
PDF
Основы MATLAB. Численные методы
PDF
Метод конечных разностей
PDF
Метод отдельных тел
PDF
20091129 algorithmsfornphardproblems kulikov_lecture10
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
20111120 circuit complexity_seminar_lecture09_alexeenko
Основы MATLAB. Численные методы
Метод конечных разностей
Метод отдельных тел
20091129 algorithmsfornphardproblems kulikov_lecture10

What's hot (20)

PDF
Решение краевых задач методом конечных элементов
PDF
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
PPT
Funkciya y cos_ee_svojstva_i_grafik
PPTX
Predel funk
PDF
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
PDF
20130302 np algorithms_kulikov_lecture04-05_sat
PPT
20120309 formal semantics shilov_lecture03
PDF
Факторизационные модели в рекомендательных системах
PDF
Методы численного интегрирования
PPT
Тригонометрические функции числового аргумента
PDF
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
PDF
Сплайн интерполяция
PDF
Soboland Sat
PDF
20101007 proof complexity_hirsch_lecture04
PDF
Численное решение ОДУ. Метод Эйлера
PPT
графы
PDF
Get Ft
PDF
07 бибердорф gala
PDF
Pr i-7
PDF
20111202 machine learning_nikolenko_lecture02
Решение краевых задач методом конечных элементов
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Funkciya y cos_ee_svojstva_i_grafik
Predel funk
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
20130302 np algorithms_kulikov_lecture04-05_sat
20120309 formal semantics shilov_lecture03
Факторизационные модели в рекомендательных системах
Методы численного интегрирования
Тригонометрические функции числового аргумента
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Сплайн интерполяция
Soboland Sat
20101007 proof complexity_hirsch_lecture04
Численное решение ОДУ. Метод Эйлера
графы
Get Ft
07 бибердорф gala
Pr i-7
20111202 machine learning_nikolenko_lecture02
Ad

Viewers also liked (7)

PDF
Medical symbol
PDF
Certificado Impacta Tecnologia
PPSX
Philippines
PPS
Still life- By Henrik Bonnevier
PDF
Thanh cong cua marketing
PDF
ldc dev-clojure
DOCX
Certificado
Medical symbol
Certificado Impacta Tecnologia
Philippines
Still life- By Henrik Bonnevier
Thanh cong cua marketing
ldc dev-clojure
Certificado
Ad

Similar to 20120309 formal semantics shilov_lecture06 (20)

PDF
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
PPT
20120309 formal semantics shilov_lecture05
PDF
20101002 ontology konev_lecture07
PPTX
Урок 6. Чистое лямбда-исчисление.
PDF
20110515 systems of typed lambda_calculi_moskvin_lecture10
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
PDF
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
PDF
20110515 systems of typed lambda_calculi_moskvin_lecture09
PPT
теория рекурсивных функций
PDF
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
PPT
лекция 16
PDF
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
PPTX
Логічні вирази та логічні операції
PDF
Автоматическое доказательство теорем
PPT
20120309 formal semantics shilov_lecture02
PPT
20120309 formal semantics shilov_lecture04
PPTX
Functional Programing
PPT
19
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
20120309 formal semantics shilov_lecture05
20101002 ontology konev_lecture07
Урок 6. Чистое лямбда-исчисление.
20110515 systems of typed lambda_calculi_moskvin_lecture10
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110515 systems of typed lambda_calculi_moskvin_lecture09
теория рекурсивных функций
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
лекция 16
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
Логічні вирази та логічні операції
Автоматическое доказательство теорем
20120309 formal semantics shilov_lecture02
20120309 formal semantics shilov_lecture04
Functional Programing
19

More from Computer Science Club (20)

PDF
20141223 kuznetsov distributed
PDF
Computer Vision
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140531 serebryany lecture02_find_scary_cpp_bugs
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
20140511 parallel programming_kalishenko_lecture12
PDF
20140427 parallel programming_zlobin_lecture11
PDF
20140420 parallel programming_kalishenko_lecture10
PDF
20140413 parallel programming_kalishenko_lecture09
PDF
20140329 graph drawing_dainiak_lecture02
PDF
20140329 graph drawing_dainiak_lecture01
PDF
20140310 parallel programming_kalishenko_lecture03-04
PDF
20140223-SuffixTrees-lecture01-03
PDF
20140216 parallel programming_kalishenko_lecture01
PDF
20131106 h10 lecture6_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131027 h10 lecture5_matiyasevich
PDF
20131013 h10 lecture4_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
PDF
20131006 h10 lecture3_matiyasevich
20141223 kuznetsov distributed
Computer Vision
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
20140511 parallel programming_kalishenko_lecture12
20140427 parallel programming_zlobin_lecture11
20140420 parallel programming_kalishenko_lecture10
20140413 parallel programming_kalishenko_lecture09
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture01
20140310 parallel programming_kalishenko_lecture03-04
20140223-SuffixTrees-lecture01-03
20140216 parallel programming_kalishenko_lecture01
20131106 h10 lecture6_matiyasevich
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
20131013 h10 lecture4_matiyasevich
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich

20120309 formal semantics shilov_lecture06

  • 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
  • 36. До встречи ELSEWHERE! 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 36