Encoding and Reasoning about Arrays in Constraint Logic Programming with Sets

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Cristiá, Maximiliano, Rossi, Gianfranco
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910206484545536
author Cristiá, Maximiliano
Rossi, Gianfranco
author_facet Cristiá, Maximiliano
Rossi, Gianfranco
contents We encode arrays as functions which, in turn, are encoded as sets of ordered pairs. The set cardinality of each of these functions coincides with the length of the array it is representing. Then we define a fragment of set theory that is used to give the specifications of a non-trivial class of programs with arrays. In this way, array reasoning becomes set reasoning. Furthermore, a decision procedure for this fragment is also provided and implemented as part of the {log} (read 'setlog') tool. {log} is a constraint logic programming language and satisfiability solver where sets and binary relations are first-class citizens. The tool already implements a few decision procedures for different fragments of set theory. In this way, arrays are seamlessly integrated into {log} thus allowing users to reason about sets, functions and arrays all in the same language and with the same solver. The decision procedure presented in this paper is an extension of decision procedures defined in earlier works not supporting arrays.
format Preprint
id arxiv_https___arxiv_org_abs_2508_11447
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Encoding and Reasoning about Arrays in Constraint Logic Programming with Sets
Cristiá, Maximiliano
Rossi, Gianfranco
Logic in Computer Science
We encode arrays as functions which, in turn, are encoded as sets of ordered pairs. The set cardinality of each of these functions coincides with the length of the array it is representing. Then we define a fragment of set theory that is used to give the specifications of a non-trivial class of programs with arrays. In this way, array reasoning becomes set reasoning. Furthermore, a decision procedure for this fragment is also provided and implemented as part of the {log} (read 'setlog') tool. {log} is a constraint logic programming language and satisfiability solver where sets and binary relations are first-class citizens. The tool already implements a few decision procedures for different fragments of set theory. In this way, arrays are seamlessly integrated into {log} thus allowing users to reason about sets, functions and arrays all in the same language and with the same solver. The decision procedure presented in this paper is an extension of decision procedures defined in earlier works not supporting arrays.
title Encoding and Reasoning about Arrays in Constraint Logic Programming with Sets
topic Logic in Computer Science
url https://arxiv.org/abs/2508.11447