[ prog / sol / mona ]

prog


Dijkstra's Predicate Transfomer Semantics

13 2021-10-23 21:40

>>11
Ah, I think I've got it now then. Do the following seem like accurate definitions then:

[wlp(S, R)](w) = \forall x \in S(w) : R(x)
[wp(S, R)](w) = \forall x \in S(w) : R(x) \wedge S(w) \not= \emptyset

Evaluating the negation of our two operations we then have:

non [wlp(S,R)](w)
= non [\forall x \in S(w) : R(x)]
= \exists x \in S(w) : non R(x)
non [wp(S,R)](w)
= non [\forall x \in S(w) : R(x) \wedge S(w) \not= \emptyset]
= non [\forall x \in S(w) : R(x)] \vee non [S(w) \not= \emptyset]
= \exists x \in S(w) : R(x) \vee S(w) = \emptyset

>>10 No, A Discipline of Programming.
>>12 indeed.

18


VIP:

do not edit these