Extending Constructive Negation for Partial Functions in Lazy Functional-logic Languages

@inproceedings{MorenoNavarro1996ExtendingCN,
  title={Extending Constructive Negation for Partial Functions in Lazy Functional-logic Languages},
  author={Juan Jos{\'e} Moreno-Navarro},
  booktitle={ELP},
  year={1996}
}
In this paper the mechanism of Default Rules for narrowing-based languages proposed in [24] is adapted to lazy narrowing. Every partial definition of a function can be completed with a default rule. In a concrete function call, the default rule is applicable when the normal ones determine that they cannot compute the value of the call. Furthermore, when the goal has variables the evaluation mechanism provides constraints to the variables to make the default rule applicable. Lazy narrowing… 
A Proof Procedure for Functional First Order Logic Programs with Non-Deterministic Lazy Functions and Built-in Predicates
  • N. Peltier
  • Computer Science
    J. Funct. Log. Program.
  • 2004
TLDR
Call-time choices are used and the functions are non-deterministic and non-strict, which allows to use a form of lazy narrowing for pruning the search space and avoiding divergence in some cases.
Narrowing Failure in Functional Logic Programming
TLDR
This paper addresses the problem of the operational mechanism for the execution of functional logic programs using failure by proposing a narrowing relation able to deal with failures, which is constructive in the usual sense of the term in the context of negation, that is, narrowing is able to find substitutions for variables even in presence of failures.
Implementation Results in Classical Constructive Negation
TLDR
This paper refine and propose some extensions to the classical method of constructive negation, providing the complete theoretical algorithm, and discusses implementation issues providing a preliminary implementation and also an optimized one to negate predicates with a finite number of solutions.
Logic Programs with Functions and Default Values
TLDR
This work reconsider the replacement of predicate-like notation by functional terms, using a similar syntax to Functional Logic Programming, but under a completely different semantic perspective, and introduces the possibility of replacing default negation by the concept of default value of a function.
Constructive Failure in Functional-Logic Programming: From Theory to Implementation
TLDR
This paper adapts a formal framework for checking (finite) failure of reduction for building a prototype for a functional-logic language with constructive failure as the natural counterpart to negation in logic programming.
Implementing Constructive Failure in Functional-Logic Programming
TLDR
This paper adapts a formal framework for checking ( nite) failure of reduction in previous works for implementing a prototype for a functional-logic language with constructive failure as the natural counterpart to negation in logic programming.
Functional Logic Programming with Failure: A Set-Oriented View
TLDR
This work considers CRWLF, a previous proof-theoretic semantic framework able to deduce negative (failure) information from functional logic programs, and reformulates the framework to stress that set flavour, both at syntactic and semantic levels.
Proving Failure in Functional Logic Programs
TLDR
A proof calculus,CRWLF, is presented, which is able to deduce negative information from CRWL-programs, and is unable to prove 'finite' failure of reduction within CRWWL.
Demand analysis with partial predicates
TLDR
This work studies demand analysis – which is closely related to backwards strictness analysis – in a semantic framework of partial predicates, which in turn are constructive realizations of ideals in a domain.
Regular Search Spaces and Constructive Negation
TLDR
It is contended that the notion of regularity offers a better understanding of the traditional theory of NF, and a firm yet very simple and natural basis for a form of constructive negation, in the sense of Chan, Stuckey and Harland.
...
...

References

SHOWING 1-10 OF 43 REFERENCES
Default Rules: An Extension of Constructive Negation for Narrowing-based Languages
In this paper an extension of narrowing-based functional logic languages is proposed: Every partial deenition of a function can be completed with a default rule. In a concrete function call, the
Combining Lazy Narrowing with Disequality Constraints
TLDR
This work investigates an extension of a lazy functional logic language, which uses term disequations both in programs and in computed answers, and presents an executable Prolog specification of the operational semantics, which has been implemented on top of a Prolog system.
Implementing a Lazy Functional Logic Language with Disequality Constraints
TLDR
An implementation of a lazy functional logic language (in particular the language BABEL MR88, MR92]) which uses disequality constraints for solving equations and building answers is investigated and a new operational semantics is specified which combines lazy narrowing with dise quality constraints.
Combining Lazy Narrowing and Simplification
TLDR
This paper presents an important improvement of lazy narrowing by incorporating deterministic simplification steps into lazy narrowing derivations that reduce the search space so that in some cases infinite search spaces are reduced to finite ones.
Negation in Logic Programming
  • K. Kunen
  • Computer Science
    J. Log. Program.
  • 1987
Efficient Lazy Narrowing using Demandedness Analysis
TLDR
This approach is more lazy than the previous approaches, and it uses a more powerful notion of demandedness, which allows to express infinite demand patterns like e.g. spine normal form.
Conditional Narrowing with Constructive Negation
TLDR
This paper gives a formal operational semantics for normal theories and defines the notion of completion and stratification of a normal theory, and shows that there exists one minimal model for the completion of a stratified normal theory.
Compiling Logic Programs with Equality
TLDR
A technique for compiling programs with inference rules for Horn clause logic into programs of a low-level abstract machine which can be efficiently executed on conventional architectures is proposed.
Lazy Narrowing in a Graph Machine
TLDR
By extending an appropriate architecture for purely functional languages an abstract graph narrowing machine for a functional logic language is constructed and is capable of performing unification and backtracking.
...
...