2017
DOI: 10.4204/eptcs.258.1
|View full text |Cite
|
Sign up to set email alerts
|

Extending Coinductive Logic Programming with Co-Facts

Abstract: We introduce a generalized logic programming paradigm where programs, consisting of facts and rules with the usual syntax, can be enriched by co-facts, which syntactically resemble facts but have a special meaning. As in coinductive logic programming, interpretations are subsets of the complete Herbrand basis, including infinite terms. However, the intended meaning (declarative semantics) of a program is a fixed point which is not necessarily the least, nor the greatest one, but is determined by co-facts. In t… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
22
0
2

Year Published

2019
2019
2021
2021

Publication Types

Select...
3
2

Relationship

5
0

Authors

Journals

citations
Cited by 6 publications
(24 citation statements)
references
References 10 publications
0
22
0
2
Order By: Relevance
“…As we will detail later, the codefinition will be used instead of the standard method body (definition) in presence of a cycle, that is, when the same call is encountered twice. In this way, non-termination can be avoided 1 , and the semantics desired by the programmer can be achieved. In the codefiniton, besides parameters and this, the special variable any can be used as well.…”
Section: Cofj and Its Semanticsmentioning
confidence: 99%
See 4 more Smart Citations
“…As we will detail later, the codefinition will be used instead of the standard method body (definition) in presence of a cycle, that is, when the same call is encountered twice. In this way, non-termination can be avoided 1 , and the semantics desired by the programmer can be achieved. In the codefiniton, besides parameters and this, the special variable any can be used as well.…”
Section: Cofj and Its Semanticsmentioning
confidence: 99%
“…Class ListFactory defines methods for building infinite lists. For instance, by invoking oneTwo(), we can build the list containing infinitely many alternating occurences of 1 and 2, abbreviated [1,2] in the following. Indeed, after an intermediate call twoOne(), the same call oneTwo() is encountered, and (corec) can be applied, which in this case returns an arbitrary value u, so we obtain 1:2:u for the initial call.…”
Section: Examplesmentioning
confidence: 99%
See 3 more Smart Citations