{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,19]],"date-time":"2026-06-19T18:14:36Z","timestamp":1781892876111,"version":"3.54.5"},"publisher-location":"Cham","reference-count":38,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030471460","type":"print"},{"value":"9783030471477","type":"electronic"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"DOI":"10.1007\/978-3-030-47147-7_6","type":"book-chapter","created":{"date-parts":[[2020,5,10]],"date-time":"2020-05-10T23:02:55Z","timestamp":1589151775000},"page":"121-141","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Set Constraints, Pattern Match Analysis, and SMT"],"prefix":"10.1007","author":[{"given":"Joseph","family":"Eremondi","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2020,5,11]]},"reference":[{"key":"6_CR1","unstructured":"Ackermann, W.: Solvable Cases of the Decision Problem: Studies in Logic and the Foundations of Mathematics. North-Holland Publishing Company (1954)"},{"issue":"1","key":"6_CR2","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1006\/inco.1995.1139","volume":"122","author":"A Aiken","year":"1995","unstructured":"Aiken, A., Kozen, D., Wimmers, E.: Decidability of systems of set constraints with negative constraints. Inf. Comput. 122(1), 30\u201344 (1995). \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/S089054018571139X","journal-title":"Inf. Comput."},{"issue":"2","key":"6_CR3","doi-asserted-by":"publisher","first-page":"79","DOI":"10.1016\/S0167-6423(99)00007-6","volume":"35","author":"A Aiken","year":"1999","unstructured":"Aiken, A.: Introduction to set constraint-based program analysis. Sci. Comput. Program. 35(2), 79\u2013111 (1999). \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642399000076","journal-title":"Sci. Comput. Program."},{"key":"6_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"78","DOI":"10.1007\/BFb0055513","volume-title":"Types in Compilation","author":"A Aiken","year":"1998","unstructured":"Aiken, A., F\u00e4hndrich, M., Foster, J.S., Su, Z.: A toolkit for constructing type-and constraint-based program analyses. In: Leroy, X., Ohori, A. (eds.) TIC 1998. LNCS, vol. 1473, pp. 78\u201396. Springer, Heidelberg (1998). \nhttps:\/\/doi.org\/10.1007\/BFb0055513"},{"key":"6_CR5","unstructured":"Aiken, A., Wimmers, E.L.: Type inclusion constraints and type inference. In: Proceedings of the Conference on Functional Programming Languages and Computer Architecture, FPCA 1993, pp. 31\u201341. ACM, New York (1993). \nhttp:\/\/doi.acm.org\/10.1145\/165180.165188"},{"key":"6_CR6","unstructured":"Aiken, A., Wimmers, E.L., Lakshman, T.K.: Soft typing with conditional types. In: Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1994, pp. 163\u2013173. ACM, New York (1994). \nhttp:\/\/doi.acm.org\/10.1145\/174675.177847"},{"key":"6_CR7","unstructured":"Bachmair, L., Ganzinger, H., Waldmann, U.: Set constraints are the monadic class. In: 1993 Proceedings of the Eighth Annual IEEE Symposium on Logic in Computer Science, pp. 75\u201383, June 1993"},{"key":"6_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1007\/978-3-642-22110-1_14","volume-title":"Computer Aided Verification","author":"C Barrett","year":"2011","unstructured":"Barrett, C., et al.: CVC4. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 171\u2013177. Springer, Heidelberg (2011). \nhttps:\/\/doi.org\/10.1007\/978-3-642-22110-1_14\n\n. \nhttp:\/\/www.cs.stanford.edu\/~barrett\/pubs\/BCD+11.pdf"},{"key":"6_CR9","unstructured":"Bell, R.K.: elm-interval (2019). Commit a7f5f8a. \nhttps:\/\/github.com\/r-k-b\/elm-interval\/"},{"key":"6_CR10","unstructured":"Castagna, G., Nguyen, K., Xu, Z., Abate, P.: Polymorphic functions with set-theoretic types: part 2: local type inference and type reconstruction. In: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, pp. 289\u2013302. ACM, New York (2015). \nhttp:\/\/doi.acm.org\/10.1145\/2676726.2676991"},{"key":"6_CR11","unstructured":"Charatonik, W., Pacholski, L.: Negative set constraints with equality. In: Proceedings of the Ninth Annual IEEE Symposium on Logic in Computer Science, pp. 128\u2013136, July 1994"},{"key":"6_CR12","unstructured":"Czaplicki, E.: Introduction to Elm (2019). \nhttp:\/\/guide.elm-lang.org\/"},{"key":"6_CR13","unstructured":"Damas, L., Milner, R.: Principal type-schemes for functional programs. In: Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1982, pp. 207\u2013212. ACM, New York (1982). \nhttp:\/\/doi.acm.org\/10.1145\/582153.582176"},{"key":"6_CR14","unstructured":"Dunfield, J.: Refined typechecking with stardust. In: Proceedings of the 2007 Workshop on Programming Languages Meets Program Verification, PLPV 2007, pp. 21\u201332. ACM, New York (2007). \nhttp:\/\/doi.acm.org\/10.1145\/1292597.1292602"},{"key":"6_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"250","DOI":"10.1007\/3-540-36576-1_16","volume-title":"Foundations of Software Science and Computation Structures","author":"J Dunfield","year":"2003","unstructured":"Dunfield, J., Pfenning, F.: Type assignment for intersections and unions in call-by-value languages. In: Gordon, A.D. (ed.) FoSSaCS 2003. LNCS, vol. 2620, pp. 250\u2013266. Springer, Heidelberg (2003). \nhttps:\/\/doi.org\/10.1007\/3-540-36576-1_16\n\n. \nhttp:\/\/dl.acm.org\/citation.cfm?id=1754809.1754827"},{"key":"6_CR16","unstructured":"Dunfield, J., Pfenning, F.: Tridirectional typechecking. In: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, pp. 281\u2013292. ACM, New York (2004). \nhttp:\/\/doi.acm.org\/10.1145\/964001.964025"},{"key":"6_CR17","unstructured":"Eremondi, J.: Forked elm-compiler (2019). Commit 9581aaf. \nhttps:\/\/github.com\/JoeyEremondi\/elm-compiler-patmatch-smt"},{"key":"6_CR18","unstructured":"Eremondi, J.: Setconstraintssmt (2019). Commit 03bb754. \nhttps:\/\/github.com\/JoeyEremondi\/SetConstraintsSMT"},{"key":"6_CR19","unstructured":"Freeman, T., Pfenning, F.: Refinement types for ML. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, PLDI 1991, pp. 268\u2013277. ACM, New York (1991). \nhttp:\/\/doi.acm.org\/10.1145\/113445.113468"},{"key":"6_CR20","unstructured":"Gilleron, R., Tison, S., Tommasi, M.: Solving systems of set constraints with negated subset relationships. In: Proceedings of 1993 IEEE 34th Annual Foundations of Computer Science, pp. 372\u2013380, November 1993"},{"key":"6_CR21","unstructured":"Graf, S.: elm-graph (2019). Commit 3672c75. \nhttps:\/\/github.com\/elm-community\/graph\/"},{"key":"6_CR22","unstructured":"Graf, S.: elm-intdict (2019). Commit bf2105d. \nhttps:\/\/github.com\/elm-community\/intdict"},{"key":"6_CR23","unstructured":"Heintze, N., Jaffar, J.: A decision procedure for a class of set constraints. In: 1990 Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, pp. 42\u201351, June 1990"},{"key":"6_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"281","DOI":"10.1007\/3-540-58601-6_107","volume-title":"Principles and Practice of Constraint Programming","author":"N Heintze","year":"1994","unstructured":"Heintze, N., Jaffar, J.: Set constraints and set-based analysis. In: Borning, A. (ed.) PPCP 1994. LNCS, vol. 874, pp. 281\u2013298. Springer, Heidelberg (1994). \nhttps:\/\/doi.org\/10.1007\/3-540-58601-6_107"},{"key":"6_CR25","volume-title":"The Rust Programming Language","author":"S Klabnik","year":"2018","unstructured":"Klabnik, S., Nichols, C.: The Rust Programming Language. No Starch Press, San Francisco (2018)"},{"key":"6_CR26","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"218","DOI":"10.1007\/11547662_16","volume-title":"Static Analysis","author":"J Kodumal","year":"2005","unstructured":"Kodumal, J., Aiken, A.: Banshee: a scalable constraint-based analysis toolkit. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 218\u2013234. Springer, Heidelberg (2005). \nhttps:\/\/doi.org\/10.1007\/11547662_16"},{"key":"6_CR27","unstructured":"Koot, R.: Higher-order pattern match analysis. Master\u2019s thesis, Universiteit Utrecht, The Netherlands (2012)"},{"key":"6_CR28","unstructured":"Koot, R., Hage, J.: Type-based exception analysis for non-strict higher-order functional languages with imprecise exception semantics. In: Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation, PEPM 2015, pp. 127\u2013138. ACM, New York (2015). \nhttp:\/\/doi.acm.org\/10.1145\/2678015.2682542"},{"issue":"4","key":"6_CR29","doi-asserted-by":"publisher","first-page":"447","DOI":"10.1007\/BF01458217","volume":"76","author":"L L\u00f6wenheim","year":"1915","unstructured":"L\u00f6wenheim, L.: \u00dcber m\u00f6glichkeiten im relativkalk\u00fcl. Math. Ann. 76(4), 447\u2013470 (1915). \nhttps:\/\/doi.org\/10.1007\/BF01458217","journal-title":"Math. Ann."},{"issue":"2","key":"6_CR30","doi-asserted-by":"publisher","first-page":"49","DOI":"10.1145\/1543134.1411293","volume":"44","author":"N Mitchell","year":"2008","unstructured":"Mitchell, N., Runciman, C.: Not all patterns, but enough: an automatic verifier for partial but sufficient pattern matching. SIGPLAN Not. 44(2), 49\u201360 (2008). \nhttps:\/\/doi.org\/10.1145\/1543134.1411293","journal-title":"SIGPLAN Not."},{"key":"6_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"337","DOI":"10.1007\/978-3-540-78800-3_24","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"L de Moura","year":"2008","unstructured":"de Moura, L., Bj\u00f8rner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337\u2013340. Springer, Heidelberg (2008). \nhttps:\/\/doi.org\/10.1007\/978-3-540-78800-3_24"},{"key":"6_CR32","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"114","DOI":"10.1007\/3-540-48092-7_6","volume-title":"Correct System Design","author":"F Nielson","year":"1999","unstructured":"Nielson, F., Nielson, H.R.: Type and effect systems. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 114\u2013136. Springer, Heidelberg (1999). \nhttps:\/\/doi.org\/10.1007\/3-540-48092-7_6\n\n. \nhttp:\/\/dl.acm.org\/citation.cfm?id=646005.673740"},{"key":"6_CR33","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"549","DOI":"10.1007\/BFb0017466","volume-title":"Principles and Practice of Constraint Programming-CP 1997","author":"L Pacholski","year":"1997","unstructured":"Pacholski, L., Podelski, A.: Set constraints: a pearl in research on constraints. In: Smolka, G. (ed.) CP 1997. LNCS, vol. 1330, pp. 549\u2013561. Springer, Heidelberg (1997). \nhttps:\/\/doi.org\/10.1007\/BFb0017466"},{"issue":"4","key":"6_CR34","doi-asserted-by":"publisher","first-page":"23:1","DOI":"10.1145\/1734213.1734217","volume":"57","author":"WCL Pacholski","year":"2010","unstructured":"Pacholski, W.C.L.: Set constraints with projections. J. ACM 57(4), 23:1\u201323:37 (2010). \nhttps:\/\/doi.org\/10.1145\/1734213.1734217","journal-title":"J. ACM"},{"key":"6_CR35","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"99","DOI":"10.1007\/978-3-319-12736-1_6","volume-title":"Programming Languages and Systems","author":"Z Palmer","year":"2014","unstructured":"Palmer, Z., Menon, P.H., Rozenshteyn, A., Smith, S.: Types for flexible objects. In: Garrigue, J. (ed.) APLAS 2014. LNCS, vol. 8858, pp. 99\u2013119. Springer, Cham (2014). \nhttps:\/\/doi.org\/10.1007\/978-3-319-12736-1_6"},{"issue":"4","key":"6_CR36","first-page":"312","volume":"7","author":"F Pottier","year":"2000","unstructured":"Pottier, F.: A versatile constraint-based type inference system. Nordic J. Comput. 7(4), 312\u2013347 (2000). \nhttp:\/\/dl.acm.org\/citation.cfm?id=763845.763849","journal-title":"Nordic J. Comput."},{"key":"6_CR37","unstructured":"Stefansson, K.: Systems of set constraints with negative constraints are NEXPTIME-complete. In: Proceedings of the Ninth Annual IEEE Symposium on Logic in Computer Science, pp. 137\u2013141, July 1994"},{"key":"6_CR38","series-title":"Symbolic Computation","doi-asserted-by":"publisher","first-page":"466","DOI":"10.1007\/978-3-642-81955-1_28","volume-title":"Automation of Reasoning","author":"GS Tseitin","year":"1983","unstructured":"Tseitin, G.S.: On the complexity of derivation in propositional calculus. In: Siekmann, J.H., Wrightson, G. (eds.) Automation of Reasoning. SYMBOLIC, pp. 466\u2013483. Springer, Heidelberg (1983). \nhttps:\/\/doi.org\/10.1007\/978-3-642-81955-1_28"}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-47147-7_6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,5,10]],"date-time":"2020-05-10T23:09:21Z","timestamp":1589152161000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-47147-7_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030471460","9783030471477"],"references-count":38,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-47147-7_6","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"11 May 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Vancouver, BC","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Canada","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2019","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"12 June 2019","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 June 2019","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"20","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2019","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.tfp2019.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair.org","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"11","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"6","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"55% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"2","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}