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 | ||
sav07_lecture_9 [2007/04/19 10:54] vkuncak |
sav07_lecture_9 [2007/04/19 11:20] vkuncak |
||
---|---|---|---|
Line 105: | Line 105: | ||
Once we have reached above the fixpoint (using widening or anything else), we can always apply the fixpoint transformer and improve the precision of the results. | Once we have reached above the fixpoint (using widening or anything else), we can always apply the fixpoint transformer and improve the precision of the results. | ||
+ | |||
+ | If this is too slow, we can stop at any point or use a narrowing operator. | ||
=== Reduced product === | === Reduced product === | ||
Line 113: | Line 115: | ||
To obtain more precise results, we allow analyses to exchange information. | To obtain more precise results, we allow analyses to exchange information. | ||
+ | |||
+ | Reduced product: [[http://www.di.ens.fr/~cousot/COUSOTpapers/POPL79.shtml|Systematic Design of Program Analysis Frameworks]], Section 10.1. | ||
+ | |||
+ | Key point: define $\sigma : A_1 \times A_2 \to A_1 \times A_2$ by | ||
+ | \begin{equation*} | ||
+ | \sigma(a_1,a_2) = \sqcap \{ (a_1',a_2') \mid \gamma(a_1') \cap \gamma(a_2') = \gamma(a_1) \cap \gamma(a_2) \} | ||
+ | \end{equation*} | ||
+ | The function $\sigma$ improves the precision of the element of the lattice without changing its meaning. Subsequent computations with these values then give more precise results. | ||
+ | |||