Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
…
22 pages
1 file
Questions of definedness are ubiquitous in mathematics. Informally, these involve reasoning about expressions which may or may not have a value. This paper surveys work on logics in which such reasoning can be carried out directly, especially in computational contexts. It begins with a general logic of "partial terms", continues with partial combinatory and lambda calculi, and concludes with an expressively rich theory of partial functions and polymorphic types, where termination of functional programs can be established in a natural way.
Information Processing Letters, 1995
Science of Computer Programming, 1999
Partiality abounds in specifications and programs. We present a three-valued typed logic for reasoning equationally about programming in the presence of partial functions. The logic in essence is a combination of the equational logic E and typed LPF. Of course, there are already many logics in which some classical theorems acquire the status of neither-true-nor-false. What is distinctive here is that we preserve the equational reasoning style of E, as well as most of its main theorems. The principal losses among the theorems are the law of the excluded middle, the anti-symmetry of implication, a small complication in the trading law for existential quantification, and the requirement to show delinedness when using instantiation. The main loss among proof methods is proof by mutual implication; we present some new proof strategies that make up for this loss. Some proofs are longer than in E, but the heuristics commonly used in the proof methodology of E remain valid. We present a Hilbert-style axiomatisation of the logic in which modus ponens and generalisation are the only inference rules. The axiomatisation is easily modified to yield a classical axiomatisation of E itself. We suggest that the logic may be readily extended to a many-valued logic, and that this will have its uses.
2012
Abstract It has been pointed out by a number of authors that partial terms (ie terms that can fail to denote a value) arise frequently in the specification and development of programs. Furthermore, earlier papers describe and argue for the use of a nonclassical logic (the" Logic of Partial Functions") to facilitate sound and convenient reasoning about such terms. This paper addresses some of the issues that arise in trying to provide (semi-) decision procedures-such as resolution-for such a logic.
Zeitschrift für Mathematische Logik und Grundlagen der Mathematik, 1979
2006
Partial functions and operators are used extensively in the formal development of programs and thus development methods have to clarify how to reason about them. There are a number of approaches which cover up the fact that “First Order Predicate Calculus” does not handle undefined logical values. There is also at least one specific “Logic of Partial Functions”(LPF) which tackles the issue at its root by using a weaker logic. Recently, we have come to realise that LPF fits a particular way of developing programs.
The Journal of Logic Programming, 1998
Let Func be a set of function symbols, Pred be a set of predicate symbols, Vars be a denumerable set of variables. f /n denotes an arbitrary function symbol, and capital letters denote variables. Term denotes the set of terms that can be constructed from Func and Vars. t, t i and f (t 1 , • • • , t n) denote arbitrary terms. Atom denotes the set of atoms constructible from Pred, Func and Vars. a 1 and a 2 denote arbitrary atoms. θ and θ i denote substitutions. Let θ be a substitution and V ⊆ Vars. dom(θ) denotes the domain of θ. θ| \ V denotes the restriction of θ to V. As a convention, the function composition operator • binds stronger than | \. For instance, θ 1 • θ 2 | \ V is equal to (θ 1 • θ 2)| \ V. An expression O is a term, an atom, a literal, a clause, a goal etc. vars(O) denotes the set of variables in O. An equation is a formula of the form l = r where either l, r ∈ Term or l, r ∈ Atom. The set of all equations is denoted as Eqn. Let E ∈ ℘(Eqn). E is in solved form if, for each equation l = r in E, l is a variable that does not occur on the right side of any equation in E. For a set of equations E ∈ ℘(Eqn), mgu : ℘(Eqn) → Sub ∪ {fail } returns either a most general unifier for E if E is unifiable or fail otherwise, where Sub is the set of substitutions. mgu({l = r}) is sometimes written as mgu(l, r). Let θ•fail def = fail and fail •θ def = fail for any θ ∈ Sub∪{fail }. There is a natural bijection between substitutions and the sets of equations in solved form. eq(θ) denotes the set of equations in solved form corresponding to a substitution θ. eq(fail) def = fail. We will use a renaming substitution Ψ which renames a variable into a variable that has not been encountered before. Let F : D → ℘(E) be a function. F : ℘(D) → ℘(E) is defined as F (X) def = x∈X F (x).
International Conference on Logic Programming (ICLP 2012), 2012
Recently there has been an increasing interest in the bottom-up evaluation of the semantics of logic programs with complex terms. The main problem due to the presence of functional symbols in the head of rules is that the corresponding ground program could be infinite and that finiteness of models and termination of the evaluation procedure is not guaranteed. This paper introduces, by deeply analyzing program structure, new decidable criteria, called safety and Γ-acyclicity, for checking termination of logic programs with function symbols under bottom-up evaluation. These criteria guarantee that stable models are finite and computable, as it is possible to generate a finitely ground program equivalent to the source program. We compare new criteria with other decidable criteria known in the literature and show that the Γ-acyclicity criterion is the most general one. We also discuss its application in answering bound queries.
Information and Computation, 1993
We describe an axiomatic theory for the concept of one-place, partial function, where function is taken in its extensional sense. The theory is rather general, i.e., concepts like natural numbers and sets are definable, and topics as non-strictness and self application can be handled. It contains a model of the (extensional) lambda calculus, and commonly applied mechanisms (like currying, inductive definability) are possible. Furthermore, the theory is equi-consistent with and equally powerful as ZF-Set Theory.
2012
Specifications of programs frequently involve operators and functions that are not defined over all of their (syntactic) domains. Proofs about specifications–and those to discharge proof obligations that arise in justifying steps of design–must be based on formal rules. Since classical logic deals only with defined values, some extra thought is required. There are several ways of handling terms that can fail to denote a value—this paper provides a semantically based comparison of three of the best known approaches.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Bulletin of the Belgian Mathematical Society Simon Stevin, 2007
Notre Dame Journal of Formal Logic
Lecture Notes in Computer Science, 2003
Theoretical Computer Science, 1989
Theoretical Computer Science, 1994
Theoretical Computer Science - TCS, 1989
Formal Aspects of Computing, 1994
Mathematical Structures in Computer Science, 2004
Theoretical Computer Science, 1993
Journal of Functional Programming, 1992
Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '94, 1994
Journal of Functional …, 1998
Studia Logica - An International Journal for Symbolic Logic - SLOGICA, 1994