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.
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- O. Danvy, M. Rhiger, and K. H. Rose. Normalization by evaluation with typed abstract syntax. J. Funct. Program, 11(6):673--680, 2001. Google Scholar
Digital Library
- 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 Scholar
- R. Fourer, D. M. Gay, and B. W. Kernighan. AMPL - A Modeling Language for Mathematical Programming. The Scientific Press, South San Francisco, 1993.Google Scholar
- M. Hanus. Report on Curry (ver.0.8.2). Inst. fur Informatik, Christian-Albrechts Universitat, .de, 2006.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- D. Jackson. Software Abstractions: Logic, Language, and Analysis. The MIT Press, Cambridge, Mass., 2006. Google Scholar
Digital Library
- M. P. Jones. Typing Haskell in Haskell. In ACM Haskell Workshop, informal proceedings, Oct. 1999.Google Scholar
- D. Klabjan, R. Fourer, and J. Ma. Algebraic modeling in a deductive database language. In 11th INFORMS Computing Society Conference, 2009.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- T. Mancini. Declarative constraint modelling and specification-level reasoning. Diploma thesis, Universita degli Studi di Roma 'La Sapienza', 2004.Google Scholar
- D. Z. Molham Aref and E. Pasalic. Using optimization services in datalog. In 11th INFORMS Computing Society Conference, 2009.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- Taha and Sheard. MetaML and multi-stage programming with explicit annotations. TCS: Theoretical Computer Science, 248, 2000. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages
Recommendations
Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages
ICFP '12: Proceedings of the 17th ACM SIGPLAN international conference on Functional programmingWe 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 ...
Programmed Strategies for Program Verification
Plover is an automated property-verifier for Haskell programs that has been under development for the past three years as a component of the Programatica project. In Programatica, predicate definitions and property assertions written in P-logic, a ...
A small embedding of logic programming with a simple complete search
DLS '16We present a straightforward, call-by-value embedding of a small logic programming language with a simple complete search. We construct the entire language in 54 lines of Racket---half of which implement unification. We then layer over it, in 43 lines, ...







Comments