skip to main content
research-article

Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages

Published:09 September 2012Publication History
Skip Abstract Section

Abstract

We describe the Funlogic system which extends a functional language with existentially quantified declarations. An existential declaration introduces a variable and a set of constraints that its value should meet. Existential variables are bound to conforming values by a decision procedure. Funlogic embeds multiple external decision procedures using a common framework. Design principles for embedding decision procedures are developed and illustrated for three different decision procedures from widely varying domains.

References

  1. V. Balat and O. Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. Lecture Notes in Computer Science, 1473:240--252, 1998. ISSN 0302-9743. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. Barrett, M. Deters, A. Oliveras, and A. Stump. Design and results of the 3rd annual satisfiability modulo theories competition (SMT-comp 2007). International Journal on Artificial Intelligence Tools, 17(4): 569--606, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  3. G. M. Bierman, A. D. Gordon, C. Hritc, and D. Langworthy. Semantic Subtyping with an SMT Solver. TechReport MSR-TR-2010-99, Microsoft Research, Dec. 2010. URL http://research.microsoft.com/en-us/projects/dminor/.Google ScholarGoogle Scholar
  4. B. Braßel, M. Hanus, B. Peemöller, and F. Reck. KiCS2: A new compiler from curry to haskell. In H. Kuchen, editor, WFLP, volume 6816 of Lecture Notes in Computer Science, pages 1--18. Springer, 2011. ISBN 978-3-642-22530-7. URL http://dx.doi.org/10.1007/978-3-642-22531-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. M. Crawford, M. L. Ginsberg, E. M. Luks, and A. Roy. Symmetry-breaking predicates for search problems. In KR, pages 148--159, 1996.Google ScholarGoogle Scholar
  6. O. Danvy, M. Rhiger, and K. H. Rose. Normalization by evaluation with typed abstract syntax. J. Funct. Program, 11(6):673--680, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. A. Day, J. Launchbury, and J. Lewis. Logical abstractions in haskell. In Proceedings of the 1999 Haskell Workshop. Utrecht University Department of Computer Science, Technical Report UU-CS-1999-28, October 1999.Google ScholarGoogle Scholar
  8. R. Fourer, D. M. Gay, and B. W. Kernighan. AMPL - A Modeling Language for Mathematical Programming. The Scientific Press, South San Francisco, 1993.Google ScholarGoogle Scholar
  9. M. Hanus. Report on Curry (ver.0.8.2). Inst. fur Informatik, Christian-Albrechts Universitat, .de, 2006.Google ScholarGoogle Scholar
  10. M. Hermenegildo and T. CLIP Group. An Automatic Documentation Generator for (C)LP - Reference Manual. The Ciao System Documentation Series - TR CLIP5/97.3, Facultad de Informática, UPM, Aug. 1997. URL http://clip.dia.fi.upm.es/Software/Ciao/. Online at http://clip.dia.fi.upm.es/Software/Ciao/.Google ScholarGoogle Scholar
  11. D. Jackson. An intermediate design language and its analysis. In Proceedings of the ACM SIGSOFT 6th International Symposium on the Foundations of Software Engineering (FSE-98), volume 23, 6 of Software Engineering Notes, pages 121--130, New York, Nov. 3-5 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Jackson. Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge, Mass., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. P. Jones. Typing Haskell in Haskell. In ACM Haskell Workshop, informal proceedings, Oct. 1999.Google ScholarGoogle Scholar
  14. D. Klabjan, R. Fourer, and J. Ma. Algebraic modeling in a deductive database language. In 11th INFORMS Computing Society Conference, 2009.Google ScholarGoogle Scholar
  15. A. S. Koksal, V. Kuncak, and P. Suter. Constraints as control. In POPL '12, Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 151--164. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Software synthesis procedures. Communications of the ACM, 55(2):103--111, Feb. 2012. ISSN 0001-0782 (print), 1557-7317 (electronic). doi: http://dx.doi.org/10.1145/2076450.2076472. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N. Linger and T. Sheard. Binding-time analysis for metaML via type inference and constraint solving. In K. Jensen and A. Podelski, editors, TACAS, volume 2988 of Lecture Notes in Computer Science, pages 266--279. Springer, 2004. ISBN 3-540-21299-X.Google ScholarGoogle Scholar
  18. T. Mancini. Declarative constraint modelling and specification-level reasoning. Diploma thesis, Universita degli Studi di Roma 'La Sapienza', 2004.Google ScholarGoogle Scholar
  19. D. Z. Molham Aref and E. Pasalic. Using optimization services in datalog. In 11th INFORMS Computing Society Conference, 2009.Google ScholarGoogle Scholar
  20. M. Novak, G. Gardarin, and P. Valduriez. Flora: A functional-style language for object and relational algebra. Lecture Notes in Computer Science, 856:37--46, 1994. ISSN 0302-9743.Google ScholarGoogle ScholarCross RefCross Ref
  21. C. Runciman, M. Naylor, and F. Lindblad. SmallCheck and Lazy SmallCheck: automatic exhaustive testing for small values. ACM SIGPLAN Notices, 44(2):37--48, Feb. 2009. ISSN 0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic). doi: http://doi.acm.org/10.1145/1543134.1411292. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. Sheard and N. Linger. Search-based binding time analysis using type-directed pruning. In ASIA-PEPM, pages 20--31, 2002. URL http://doi.acm.org/10.1145/568173.568176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. I. Shlyakhter. Generating effective symmetry-breaking predicates for search problems. Discrete Applied Mathematics, 155(12):1539--1548, 2007. URL http://dx.doi.org/10.1016/j.dam.2005.10.018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. G. Smolka. The definition of kernel oz. Technical report, Saarländische Universitäts- und Landesbibliothek; Sonstige Einrichtungen. DFKI Deutsches Forschungszentrum für Künstliche Intelligenz, 1994. URL urn:nbn:de:bsz:291-scidok-37290.Google ScholarGoogle Scholar
  25. G. Sutcliffe and C. B. Suttner. The CADE ATP system competition. In D. A. Basin and M. Rusinowitch, editors, IJCAR, volume 3097 of Lecture Notes in Computer Science, pages 490--491. Springer, 2004. ISBN 3-540-22345-2.Google ScholarGoogle Scholar
  26. Taha and Sheard. MetaML and multi-stage programming with explicit annotations. TCS: Theoretical Computer Science, 248, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. W. Taha and T. Sheard. MetaML and multistage programming with, Feb. 09 1999. URL http://citeseer.ist.psu.edu/516106.html; http://cse.ogi.edu/~walidt/paper-2.ps. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. E. Torlak and D. Jackson. Kodkod: A relational model finder. In O. Grumberg and M. Huth, editors, TACAS, volume 4424 of Lecture Notes in Computer Science, pages 632--647. Springer, 2007. ISBN 978-3-540-71208-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Torlak, A. Prof, and D. Jackson. Thesis: A constraint solver for software engineering: Finding models and cores of large relational specifications., Dec. 04 2008. URL http://stuff.mit.edu/people/emina/papers/etorlak-cv.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 47, Issue 9
      ICFP '12
      September 2012
      368 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2398856
      Issue’s Table of Contents
      • cover image ACM Conferences
        ICFP '12: Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
        September 2012
        392 pages
        ISBN:9781450310543
        DOI:10.1145/2364527

      Copyright © 2012 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 September 2012

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!