Skip to main content
Log in

Mathematical programming: Turing completeness and applications to software analysis

  • Published:
Journal of Combinatorial Optimization Aims and scope Submit manuscript

Abstract

Mathematical programming is Turing complete, and can be used as a general-purpose declarative language. We present a new constructive proof of this fact, and showcase its usefulness by discussing an application to finding the hardest input of any given program running on a Minsky Register Machine. We also discuss an application of mathematical programming to software verification obtained by relaxing one of the properties of Turing complete languages.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  • Apt K (2003) Principles of constraint programming. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  • Belotti P, Lee J, Liberti L, Margot F, Wächter A (2009) Branching and bounds tightening techniques for non-convex MINLP. Optim Methods Softw 24(4):597–634

    Article  MATH  MathSciNet  Google Scholar 

  • Böhm C, Jacopini G (1966) Flow diagrams, turing machines and languages with only two formation rules. Commun ACM 9(5):366–371

    Article  MATH  Google Scholar 

  • Brook A, Kendrick D, Meeraus A (1988) GAMS, a user’s guide. ACM SIGNUM Newsl 23(3–4):10–11

    Article  Google Scholar 

  • Costan A, Gaubert S, Goubault E, Martel M, Putot S (2005) A policy iteration algorithm for computing fixed points in static analysis of programs. In: Etessami K, Rajamani SK (eds) Computer aided verification, volume 3576 of LNCS. Springer, Berlin, pp 462–475

    Google Scholar 

  • Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction of approximations of fixed points. Princ Program Lang 4:238–252

    Google Scholar 

  • Cousot P, Cousot R (1979) Systematic design of program analysis frameworks. In: Conference record of the sixth annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, San Antonio, TX. ACM Press, New York, NY, pp 269–282

  • Davis M (2009) Diophantine equations & computation: a tutorial. In: International conference on unconventional computation, Ponta Delgada. University of Azores

  • Davis M, Sigal R, Weyuker E (1994) Computability, complexity and languages. Academic Press, San Diego

    Google Scholar 

  • Fortet R (1960) Applications de l’algèbre de Boole en recherche opérationelle. Revue Française de Recherche Opérationelle 4:17–26

    Google Scholar 

  • Fourer R, Gay D (2002) The AMPL book. Duxbury Press, Pacific Grove

    Google Scholar 

  • Gaubert S, Goubault E, Taly A, Zennou S (2007) Static analysis by policy iteration on relational domains. In: De Nicola R (ed) European symposium on programming, volume 4421 of LNCS. Springer, Berlin, pp 237–252

  • Gawlitza T, Seidl H (2007) Precise fixpoint computation through strategy iteration. In: De Nicola R (ed) European symposium on programming, volume 4421 of LNCS. Springer, Berlin, pp 300–315

  • Goubault E, Le Roux S, Leconte J, Liberti L, Marinelli F (2010) Static analysis by abstract interpretation: a mathematical programming approach. In: Miné A, Rodriguez-Carbonell E (eds) Proceeding of the second international workshop on numerical and symbolic abstract domains, volume 267(1) of electronic notes in theoretical computer science. Elsevier, Amsterdam, pp 73–87

  • Hansen E (1992) Global optimization using interval analysis. Marcel Dekker, New York

    MATH  Google Scholar 

  • Harel D, Norvig P, Rood J, To T (1979) A universal flowcharter. In: 2nd Computers in aerospace conference, volume A79-54378/24-59. AAIA, New York, pp 218–224

  • IBM (2010) ILOG CPLEX 12.2 user’s manual. IBM

  • Jeroslow R (1973) There cannot be any algorithm for integer programming with quadratic constraints. Oper Res 21(1):221–224

    Article  MATH  MathSciNet  Google Scholar 

  • Johnstone P (1987) Notes on logic and set theory. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  • Jones J (1982) Universal diophantine equation. J Symb Logic 47(3):549–571

    Article  MATH  Google Scholar 

  • Liberti L, Cafieri S, Tarissan F (2009) Reformulations in mathematical programming: a computational approach. In: Abraham A, Hassanien A-E, Siarry P, Engelbrecht A (eds) Foundations of computational intelligence, vol 3., number 203 in Studies in Computational Intelligence. Springer, Berlin, pp 153–234

    Google Scholar 

  • Liberti L, Le Roux S, Leconte J, Marinelli F (2010) Mathematical programming based debugging. In: Mahjoub [23], pp 1311–1318

  • Mahjoub R (ed) (2010) Proceedings of the international symposium on combinatorial optimization, volume 36 of electronic notes in discrete mathematics. Elsevier, Amsterdam

  • Makhorin A (2003) GNU Linear programming kit. Free Software Foundation. http://www.gnu.org/software/glpk/

  • Monniaux D (2009) A minimalistic look at widening operators. Higher-Order Symb Comput 22:145–154

    Article  MathSciNet  Google Scholar 

  • Shannon C (1956) A universal Turing machine with two internal states. In: Shannon C, McCarthy J (eds) Automata studies, volume 34 of annals of mathematics studies. Princeton University Press, Princeton, pp 157–165

    Google Scholar 

  • Shapiro E (1997) The art of prolog. MIT Press, Boston, MA

    Google Scholar 

  • Tarski A (1955) A lattice-theoretical fixpoint theorem and its applications. Pac J Math 5(2):285–309

    Article  MATH  MathSciNet  Google Scholar 

  • Turing A (1937) On computable numbers, with an application to the Entscheidungsproblem. Proc Lond Math Soc 42(1):230–265

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgments

We are extremely grateful to an anonymous referee for helping to make this a better paper. We are also grateful to S. Bosio, E. Goubault, J. Leconte, A. Lodi, D. Monniaux, F. Roda, F. Raimondi, S. Le Roux for useful discussions, during the course of several years. This work was financially supported by the following Grants: ANR “ARS”, ANR “ASOPT”, Digiteo “PASO” and Digiteo “RMNCCO”.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Leo Liberti.

Additional information

Dedicated to Panos Pardalos, eclectic theoretical computer scientist and global optimizer, on the occasion of his 60th birthday.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Liberti, L., Marinelli, F. Mathematical programming: Turing completeness and applications to software analysis. J Comb Optim 28, 82–104 (2014). https://doi.org/10.1007/s10878-014-9715-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10878-014-9715-3

Keywords

Navigation