6533b861fe1ef96bd12c4434
RESEARCH PRODUCT
Adding Partial Functions to Constraint Logic Programming with Sets
Claudia FrydmanMaximiliano CristiáGianfranco Rossisubject
FOS: Computer and information sciencesComputer Science - Programming LanguagesProgramming languageComputer scienceOrder (ring theory)computer.file_formatcomputer.software_genreNotationTheoretical Computer ScienceComputational Theory and MathematicsArtificial IntelligenceHardware and ArchitectureFormal specificationPartial functionConstraint logic programmingExecutableSet theorycomputerSoftwareConstraint satisfaction problemProgramming Languages (cs.PL)description
AbstractPartial 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.
| year | journal | country | edition | language |
|---|---|---|---|---|
| 2015-07-01 |