Hostname: page-component-74656f9884-2dmjx Total loading time: 0 Render date: 2026-11-07T02:11:44.304Z Has data issue: false hasContentIssue false

Adding partial functions to Constraint Logic Programming with sets

Published online by Cambridge University Press:  03 September 2015

MAXIMILIANO CRISTIÁ
Affiliation:
CIFASIS and UNR, Rosario, Argentina (e-mail: cristia@cifasis-conicet.gov.ar)
GIANFRANCO ROSSI
Affiliation:
Università degli Studi di Parma, Parma, Italy (e-mail: gianfranco.rossi@unipr.it)
CLAUDIA FRYDMAN
Affiliation:
Aix Marseille Univ., CNRS, ENSAM, Univ. de Toulon, LSIS UMR 7296, France (e-mail: claudia.frydman@lsis.org)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Partial functions are common abstractions in formal specification notations such as Z, B and Alloy. Conversely, executable programming languages usually provide little or no support for them. In this paper we propose to add partial functions as a primitive feature to a Constraint Logic Programming (CLP) language, namely {log}. Although partial functions could be programmed on top of {log}, providing them as first-class citizens adds valuable flexibility and generality to the form of set-theoretic formulas that the language can safely deal with. In particular, the paper shows how the {log} constraint solver is naturally extended in order to accommodate for the new primitive constraints dealing with partial functions. Efficiency of the new version is empirically assessed by running a number of non-trivial set-theoretical goals involving partial functions, obtained from specifications written in Z.

Information

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2015 
Supplementary material: PDF

Cristiá supplementary material

Online Appendix

Download Cristiá supplementary material(PDF)
PDF 177.1 KB