## flogg: A Logic Programming Language with Finite Sets (1991)

Venue: | Proc. 8th Int. Conf. on Logic Programming |

Citations: | 31 - 10 self |

### BibTeX

@INPROCEEDINGS{Dovier91flogg:a,

author = {Agostino Dovier and Eugenio G. Omodeo and Enrico Pontelli and Gianfranco Rossi},

title = {flogg: A Logic Programming Language with Finite Sets},

booktitle = {Proc. 8th Int. Conf. on Logic Programming},

year = {1991},

pages = {111--124},

publisher = {MIT Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

An extended logic programming language embodying sets is developed in successive stages, introducing at each stage simple set dictions and operations, and discussing their operational as well as declarative semantics. First, by means of special set terms added to definite Horn Clause logic, one is enabled to define enumerated sets. A new unification algorithm which can cope with set terms is developed and proved to terminate. Moreover, distinguished predicates representing set membership and equality are added to the base language along with their negative counterparts, and SLD resolution is modified accordingly. It is shown that the resulting language allows restricted universal quantifiers in goals and clause bodies to be defined quite simply within the language itself. Finally, abstraction set terms are made available as intensional designations of sets. It is shown that also such terms become directly definable within the language, provided the latter is endowed with negation, which may occur in goals and clause bodies.

### Citations

2509 |
The Design and Analysis of Computer Algorithms
- Aho, Hopcroft, et al.
- 1976
(Show Context)
Citation Context ...ies. Introduction General agreement exists about the usefulness of set abstractions in specification languages (e.g. the Z language [Z86]) and as high-level representations of complex data structures =-=[AHU75]-=-. However, only relatively few real (i.e. executable) programming languages embody sets as primitive objects in a satisfactory way. A plausible reason for this is the difficulty to find out a single r... |

1881 |
Foundations of Logic Programming
- Lloyd
- 1987
(Show Context)
Citation Context ...t,s) stands for the set that results from adding t as a new element to the set s. 2sApart from these two symbols, our first language, {log 1 }, contains the usual equipment of clausal Horn logic (cf. =-=[Llo87]-=-) and two infix predicates, ∈ and =, endowed with their usual set-theoretic meaning. The extensional notation for sets referred to above is provided by a collection G of ground terms: this is the smal... |

973 |
Negation as failure
- Clark
- 1978
(Show Context)
Citation Context ...ing negation in logic programming (see [Kun90] for a review of the main proposals that have been put forward in recent years), we have first chosen adapting to {log} the classical negation by failure =-=[Cla78]-=-. The extension of SLD-resolution with this kind of negation (SLDNF) is complete only for a restricted class of programs: those satisfying a number of syntactic restrictions, which are known in the li... |

625 |
Towards a theory of declarative knowledge
- Apt, Blair, et al.
- 1987
(Show Context)
Citation Context ...n of SLD-resolution with this kind of negation (SLDNF) is complete only for a restricted class of programs: those satisfying a number of syntactic restrictions, which are known in the literature (cf. =-=[ABW87]-=-, [CL89]) as stratification, allowedness and strictness. Completeness of {log}+NF-resolution has been proved by adapting the analogous results for the standard SLDNF-resolution to our language, in par... |

221 |
Unification Revisited
- Lassez, Maher, et al.
- 1988
(Show Context)
Citation Context ...modified in such a way as to include set unification and proper management of the equality and membership relations. We assume the definitions (Herbrand system, substitution, solution, etc.) given in =-=[LMM86]-=-. First of all it is interesting to point out a new situation created by sets: the inherent lack of order inside a set causes the decay of the main result about standard unification, that is the 'uniq... |

131 |
Constructive negation based on the completed database
- Chan
- 1988
(Show Context)
Citation Context ...oes not satisfy the allowedness conditions given above and should be rejected. Other approaches to negation in logic programming are under exploration at present. In particular constructive negation (=-=[Cha88]-=-, [BM*90]) seems to be very attractive, especially because it does not require allowedness for the completeness result to hold. 4 Related work Not many proposals exist about how to deal with the intro... |

100 |
An overview of Miranda
- Turner
- 1990
(Show Context)
Citation Context ...ich has demonstrated to be a flexible rapid prototyping tool for many applications [DF89]. Other notable efforts along these lines but in the framework of functional programming languages are MIRANDA =-=[Tur86]-=- (in which sets are defined via the so called ZF-expressions) and ME TOO [Naf86]. However, sets seem to fit better in the framework of a declarative style of programming, since the latter is recognize... |

73 | Logic programming with sets
- Kuper
- 1987
(Show Context)
Citation Context ...ions on sets, including the setof predicate, to be defined within the language itself, so that a clear logical semantics can be given to them. Works along these lines are also reported in [BN*87] and =-=[Kup87]-=- (see Sect. 4). The starting point of our work is a pure logic programming language, that is Definite Horn Clauses with no extra-logical constructs. Then, in successive steps, we add to this language ... |

37 | A transformation approach to negation in logic programming - Barbuti, Mancarella, et al. - 1990 |

29 |
A Completeness Theorem for SLDNF Resolution
- Cavedon, Lloyd
- 1989
(Show Context)
Citation Context ...resolution with this kind of negation (SLDNF) is complete only for a restricted class of programs: those satisfying a number of syntactic restrictions, which are known in the literature (cf. [ABW87], =-=[CL89]-=-) as stratification, allowedness and strictness. Completeness of {log}+NF-resolution has been proved by adapting the analogous results for the standard SLDNF-resolution to our language, in particular ... |

25 |
Computable set theory
- Cantone, Ferro, et al.
- 1989
(Show Context)
Citation Context ...ay ≠ saturday}) = {} --> Fail . . . Can({sunday ≠ monday &..& sunday ≠ saturday})={<{},∅>} --> Day = sunday. 8s2.2 Restricted Universal Quantifiers It has been shown by several authors (e.g. [Kup87], =-=[CFO89]-=-) that Restricted Universal Quantifiers (RUQs) are an useful feature of the representation language in many applications, in particular to express in a clear and concise way basic set-theoretic operat... |

17 | Programming with Equations, Subsets, and Relations
- Jayaraman, Plaisted
- 1989
(Show Context)
Citation Context ...the problem of deciding whether two set terms are unifiable is NP-complete. This ensues from a reduction of 3-SAT to the the problem at hand. An algorithm for unifying set expressions is presented in =-=[JP89]-=-. However as the algorithm is only sketched there, not all cases appear to have been covered equally well. For instance, given the equation {a|X} = {b|X} the algorithm in [JP89] does not terminate. Ou... |

10 |
From Unification to Constraints
- Jaffar, Lassez
- 1987
(Show Context)
Citation Context ... special adaptations. 2.1 Procedural semantics of {log 2 } The main idea behind the development of the new resolution algorithm for {log 2 } is the use of a simple constraint logic programming scheme =-=[JL87]-=-. In our context, a constraint is a disequation of the form t ≠ s or t ∉ s. The structure of the {log 2 }-resolution process stands to {log 1 }-resolution as the CLP scheme proposed in [JL87] stands t... |

8 | Subset-Logic Programming: Application and Implementation
- Jayaraman, Nair
- 1988
(Show Context)
Citation Context ... is only sketched there, not all cases appear to have been covered equally well. For instance, given the equation {a|X} = {b|X} the algorithm in [JP89] does not terminate. Our understanding, based on =-=[JN84]-=-, is that the purpose there was simply to unify two terms one of which was supposed to be ground. 1.4 The resolution procedure The resolution procedure developed for {log 1 } is an extension of the us... |

6 |
Desiderata for Logic Programming with Sets
- Sigal
- 1989
(Show Context)
Citation Context ... simply within the language. The last step is the introduction of negation in clause bodies. It is then shown how intensional set formers can be interpreted in this final language. Notice that unlike =-=[Sig89]-=- we consistently restrain our investigation to finite sets only. The paper is organized as follows. Section 1 introduces set terms and the predefined predicates ∈ and = to represent enumerated sets an... |

5 | et al. Set and Negation in a Logic Database Language - Beeri - 1987 |

4 |
Expressing infinity without foundation
- Parlamento, Policriti
- 1991
(Show Context)
Citation Context ...ng properties: 1) if B i is of the form (∀X 1 ∈ t 1 ...∀X n ∈ t n )G, then the variables X 1 ,...,X n can occur only in G; 2) if i ≠ j then X i ≠ X j . Note that the first restriction, motivated (cf. =-=[PP91]-=-) by our set finiteness requirement, is not present in [Kup87] since nesting of sets is not allowed there. For example, using RUQs, it is easy to define: 1) subset(A,B) :- (∀X ∈ A)(X ∈ B) 2) disj(D,X,... |

3 |
On the Expressive Power of Logic Programming with Sets
- Kuper
- 1988
(Show Context)
Citation Context ...dness concerns (which do not seem entirely fulfilled in [Kup87]) we prefer to transform extended Horn clauses into equivalent {log 2 } clauses without RUQs (hints about a similar idea can be found in =-=[Kup88]-=-). We have proved that such as transformation is always possible, and have developed the algorithm to perform it. For example 1) gets transformed into the equivalent two clauses subset({},Y) subset({A... |

2 |
Software Prototyping mit SETL. B.G.Teubner
- Doberkat
- 1989
(Show Context)
Citation Context ... the most common operations on sets. One exception on the procedural programming side is the language SETL [SD*86] which has demonstrated to be a flexible rapid prototyping tool for many applications =-=[DF89]-=-. Other notable efforts along these lines but in the framework of functional programming languages are MIRANDA [Tur86] (in which sets are defined via the so called ZF-expressions) and ME TOO [Naf86]. ... |

2 |
An experiment in practical semantics
- Naftalin
- 1986
(Show Context)
Citation Context ...ns [DF89]. Other notable efforts along these lines but in the framework of functional programming languages are MIRANDA [Tur86] (in which sets are defined via the so called ZF-expressions) and ME TOO =-=[Naf86]-=-. However, sets seem to fit better in the framework of a declarative style of programming, since the latter is recognized as a most adequate style for rapid prototyping. It is well known that the logi... |

2 | E.Dubinsky, E.Schonberg. Programming with sets, an introduction to SETL - Schwartz - 1986 |

1 |
Logic Programming with sets (in Italian). Tesi di Laurea
- Dovier
- 1991
(Show Context)
Citation Context ...d resolutions methods (sections 1.4, 2.1 and 3.2) as well as all model-theoretic and fixpoint results. All of these, together with a description of the Prolog implementation of {log}, are detailed in =-=[DP90]-=- and in a forthcoming research report. 1 {log 1} 1.1 Syntax of {log 1 } To begin with, we introduce in this section only the extensional representation of finite sets. All that is presupposed is the a... |

1 |
Completeness results for SLDNF. Tutorial presented at GULP90
- Kunen
- 1990
(Show Context)
Citation Context ...eneral form of programs (called normal programs in [Llo87]) is required in which negation can occur also in clause bodies. From among the many approaches concerning negation in logic programming (see =-=[Kun90]-=- for a review of the main proposals that have been put forward in recent years), we have first chosen adapting to {log} the classical negation by failure [Cla78]. The extension of SLD-resolution with ... |

1 | A logic programming framework for planning and simulation. Decision support systems - Lee - 1986 |

1 | on SETLOG and 'Desiderata for Logic Programming with sets'. Università di Udine, Dip. di Matematica e Informatica, research report n.32 - Notes - 1990 |