Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sav08:interval_analysis_and_widening [2008/05/20 19:58] vkuncak |
sav08:interval_analysis_and_widening [2008/05/20 20:33] vkuncak |
||
---|---|---|---|
Line 41: | Line 41: | ||
Approaches: | Approaches: | ||
- | * always widen | + | * always apply widening (we will assume this) |
* iterate a few times with $H_i$ only (without using $w$), if not a fixpoint at this program point, then widen. | * iterate a few times with $H_i$ only (without using $w$), if not a fixpoint at this program point, then widen. | ||
* this is not monotonic: if you start at fixpoint, it converges, if start below, can jump over fixpoint | * this is not monotonic: if you start at fixpoint, it converges, if start below, can jump over fixpoint | ||
Line 49: | Line 49: | ||
Widening: $\bot, \ldots, ((W \circ F)^{\#})^n(\bot), \ldots$ | Widening: $\bot, \ldots, ((W \circ F)^{\#})^n(\bot), \ldots$ | ||
- | Narrowing: apply $F^{\#}$ after finding fixpoint of $(W \circ F)^{\#}$, to improve precision. | ||
- | Why will narrowing improve the result? | + | Here, $x \sqsubseteq W(x)$ for all $x$ by definition of $W$ |
+ | |||
+ | Narrowing: after finding fixpoint of $(W \circ F)^{\#}$, apply $F^{\#}$ to improve precision. | ||
+ | |||
+ | Observation: if $F^{\#}$ and $W$ are $\omega$-continuous functions and $x \sqsubseteq W(x)$ for all $x$, then narrowing will improve the result, that is, if $x_* = lfp (F^{\#})$ and $y_* = lfp (W \circ F^{\#})$, then | ||
+ | \[ | ||
+ | x_* = F(x_*) \sqsubseteq F^{\#}(y_*) \sqsubseteq (W \circ F^{\#})(y_*) \sqsubseteq y_* | ||
+ | \] | ||