1
Ynon Flum
Program verification – Lesson No.4:
*Note: numbers in brackets (π) are slide references
Recap on formal semantics
We've seen in the previous lesson the operational semantics
(A.K.A - state transformer semantics) – natural ("big step") and
structural ("small step").
Today: Denotational semantics
Key idea: Denotations – 'a mathematical meaning for a program'.
We are trying to find a mathematical structure (a model) whose
elements will be the interpretations of our language's statements.
Denotational semantics 'interprets' expressions and statements as
functions from states to semantic categories' domains(slide 12)
Important features of denotational semantics:
o Syntax independence: The semantics does not involve
syntactic objects (Unlike SOS for example, which has
syntactic statements and expressions included in its
inference rules system)
o Soundness: Differently observed programs should have
different meanings (Denotations)
o Full Abstractions – Two programs which have different
denotations can be observed as different(slide 17)
2
Ynon Flum
For example: Consider the two following functions:
1.
𝜆𝑥. (𝑥 + 𝑥 + 𝑥)
2.
𝜆𝑥. (𝑥 ∗ 3)
Both are the same semantically and hence should have the
same denotation.
o Compositionality – The semantics for compound statements
depend on their sub-statements and expressions.
We consider the while language defined before as an example.
Syntax (9):
Semantic categories: (12)
Semantics of arithmetic operations(19-20)
Semantics of Boolean expressions (21)
3
Ynon Flum
Non-Termination - A Problem
Encountered when we tried to define while statements'
denotation
We want the intuitive functionality of:
We are trying to find a function that will describe the While loop
correctly, but does it exist?
First attempt of a solution, define:
But-
Bottom line: We've got an equation defining a property of the
function that we are looking for, we need some mathematical
tools to help us solve this functional recursive equation.
4
Ynon Flum
Solving recursive equations – Introduction to domain
theory:
Dictionary: (definitions and examples in 33-48)
1. Partial Orders:
* A set with a partial order will be called a poset.
*Note: from now and on our relation will be represented by:
2. Chains:
3. Monotonicity:
4. Upper bound:
5
Ynon Flum
5. Least Upper bound: (Symbolized by:
)
Some Properties:
6. Complete partial order (cpo):
7. Pointed complete partial order (pcpo):
8. Continuous functions:
Intuitively, a function is continuous when applying it to the least upper
bound of a chain is the same as taking the least upper bound of the
chain resulting from its point-wise application.
6
Ynon Flum
Connecting the formalism and our needs(49-61):
Properties we are looking for(to the meaning our semantics give
to our programs) :
o 1. Monotonicity – the more information (input length) our
program has, the more accurate its answer is going to be.
o 2. Continuity – when producing an output, infinite lookahead (which we cannot obtain in the perpetual
understanding of computations) does not give us more
information than finite inputs.
We wanted our denotation for the while statement to have the
following property:
So we've defined the following function (F):
Now we see that our problem can be reduced to finding a fixed
point of F, but we are looking for a specific one.
7
Ynon Flum
First, we've limited our search to continuous fixed points.
We've the following relation on functions (F is continuous under
this relation)
This definition models the following properties:
Then we've proved a theorem (Tarski's fixed point theorem)
guaranteeing us the existence of a minimal fixed point (under the
assumptions that F and W are continuous)
Finally, we've got a satisfying and correct denotation for our while
statements:
Example that shows that the definition acts as we want it to:
© Copyright 2026 Paperzz