{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T00:52:43Z","timestamp":1740099163708,"version":"3.37.3"},"publisher-location":"Cham","reference-count":32,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319944593"},{"type":"electronic","value":"9783319944609"}],"license":[{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"unspecified","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":[[2018]]},"DOI":"10.1007\/978-3-319-94460-9_19","type":"book-chapter","created":{"date-parts":[[2018,7,9]],"date-time":"2018-07-09T11:36:38Z","timestamp":1531136198000},"page":"323-340","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Combining Static and Dynamic Contract Checking for Curry"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4953-8202","authenticated-orcid":false,"given":"Michael","family":"Hanus","sequence":"first","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2018,7,10]]},"reference":[{"issue":"1","key":"19_CR1","doi-asserted-by":"publisher","first-page":"795","DOI":"10.1016\/j.jsc.2004.01.001","volume":"40","author":"E Albert","year":"2005","unstructured":"Albert, E., Hanus, M., Huch, F., Oliver, J., Vidal, G.: Operational semantics for declarative multi-paradigm languages. J. Symb. Comput. 40(1), 795\u2013829 (2005)","journal-title":"J. Symb. Comput."},{"issue":"4","key":"19_CR2","doi-asserted-by":"publisher","first-page":"776","DOI":"10.1145\/347476.347484","volume":"47","author":"S Antoy","year":"2000","unstructured":"Antoy, S., Echahed, R., Hanus, M.: A needed narrowing strategy. J. ACM 47(4), 776\u2013822 (2000)","journal-title":"J. ACM"},{"key":"19_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"6","DOI":"10.1007\/11680093_2","volume-title":"Logic Based Program Synthesis and Transformation","author":"S Antoy","year":"2006","unstructured":"Antoy, S., Hanus, M.: Declarative programming with function patterns. In: Hill, P.M. (ed.) LOPSTR 2005. LNCS, vol. 3901, pp. 6\u201322. Springer, Heidelberg (2006). https:\/\/doi.org\/10.1007\/11680093_2"},{"key":"19_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"87","DOI":"10.1007\/11799573_9","volume-title":"Logic Programming","author":"S Antoy","year":"2006","unstructured":"Antoy, S., Hanus, M.: Overlapping rules and logic variables in functional logic programs. In: Etalle, S., Truszczy\u0144ski, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 87\u2013101. Springer, Heidelberg (2006). https:\/\/doi.org\/10.1007\/11799573_9"},{"key":"19_CR5","doi-asserted-by":"crossref","unstructured":"Antoy, S., Hanus, M.: Set functions for functional logic programming. In: Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2009), pp. 73\u201382. ACM Press (2009)","DOI":"10.1145\/1599410.1599420"},{"key":"19_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1007\/978-3-642-27694-1_4","volume-title":"Practical Aspects of Declarative Languages","author":"S Antoy","year":"2012","unstructured":"Antoy, S., Hanus, M.: Contracts and specifications for functional logic programming. In: Russo, C., Zhou, N.-F. (eds.) PADL 2012. LNCS, vol. 7149, pp. 33\u201347. Springer, Heidelberg (2012). https:\/\/doi.org\/10.1007\/978-3-642-27694-1_4"},{"issue":"2","key":"19_CR7","doi-asserted-by":"publisher","first-page":"121","DOI":"10.1017\/S1471068416000168","volume":"17","author":"S Antoy","year":"2017","unstructured":"Antoy, S., Hanus, M.: Default rules for Curry. Theory Pract. Log. Program. 17(2), 121\u2013147 (2017)","journal-title":"Theory Pract. Log. Program."},{"key":"19_CR8","doi-asserted-by":"crossref","unstructured":"Bra\u00dfel, B.: Implementing functional logic programs by translation into purely functional programs. Ph.D. thesis, Christian-Albrechts-Universit\u00e4t zu Kiel (2011)","DOI":"10.1007\/978-3-642-24452-0_2"},{"key":"19_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-642-22531-4_1","volume-title":"Functional and Constraint Logic Programming","author":"B Bra\u00dfel","year":"2011","unstructured":"Bra\u00dfel, B., Hanus, M., Peem\u00f6ller, B., Reck, F.: KiCS2: a new compiler from Curry to Haskell. In: Kuchen, H. (ed.) WFLP 2011. LNCS, vol. 6816, pp. 1\u201318. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-22531-4_1"},{"key":"19_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-540-27861-0_1","volume-title":"Implementation of Functional Languages","author":"O Chitil","year":"2004","unstructured":"Chitil, O., McNeill, D., Runciman, C.: Lazy assertions. In: Trinder, P., Michaelson, G.J., Pe\u00f1a, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 1\u201319. Springer, Heidelberg (2004). https:\/\/doi.org\/10.1007\/978-3-540-27861-0_1"},{"key":"19_CR11","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1016\/j.entcs.2006.05.049","volume":"188","author":"J Dios Castro de","year":"2007","unstructured":"de Dios Castro, J., L\u00f3pez-Fraguas, F.J.: Extra variables can be eliminated from functional logic programs. Electron. Notes Theor. Comput. Sci. 188, 3\u201319 (2007)","journal-title":"Electron. Notes Theor. Comput. Sci."},{"key":"19_CR12","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 Moura de","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). https:\/\/doi.org\/10.1007\/978-3-540-78800-3_24"},{"key":"19_CR13","doi-asserted-by":"crossref","unstructured":"Dimoulas, C., Pucella, R., Felleisen, M.: Future contracts. In: Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2009), pp. 195\u2013206. ACM Press (2009)","DOI":"10.1145\/1599410.1599435"},{"key":"19_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"10","DOI":"10.1007\/978-3-642-18070-5_2","volume-title":"Formal Verification of Object-Oriented Software","author":"M F\u00e4hndrich","year":"2011","unstructured":"F\u00e4hndrich, M., Logozzo, F.: Static contract checking with abstract interpretation. In: Beckert, B., March\u00e9, C. (eds.) FoVeOOS 2010. LNCS, vol. 6528, pp. 10\u201330. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-18070-5_2"},{"key":"19_CR15","doi-asserted-by":"publisher","first-page":"47","DOI":"10.1016\/S0743-1066(98)10029-8","volume":"40","author":"JC Gonz\u00e1lez-Moreno","year":"1999","unstructured":"Gonz\u00e1lez-Moreno, J.C., Hortal\u00e1-Gonz\u00e1lez, M.T., L\u00f3pez-Fraguas, F.J., Rodr\u00edguez-Artalejo, M.: An approach to declarative programming based on a rewriting logic. J. Log. Program. 40, 47\u201387 (1999)","journal-title":"J. Log. Program."},{"key":"19_CR16","unstructured":"Hanus, M.: Improving lazy non-deterministic computations by demand analysis. In: Technical Communications of the 28th International Conference on Logic Programming. Leibniz International Proceedings in Informatics (LIPIcs), vol. 17, pp. 130\u2013143 (2012)"},{"key":"19_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"123","DOI":"10.1007\/978-3-642-37651-1_6","volume-title":"Programming Logics: Essays in Memory of Harald Ganzinger","author":"M Hanus","year":"2013","unstructured":"Hanus, M.: Functional logic programming: from theory to Curry. In: Voronkov, A., Weidenbach, C. (eds.) Programming Logics. LNCS, vol. 7797, pp. 123\u2013168. Springer, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-37651-1_6"},{"key":"19_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"222","DOI":"10.1007\/978-3-319-63139-4_13","volume-title":"Logic-Based Program Synthesis and Transformation","author":"M Hanus","year":"2017","unstructured":"Hanus, M.: CurryCheck: checking properties of Curry programs. In: Hermenegildo, M.V., Lopez-Garcia, P. (eds.) LOPSTR 2016. LNCS, vol. 10184, pp. 222\u2013239. Springer, Cham (2017). https:\/\/doi.org\/10.1007\/978-3-319-63139-4_13"},{"key":"19_CR19","unstructured":"Hanus, M., Antoy, S., Bra\u00dfel, B., Engelke, M., H\u00f6ppner, K., Koj, J., Niederau, P., Sadre, R., Steiner, F.: PAKCS: The Portland Aachen Kiel Curry System (2016). http:\/\/www.informatik.uni-kiel.de\/~pakcs\/"},{"key":"19_CR20","doi-asserted-by":"crossref","unstructured":"Hanus, M., Skrlac, F.: A modular and generic analysis server system for functional logic programs. In: Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation (PEPM 2014), pp. 181\u2013188. ACM Press (2014)","DOI":"10.1145\/2543728.2543744"},{"key":"19_CR21","unstructured":"Hanus, M. (ed.): Curry: an integrated functional logic language (vers. 0.9.0) (2016). http:\/\/www.curry-language.org"},{"key":"19_CR22","doi-asserted-by":"crossref","unstructured":"Launchbury, J.: A natural semantics for lazy evaluation. In: Proceedings of the 20th ACM Symposium on Principles of Programming Languages (POPL 1993), pp. 144\u2013154. ACM Press (1993)","DOI":"10.1145\/158511.158618"},{"key":"19_CR23","doi-asserted-by":"publisher","first-page":"348","DOI":"10.1016\/0022-0000(78)90014-4","volume":"17","author":"R Milner","year":"1978","unstructured":"Milner, R.: A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348\u2013375 (1978)","journal-title":"J. Comput. Syst. Sci."},{"key":"19_CR24","doi-asserted-by":"crossref","unstructured":"Nguyen, P.C., Tobin-Hochstadt, S., Van Horn, D.: Soft contract verification. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming (ICFP 2014), pp. 139\u2013152. ACM Press (2014)","DOI":"10.1145\/2628136.2628156"},{"volume-title":"Haskell 98 Language and Libraries\u2014The Revised Report","year":"2003","key":"19_CR25","unstructured":"Peyton Jones, S. (ed.): Haskell 98 Language and Libraries\u2014The Revised Report. Cambridge University Press, Cambridge (2003)"},{"issue":"4\u20135\u2013Online\u2013Supp","key":"19_CR26","first-page":"1","volume":"13","author":"A Serrano","year":"2013","unstructured":"Serrano, A., L\u00f3pez-Garc\u00eda, P., Bueno, F., Hermenegildo, M.V.: Sized type analysis for logic programs. Theory Pract. Log. Program. 13(4\u20135\u2013Online\u2013Supplement), 1\u201315 (2013)","journal-title":"Theory Pract. Log. Program."},{"key":"19_CR27","doi-asserted-by":"crossref","unstructured":"Stulova, N., Morales, J.F., Hermenegildo, M.: Reducing the overhead of assertion run-time checks via static analysis. In: Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming (PPDP 2016), pp. 90\u2013103. ACM Press (2016)","DOI":"10.1145\/2967973.2968597"},{"key":"19_CR28","doi-asserted-by":"publisher","DOI":"10.1145\/2841316","volume-title":"Verified Functional Programming in Agda","author":"A Stump","year":"2016","unstructured":"Stump, A.: Verified Functional Programming in Agda. ACM and Morgan & Claypool, New York (2016)"},{"key":"19_CR29","doi-asserted-by":"crossref","unstructured":"Vazou, N., Seidel, E.L., Jhala, R.: LiquidHaskell: experience with refinement types in the real world. In: Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell, pp. 39\u201351. ACM Press (2014)","DOI":"10.1145\/2633357.2633366"},{"key":"19_CR30","doi-asserted-by":"crossref","unstructured":"Vazou, N., Seidel, E.L., Jhala, R., Peyton Jones, S.: Refinement types for Haskell. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming (ICFP), pp. 269\u2013282. ACM Press (2014)","DOI":"10.1145\/2628136.2628161"},{"issue":"3","key":"19_CR31","doi-asserted-by":"publisher","first-page":"240","DOI":"10.1145\/262009.262011","volume":"29","author":"P Wadler","year":"1997","unstructured":"Wadler, P.: How to declare an imperative. ACM Comput. Surv. 29(3), 240\u2013263 (1997)","journal-title":"ACM Comput. Surv."},{"key":"19_CR32","doi-asserted-by":"crossref","unstructured":"Xu, D.N., Peyton Jones, S.L., Claessen, K.: Static contract checking for Haskell. In: Proceedings of the 36th ACM Symposium on Principles of Programming Languages (POPL 2009), pp. 41\u201352 (2009)","DOI":"10.1145\/1594834.1480889"}],"container-title":["Lecture Notes in Computer Science","Logic-Based Program Synthesis and Transformation"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-94460-9_19","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,10,20]],"date-time":"2019-10-20T10:23:01Z","timestamp":1571566981000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-94460-9_19"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018]]},"ISBN":["9783319944593","9783319944609"],"references-count":32,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-94460-9_19","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2018]]}}}