D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while...
Transcript of D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while...
![Page 1: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/1.jpg)
Cpo’s and domains
A chain complete poset, or cpo for short, is a poset (D,!) inwhich all countable increasing chains d0 ! d1 ! d2 ! . . . haveleast upper bounds,
!
n!0 dn:
"m # 0 . dm !"
n!0
dn (lub1)
"d $ D . ("m # 0 . dm ! d) %"
n!0
dn ! d. (lub2)
A domain is a cpo that possesses a least element, &:
"d $ D .& ! d.
32
![Page 2: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/2.jpg)
Continuity and strictness
• IfD and E are cpo’s, the function f is continuous iff
1. it is monotone, and
2. it preserves lubs of chains, i.e. for all chainsd0 ! d1 ! . . . inD, it is the case that
f(!
n!0
dn) =!
n!0
f(dn) in E.
38
![Page 3: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/3.jpg)
Continuity and strictness
• IfD and E are cpo’s, the function f is continuous iff
1. it is monotone, and
2. it preserves lubs of chains, i.e. for all chainsd0 ! d1 ! . . . inD, it is the case that
f(!
n!0
dn) =!
n!0
f(dn) in E.
38
![Page 4: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/4.jpg)
Continuity and strictness
• IfD and E are cpo’s, the function f is continuous iff
1. it is monotone, and
2. it preserves lubs of chains, i.e. for all chainsd0 ! d1 ! . . . inD, it is the case that
f(!
n!0
dn) =!
n!0
f(dn) in E.
38
![Page 5: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/5.jpg)
Continuity and strictness
• IfD and E are cpo’s, the function f is continuous iff
1. it is monotone, and
2. it preserves lubs of chains, i.e. for all chainsd0 ! d1 ! . . . inD, it is the case that
f(!
n!0
dn) =!
n!0
f(dn) in E.
• IfD and E have least elements, then the function f is strictiff f(") = ".
38
![Page 6: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/6.jpg)
Tarski’s Fixed Point Theorem
Let f : D !D be a continuous function on a domainD. Then
• f possesses a least pre-fixed point, given by
fix (f) =!
n!0
fn(").
• Moreover, fix (f) is a fixed point of f , i.e. satisfiesf"
fix (f)#
= fix (f), and hence is the least fixed point of f .
39
![Page 7: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/7.jpg)
Pre-fixed points
LetD be a poset and f : D!D be a function.
An element d " D is a pre-fixed point of f if it satisfiesf(d) # d.
The least pre-fixed point of f , if it exists, will be written
fix (f)
It is thus (uniquely) specified by the two properties:
f(fix (f)) # fix (f) (lfp1)
$d " D. f(d) # d % fix (f) # d. (lfp2)
28
![Page 8: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/8.jpg)
![Page 9: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/9.jpg)
![Page 10: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/10.jpg)
![Page 11: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/11.jpg)
![Page 12: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/12.jpg)
![Page 13: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/13.jpg)
![Page 14: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/14.jpg)
![Page 15: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/15.jpg)
![Page 16: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/16.jpg)
![Page 17: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/17.jpg)
![Page 18: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/18.jpg)
![Page 19: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/19.jpg)
![Page 20: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/20.jpg)
![Page 21: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/21.jpg)
![Page 22: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/22.jpg)
![Page 23: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/23.jpg)
![Page 24: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/24.jpg)
![Page 25: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/25.jpg)
![Page 26: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/26.jpg)
Fixed point property of[[while B do C]]
[[while B do C]] = f[[B]],[[C]]([[while B do C]])
where, for each b : State →{true, false} and
c : State ⇀ State , we define
fb,c : (State ⇀ State) → (State ⇀ State)as
fb,c = λw ∈ (State ⇀ State). λs ∈ State.
if(b(s), w(c(s)), s
).
• Why does w = f[[B]],[[C]](w) have a solution?
• What if it has several solutions—which one do we take to be
[[while B do C]]?
17
![Page 27: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/27.jpg)
Fixed point property of[[while B do C]]
[[while B do C]] = f[[B]],[[C]]([[while B do C]])
where, for each b : State →{true, false} and
c : State ⇀ State , we define
fb,c : (State ⇀ State) → (State ⇀ State)as
fb,c = λw ∈ (State ⇀ State). λs ∈ State.
if(b(s), w(c(s)), s
).
• Why does w = f[[B]],[[C]](w) have a solution?
• What if it has several solutions—which one do we take to be
[[while B do C]]?
17
![Page 28: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/28.jpg)
![Page 29: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/29.jpg)
![Page 30: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/30.jpg)
![Page 31: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/31.jpg)
![Page 32: D, d d m 0 .d d · Fixed point property of [[while B do C]] [[while B do C]] = f[[B]],[[C]]([[while B do C]]) where, for each b : State →{true,false} and c : State ⇀State, we](https://reader035.fdocuments.net/reader035/viewer/2022062302/5ec79fe68b478e2d9e0d9cb4/html5/thumbnails/32.jpg)
[[while B do C]]
[[while B do C]]
= fix (f[[B]],[[C]])
=!
n!0 f[[B]],[[C]]n(!)
= !s " State."
##$
##%
[[C]]k(s) if k # 0 is such that [[B]]([[C]]k(s)) = false
and [[B]]([[C]]i(s)) = true for all 0 $ i < k
undefined if [[B]]([[C]]i(s)) = true for all i # 0
40