-
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
In label 1, x can come from label 0 or 2. FYI, label 2's [1, 10] is not explicitly written on the table too. Here may help the understanding; |
Beta Was this translation helpful? Give feedback.
-
Also, I think you may look at the latest slide of Lecture 8, since the video (is it?) you are looking seems a bit outdated. Page 44 gives detailed explanation. |
Beta Was this translation helpful? Give feedback.
-
Oh, I got it. |
Beta Was this translation helpful? Give feedback.
In label 1, x can come from label 0 or 2.
label 0 : [0, 0]
label 2 : [1, 10]
FYI, label 2's [1, 10] is not explicitly written on the table too.
Here may help the understanding;
Iter 1 's label 0 is \bot because before doing
x:=0
, there is nothing defined.Iter 1's label 1 is [0, 10] because before doing
br (x < 10) L2 L3
, x can be [0, 0] (if from label 0), or [1, 10] (if from label 2), so we must join the two to get the sound abstract value of x before doingbr (x < 10) L2 L3
Iter 1's label 2 is [0, 9] because before doing
x := add x 1
, x can be [0, 9] (since it should be jumped from L1, by passing the filterx < 10
)