Policy Iteration within Logico-Numerical Abstract Domains

  • Pascal Sotin
  • Bertrand Jeannet
  • Franck Védrine
  • Eric Goubault
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6996)


Policy Iteration is an algorithm for the exact solving of optimization and game theory problems, formulated as equations on min max affine expressions. It has been shown that the problem of finding the least fixpoint of semantic equations on some abstract domains can be reduced to such optimization problems. This enables the use of Policy Iteration to solve such equations, instead of the traditional Kleene iteration that performs approximations to ensure convergence.

We first show in this paper that the concept of Policy Iteration can be integrated into numerical abstract domains in a generic way. This allows to widen considerably its applicability in static analysis. We then consider the verification of programs manipulating Boolean and numerical variables, and we provide an efficient method to integrate the concept of policy in a logico-numerical abstract domain that mixes Boolean and numerical properties. Our experiments show the benefit of our approach compared to a naive application of Policy Iteration to such programs.


Boolean Variable Stochastic Game Abstract Interpretation Concurrent Program Disjunctive Normal Form 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Costan, A., Gaubert, S., Goubault, E., Martel, M., Putot, S.: A policy iteration algorithm for computing fixed points in static analysis of programs. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 462–475. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Cousot, P., Cousot, R.: Abstract interpretation and application to logic programs. Journal of Logic Programming 13 (1992)Google Scholar
  3. 3.
    Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: 2nd Int. Symp. on Programming, Dunod, Paris (1976)Google Scholar
  4. 4.
    Miné, A.: The octagon abstract domain. Higher-Order and Symbolic Computation 19 (2006)Google Scholar
  5. 5.
    Sankaranarayanan, S., Sipma, H.B., Manna, Z.: Scalable analysis of linear systems using mathematical programming. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 25–41. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Halbwachs, N., Proy, Y., Roumanoff, P.: Verification of real-time systems using linear relation analysis. Formal Methods in System Design 11 (1997)Google Scholar
  7. 7.
    Jeannet, B., Miné, A.: APRON: A library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 661–667. Springer, Heidelberg (2009), CrossRefGoogle Scholar
  8. 8.
    Jeannet, B.: The BDDAPRON logico-numerical abstract domains library,
  9. 9.
    Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. on Computers 35 (1986)Google Scholar
  10. 10.
    Howard, R.: Dynamic Programming and Markov Processes. Wiley, Chichester (1960)zbMATHGoogle Scholar
  11. 11.
    Hoffman, A.J., Karp, R.M.: On nonterminating stochastic games. Management Sci. 12, 359–370 (1966)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Shapley, L.S.: Stochastic games. Proceedings of the National Academy of Sciences 39, 1095–1100 (1953)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Adjé, A., Gaubert, S., Goubault, E.: Computing the smallest fixpoint of nonexpansive mappings arising in game theory and static analysis of programs (2008)Google Scholar
  14. 14.
    Gaubert, S., Goubault, E., Taly, A., Zennou, S.: Static analysis by policy iteration on relational domains. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 237–252. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Adjé, A., Gaubert, S., Goubault, E.: Coupling policy iteration with semi-definite relaxation to compute accurate numerical invariants in static analysis. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 23–42. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  16. 16.
    Jeannet, B., Argoud, M., Lalire, G.: The Interproc interprocedural analyzer,
  17. 17.
    Miné, A.: Symbolic methods to enhance the precision of numerical abstract domains. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 348–363. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Jeannet, B.: Some experience on the software engineering of abstract interpretation tools. In: Int. Workshop on Tools for Automatic Program AnalysiS, TAPAS 2010. ENTCS, vol. 267. Elsevier, Amsterdam (2010)Google Scholar
  19. 19.
    Chang, B.Y.E., Rival, X.: Relational inductive shape analysis. In: Principles of Programming Languages, POPL 2008. ACM, New York (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Pascal Sotin
    • 1
  • Bertrand Jeannet
    • 1
  • Franck Védrine
    • 2
  • Eric Goubault
    • 2
  1. 1.INRIAFrance
  2. 2.CEA-LIST LMeASIFrance

Personalised recommendations