5,270 research outputs found

    Intensional Updates

    Get PDF

    Abstract State Machines 1988-1998: Commented ASM Bibliography

    Get PDF
    An annotated bibliography of papers which deal with or use Abstract State Machines (ASMs), as of January 1998.Comment: Also maintained as a BibTeX file at http://www.eecs.umich.edu/gasm

    An Overview of Lambda-Prolog

    Get PDF
    λ-Prolog is a logic programming language that extends Prolog by incorporating notions of higher-order functions, λ-terms, higher-order unification, polymorphic types, and mechanisms for building modules and secure abstract data types. These new features are provided in a principled fashion by extending the classical first-order theory of Horn clauses to the intuitionistic higher-order theory of hereditary Harrop formulas. The justification for considering this extension a satisfactory logic programming language is provided through the proof-theoretic notion of a uniform proof. The correspondence between each extension to Prolog and the new features in the stronger logical theory is discussed. Also discussed are various aspects of an experimental implementation of λ-Prolog

    Enriching a Meta-Language With Higher-Order Features

    Get PDF
    Various meta-languages for the manipulation and specification of programs and programming languages have recently been proposed. We examine one such framework, called natural semantics, which was inspired by the work of G. Plotkin on operational semantics and extended by G. Kahn and others at INRIA. Natural semantics makes use of a first-order meta-language which represents programs as first-order tree structures and reasons about these using natural deduction-like methods. We present the following three enrichments of this meta-language. First, programs are represented not by first-order structures but by simply typed λ-terms. Second, schema variables in inference rules can be higher-order variables. Third, the reasoning mechanism is explicitly extended with proof methods which have proved valuable for natural deduction systems. In particular, we add methods for introducing and discharging assumptions and for introducing and discharging parameters. The first method can be used to prove hypothetical propositions while the second can be used to prove generic or universal propositions. We provide several example specifications using this extended meta-language and compare them to their first-order specifications. We argue that our extension yields a more natural and powerful meta-language than the related first-order system. We outline how this enriched meta-language can be compiled into the higher-order logic programming language λProlog

    An overview of the ciao multiparadigm language and program development environment and its design philosophy

    Full text link
    We describe some of the novel aspects and motivations behind the design and implementation of the Ciao multiparadigm programming system. An important aspect of Ciao is that it provides the programmer with a large number of useful features from different programming paradigms and styles, and that the use of each of these features can be turned on and off at will for each program module. Thus, a given module may be using e.g. higher order functions and constraints, while another module may be using objects, predicates, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of program optimizations. Such optimizations produce code that is highly competitive with other dynamic languages or, when the highest levéis of optimization are used, even that of static languages, all while retaining the interactive development environment of a dynamic language. The environment also includes a powerful auto-documenter. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in the format of a paper, pointing instead to the existing literature on the system

    Strong Completeness Results for Paraconsistent Logic Programming

    Get PDF
    In [6], we introduced a means of allowing logic programs to contain negations in both the head and the body of a clause. Such programs were called generally Horn programs (GHPs, for short). The model-theoretic semantics of GHPs were defined in terms of four-valued Belnap lattices [5]. For a class of programs called well-behaved programs, an SLD-resolution like proof procedure was introduced. This procedure was proven (under certain restrictions) to be sound (for existential queries) and complete (for ground queries). In this paper, we remove the restriction that programs be well-behaved and extend our soundness and completeness results to apply to arbitrary existential queries and to arbitrary GHPs. This is the strongest possible completeness result for GHPs. The results reported here apply to the design of very large knowledge bases and in processing queries to knowledge bases that possibly contain erroneous information

    Knowledge-Level Reflection

    Get PDF
    This paper presents an overview of the REFLECT project. It defines the notion of knowledge level reflection that has been central to the project, it compares this notion with existing approaches to reflection in related fields, and investigates some of the consequences of the concept of knowledge level reflection: what is a general architecture for knowledge level reflection, how to model the object component in such an architecture, what is the nature of reflective theories, how can we design such architectures, and what are the results of our actual experiments with such systems

    INCONSISTENCY HANDLING IN MULTIPERSPECTIVE SPECIFICATIONS

    No full text
    Published versio

    Logic Programming Based on Higher-Order Hereditary Harrop Formulas

    Get PDF
    Hereditary Harrop formulas are an extension to Horn clauses in which the body of clauses can contain implications and universal quantifiers. These formulas can further be extended by embedding them in a higher-order logic; that is, by permitting quantification over function symbol occurrences and some predicate symbol occurrences, and by replacing first-order terms with simply typed λ-terms. Our justification for considering this rich extension of Horn clause theory as a satisfactory logic programming language is provided by a proof-theoretic notion we call uniform proofs . This notion will be defined and motivated. This extended language can provide very natural and direct implementations of various kinds of abstraction mechanisms. For example, higher-order hereditary Harrop formulas (hohh) can be used to support aspects of modular programming, abstract data types, and higher-order programming. We have designed and built a logic programming system which implements hohh in much the same way Prolog implements first-order Horn clauses. This language and its interpreter, collectively called λProlog, will be described. We will present several example programs where λProlog provides a much more immediate and satisfactory implementation language than first-order Prologs. These examples are taken from theorem proving and program transformation. Finally, we will describe some aspects of our implementation of λProlog
    corecore