16 research outputs found
Transforming Normal Programs by Replacement
The replacement transformation operation, already defined in [28], is studied wrt normal programs. We give applicability conditions able to ensure the correctness of the operation wrt Fitting's and Kunen's semantics. We show how replacement can mimic other transformation operations such as thinning, fattening and folding, thus producing applicability conditions for them too. Furthermore we characterize a transformation sequence for which the preservation of Fitting's and Kunen's semantics is ensured
Equivalence-preserving first-order unfold/fold transformation systems
AbstractTwo unfold/fold transformation systems for first-order programs, one basic and the other extended, are presented. The systems comprise an unfolding rule, a folding rule and a replacement rule. They are intended to work with a first-order theory Δ specifying the meaning of primitives, on top of which new relations are built by programs. They preserve the provability relationship Δ ∪ Γ ⊬ G between a call-consistent program Γ and a goal formula G such that Γ is strict with respect to G. They also preserve the logical consequence relationship in three-valued logic
Simultaneous Replacement in Normal Programs
The simultaneous replacement transformation operation is here defined and studied w.r.t. normal programs. We give applicability conditions able to ensure the correctness of the operation w.r.t. the set of logical consequences of the completed database. We consider separately the cases in which the underlying language is infinite and finite; in this latter case we also distinguish according to the kind of domain closure axioms adopted. As corollaries we obtain results for Fitting's and Kunen's semantics. We also show how simultaneous replacement can mimic other transformation operations such as thinning, fattening and folding, thus producing applicability conditions for them too
Transformation of logic programs: Foundations and techniques
AbstractWe present an overview of some techniques which have been proposed for the transformation of logic programs. We consider the so-called “rules + strategies” approach, and we address the following two issues: the correctness of some basic transformation rules w.r.t. a given semantics and the use of strategies for guiding the application of the rules and improving efficiency. We will also show through some examples the use and the power of the transformational approach, and we will briefly illustrate its relationship to other methodologies for program development
The -semantics approach; theory and applications
AbstractThis paper is a general overview of an approach to the semantics of logic programs whose aim is to find notions of models which really capture the operational semantics, and are, therefore, useful for defining program equivalences and for semantics-based program analysis. The approach leads to the introduction of extended interpretations which are more expressive than Herbrand interpretations. The semantics in terms of extended interpretations can be obtained as a result of both an operational (top-down) and a fixpoint (bottom-up) construction. It can also be characterized from the model-theoretic viewpoint, by defining a set of extended models which contains standard Herbrand models. We discuss the original construction modeling computed answer substitutions, its compositional version, and various semantics modeling more concrete observables. We then show how the approach can be applied to several extensions of positive logic programs. We finally consider some applications, mainly in the area of semantics-based program transformation and analysis
ProverX: rewriting and extending prover9
O propósito principal deste projecto é tornar o demonstrador automático de teoremas Prover9
programável e, por conseguinte, extensível.
Este propósito foi conseguido acrescentando um interpretador de Python, uma linha de comandos e
uma biblioteca de módulos, objectos e funções escritos em Python para interagir com ficheiros de
Prover9 e Mace4. Foi também criada uma “interface” gráfica de utilizador (GUI) sob a forma de uma
aplicação web para trazer aos utilizadores um meio mais eficiente e rápido de trabalhar com
demonstrações automáticas de teoremas.
A nova biblioteca de “scripting” oferece aos utilizadores novas funcionalidades tais como correr
várias sessões simultâneas de Prover9 parando automaticamente quando uma demonstração (ou um
contraexemplo) é encontrada, elaborar estratégias para aumentar a velocidade com que as
demonstrações são encontradas ou diminuir o tamanho das mesmas. Outro módulo permite interagir
com o sistema de álgebra GAP.
Sobre esta biblioteca, muitas outras funcionalidades podem ser facilmente acrescentadas pois o
objectivo principal é dar aos utilizadores a capacidade de acrescentar novas funcionalidades ao
Prover9.
Resumindo, o objectivo deste projecto é oferecer à comunidade matemática um ambiente integrado
para trabalhar com demonstração automática de teoremas.The primary purpose of this project is to extend Prover9 with a scripting language.
This was achieved by adding a Python interpreter, an interactive command line and a special
scripting library to interact with Prover9 and Mace4 files. A user interface in the form of a web
application was also created to help users achieve a more rapid and efficient way of working with
automated theorem proving.
The new scripting library offers utilities that allows a user to run several Prover9 sessions
concurrently and to create strategies for increasing the effectiveness of the proof search or to search
for shorter proofs. Another module allows to interact with the algebra system GAP.
Based on the library, many more functionalities can be easily added, as the main goal is to give users
the ability to extend the functionality of Prover9 the way they see fit.
In conclusion, the aim of this project is to offer to the mathematical community an integrated
environment for working with automated reasonin