Adding partial functions to Constraint Logic Programming with sets. Issue 4 (3rd September 2015) - CRISTIÁ, MAXIMILIANO; ROSSI, GIANFRANCO; FRYDMAN, CLAUDIA
Abstract: 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.