Formal Methods in System Design

, Volume 29, Issue 1, pp 79–95 | Cite as

Some ways to reduce the space dimension in polyhedra computations

  • N. Halbwachs
  • D. Merchat
  • L. Gonnord


Convex polyhedra are often used to approximate sets of states of programs involving numerical variables. The manipulation of convex polyhedra relies on the so-called double description, consisting of viewing a polyhedron both as the set of solutions of a system of linear inequalities, and as the convex hull of a system of generators, i.e., a set of vertices and rays. The cost of these manipulations is highly dependent on the number of numerical variables, since the size of each representation can be exponential in the dimension of the space. In this paper, we investigate some ways for reducing the dimension: On one hand, when a polyhedron satisfies affine equations, these equations can obviously be used to eliminate some variables. On the other hand, when groups of variables are unrelated with each other, this means that the polyhedron is in fact a Cartesian product of polyhedra of lower dimensions. Detecting such Cartesian factoring is not very difficult, but we adapt also the operations to work on Cartesian products. Finally, we extend the applicability of Cartesian factoring by applying suitable variable change, in order to maximize the factoring.


Program analysis Linear relation analysis Convex polyhedra Double description Cartesian product of polyhedra 


  1. 1.
    Bjorner N, Browne A, Colon M, Finkbeiner B, Manna Z, Sipma H, Uribe T (2000) Verifying temporal properties of reactive systems: A STeP tutorial. Form Meth Syst Des 16:227–270Google Scholar
  2. 2.
    Bjorner N, Anca Browne I, Manna Z (1997) Automatic generation of invariants and intermediate assertions. Theor Comp Sci 173(1):49–87Google Scholar
  3. 3.
    Blanchet B, Cousot P, Cousot R, Feret J, Mauborgne L, Miné A, Monniaux D, Rival X (2003) A static analyzer for large safety-critical software. In: PLDI 2003, ACM SIGPLAN SIGSOFT Conference on Programming Language Design and Implementation, San Diego (Ca.), pp 196–207Google Scholar
  4. 4.
    Bardin S, Finkel A, Leroux J, Petrucci L (2003) Fast: Fast acceleration of symbolic transition systems. In: CAV’03. Boulder (Colorado), LNCS 2725, Springer-Verlag, pp 118–121Google Scholar
  5. 5.
    Bagnara R, Ricci E, Zaffanella E, Hill PM (2002) Possibly not closed convex polyhedra and the parma polyhedra library. In: Hermenegildo MV, Puebla G (ed) 9th International Symposium on Static Analysis, SAS’02, Madrid, Spain, LNCS 2477Google Scholar
  6. 6.
    Cousot P, Halbwachs N (1978) Automatic discovery of linear restraints among variables of a program. In: 5th ACM Symposium on Principles of Programming Languages, POPL’78, Tucson, ArizonaGoogle Scholar
  7. 7.
    Chernikova NV (1968) Algorithm for discovering the set of all solutions of a linear programming problem. USSR Comp Math Math Phys 8(6):282–293Google Scholar
  8. 8.
    Clauss Ph, Loechner V (1998) Parametric analysis of polyhedral iteration spaces. J. VLSI Signal Process 19(2)Google Scholar
  9. 9.
    Dor N, Rodeh M, Sagiv M (2001) Cleanness checking of string manipulations in C programs via integer analysis. In: Cousot P (ed) SAS’01, Paris, LNCS 2126Google Scholar
  10. 10.
    Feautrier P (1996) Automatic parallelization in the polytope model. In: The Data Parallel Programming model: Foundations, HPF realization, and scientific applications, LNCS 1132, Springer Verlag, pp 79–103Google Scholar
  11. 11.
    Gopan D, DiMaio F, Dor N, Reps T, Sagiv M (2004) Numeric domains with summarized dimensions. In: TACAS’04, Barcelona, pp 512–529Google Scholar
  12. 12.
    Henzinger TA, Ho P-H, Wong-Toi H (1997) Hytech: A model checker for hybrid systems. Softw Tools Technol Transfer 1:110–122Google Scholar
  13. 13.
    Halbwachs N, Merchat D, Parent-Vigouroux C (2003) Cartesian factoring of polyhedra in linear relation analysis. In: Static Analysis Symposium, SAS’03, San DiegoGoogle Scholar
  14. 14.
    Halbwachs N, Proy YE, Roumanoff P (1997) Verification of real-time systems using linear relation analysis. Form Meth Syst Des 11(2):157–185Google Scholar
  15. 15.
    Irigoin F, Jouvelot P, Triolet R (1991) Semantical interprocedural parallelization: An overview of the PIPS project. In: ACM Int. Conf. on Supercomputing, ICS’91, KölnGoogle Scholar
  16. 16.
    Irigoin F, Nguyen D (2004) Private communicationGoogle Scholar
  17. 17.
    Karr M (1976) Affine relationships among variables of a program. Acta Inform 6:133–151Google Scholar
  18. 18.
    LeVerge H (1992) A note on Chernikova's algorithm. 635, IRISAGoogle Scholar
  19. 19.
    Loechner V, Mongenet C (1995) A toolbox for affine recurrence equations parallelization. In: International Conference and Exhibition on High-Performance Computing and Networking, pp 263–268Google Scholar
  20. 20.
    LeVerge H, Mauras Ch, Quinton P (1991) The alpha language and its use for the design of systolic arrays. J VLSI Signal Process Syst 3(3):173–182Google Scholar
  21. 21.
    Motzkin TS, Raiffa H, Thompson GL, Thrall RM (1953) The double description method. In: Kuhn HW, Tucker AW (eds) Contribution to the theory of games, Vol II. Annals of Mathematic Studies, nr 28, Princeton University PressGoogle Scholar
  22. 22.
    Muchnick SS (1997) Advanced compiler design implementation. Morgan Kaufmann PubGoogle Scholar
  23. 23.
    Quilleré F, Rajopadhye S (2000) Optimizing memory usage in the polyhedral model. ACM TOPLAS, 22(5)Google Scholar
  24. 24.
    Tip F (1995) A survey of program slicing techniques. J. Program Languages 3(3):121–189Google Scholar
  25. 25.
    Wilde DK (1993) A library for doing polyhedral operations. 785, IRISAGoogle Scholar

Copyright information

© Springer Science + Business Media, LLC 2006

Authors and Affiliations

  1. 1.Vérimag is a Joint Laboratory, of Université Joseph FourierCNRS and INPG associated with IMAGVérimagFrance

Personalised recommendations