105,726 research outputs found
On the mechanisation of the logic of partial functions
PhD ThesisIt is well known that partial functions arise frequently in formal reasoning
about programs. A partial function may not yield a value for every member
of its domain. Terms that apply partial functions thus may not denote, and
coping with such terms is problematic in two-valued classical logic. A question
is raised: how can reasoning about logical formulae that can contain references
to terms that may fail to denote (partial terms) be conducted formally? Over
the years a number of approaches to coping with partial terms have been
documented. Some of these approaches attempt to stay within the realm
of two-valued classical logic, while others are based on non-classical logics.
However, as yet there is no consensus on which approach is the best one to
use. A comparison of numerous approaches to coping with partial terms is
presented based upon formal semantic definitions.
One approach to coping with partial terms that has received attention over
the years is the Logic of Partial Functions (LPF), which is the logic underlying
the Vienna Development Method. LPF is a non-classical three-valued logic
designed to cope with partial terms, where both terms and propositions may
fail to denote. As opposed to using concrete undfined values, undefinedness
is treated as a \gap", that is, the absence of a defined value. LPF is based
upon Strong Kleene logic, where the interpretations of the logical operators
are extended to cope with truth value \gaps".
Over the years a large body of research and engineering has gone into the
development of proof based tool support for two-valued classical logic. This
has created a major obstacle that affects the adoption of LPF, since such proof
support cannot be carried over directly to LPF. Presently, there is a lack of
direct proof support for LPF.
An aim of this work is to investigate the applicability of mechanised (automated)
proof support for reasoning about logical formulae that can contain
references to partial terms in LPF. The focus of the investigation is on the basic
but fundamental two-valued classical logic proof procedure: resolution and
the associated technique proof by contradiction. Advanced proof techniques
are built on the foundation that is provided by these basic fundamental proof
techniques. Looking at the impact of these basic fundamental proof techniques
in LPF is thus the essential and obvious starting point for investigating proof
support for LPF. The work highlights the issues that arise when applying
these basic techniques in LPF, and investigates the extent of the modifications needed to carry them over to LPF. This work provides the essential foundation
on which to facilitate research into the modification of advanced proof
techniques for LPF.EPSR
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
Reversible Computations in Logic Programming
[EN] In this work, we say that a computation is reversible if one can find a procedure to undo the steps of a standard (or forward) computation in a deterministic way. While logic programs are often invertible (e.g., one can use the same predicate for adding and for subtracting natural numbers), computations are not reversible in the above sense. In this paper, we present a so-called Landauer embedding for SLD resolution, the operational principle of logic programs, so that it becomes reversible. A proof-of-concept implementation of a reversible debugger for Prolog that follows the ideas in this paper has been developed and is publicly available.This work is partially supported by the EU (FEDER) and the Spanish MCI/AEI under grants TIN2016-76843-C4-1-R/PID2019-104735RB-C41, by the Generalitat Valenciana under grant Prometeo/2019/098 (DeepTrust), and by the COST Action IC1405 on Reversible Computation - extending horizons of computing.Vidal, G. (2020). Reversible Computations in Logic Programming. Springer. 246-254. https://doi.org/10.1007/978-3-030-52482-1_15S246254Apt, K.: From Logic Programming to Prolog. Prentice Hall, Upper Saddle River (1997)Ducassé, M.: Opium: an extendable trace analyzer for prolog. J. Log. Program. 39(1–3), 177–223 (1999). https://doi.org/10.1016/S0743-1066(98)10036-5Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 183–191 (1961)Lanese, I., Palacios, A., Vidal, G.: Causal-consistent replay debugging for message passing programs. In: Pérez, J.A., Yoshida, N. (eds.) FORTE 2019. LNCS, vol. 11535, pp. 167–184. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-21759-4_10Lloyd, J.: Foundations of Logic Programming, 2nd edn. Springer, Berlin (1987). https://doi.org/10.1007/978-3-642-83189-8O’Callahan, R., Jones, C., Froyd, N., Huey, K., Noll, A., Partush, N.: Engineering record and replay for deployability: Extended technical report (2017). CoRR abs/1705.05937, http://arxiv.org/abs/1705.05937Ströder, T., Emmes, F., Schneider-Kamp, P., Giesl, J., Fuhs, C.: A linear operational semantics for termination and complexity analysis of ISO prolog. In: Vidal, G. (ed.) LOPSTR 2011. LNCS, vol. 7225, pp. 237–252. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32211-2_16Undo Software: Increasing software development productivity with reversible debugging (2014). https://undo.io/media/uploads/files/Undo_ReversibleDebugging_Whitepaper.pd
Pac-Learning Recursive Logic Programs: Efficient Algorithms
We present algorithms that learn certain classes of function-free recursive
logic programs in polynomial time from equivalence queries. In particular, we
show that a single k-ary recursive constant-depth determinate clause is
learnable. Two-clause programs consisting of one learnable recursive clause and
one constant-depth determinate non-recursive clause are also learnable, if an
additional ``basecase'' oracle is assumed. These results immediately imply the
pac-learnability of these classes. Although these classes of learnable
recursive programs are very constrained, it is shown in a companion paper that
they are maximally general, in that generalizing either class in any natural
way leads to a computationally difficult learning problem. Thus, taken together
with its companion paper, this paper establishes a boundary of efficient
learnability for recursive logic programs.Comment: See http://www.jair.org/ for any accompanying file
Transformation-Based Bottom-Up Computation of the Well-Founded Model
We present a framework for expressing bottom-up algorithms to compute the
well-founded model of non-disjunctive logic programs. Our method is based on
the notion of conditional facts and elementary program transformations studied
by Brass and Dix for disjunctive programs. However, even if we restrict their
framework to nondisjunctive programs, their residual program can grow to
exponential size, whereas for function-free programs our program remainder is
always polynomial in the size of the extensional database (EDB).
We show that particular orderings of our transformations (we call them
strategies) correspond to well-known computational methods like the alternating
fixpoint approach, the well-founded magic sets method and the magic alternating
fixpoint procedure. However, due to the confluence of our calculi, we come up
with computations of the well-founded model that are provably better than these
methods.
In contrast to other approaches, our transformation method treats magic set
transformed programs correctly, i.e. it always computes a relevant part of the
well-founded model of the original program.Comment: 43 pages, 3 figure
A Parameterised Hierarchy of Argumentation Semantics for Extended Logic Programming and its Application to the Well-founded Semantics
Argumentation has proved a useful tool in defining formal semantics for
assumption-based reasoning by viewing a proof as a process in which proponents
and opponents attack each others arguments by undercuts (attack to an
argument's premise) and rebuts (attack to an argument's conclusion). In this
paper, we formulate a variety of notions of attack for extended logic programs
from combinations of undercuts and rebuts and define a general hierarchy of
argumentation semantics parameterised by the notions of attack chosen by
proponent and opponent. We prove the equivalence and subset relationships
between the semantics and examine some essential properties concerning
consistency and the coherence principle, which relates default negation and
explicit negation. Most significantly, we place existing semantics put forward
in the literature in our hierarchy and identify a particular argumentation
semantics for which we prove equivalence to the paraconsistent well-founded
semantics with explicit negation, WFSX. Finally, we present a general proof
theory, based on dialogue trees, and show that it is sound and complete with
respect to the argumentation semantics.Comment: To appear in Theory and Practice of Logic Programmin
- …