Results 11 -
14 of
14
Reasoning with Higher Order Partial Functions
, 1992
"... . In this paper we introduce the logic PHOL, which embodies higher-order functions through a simply-typed -calculus and deals with partial objects by using partially ordered domains and three truth values. We define a refutationally complete tableaux method for PHOL and we show how to derive a sound ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
. In this paper we introduce the logic PHOL, which embodies higher-order functions through a simply-typed -calculus and deals with partial objects by using partially ordered domains and three truth values. We define a refutationally complete tableaux method for PHOL and we show how to derive a sound and complete cut free sequent calculus through a systematic analysis of the rules for tableaux construction. 1 Introduction The formal methodologies used for the specification and verification of software (and also hardware) systems have motivated during the last years the development of so called partial logics, where partial functions can be used to argue about errors, diverging computations, and similar phenomena. Following some earlier precedents, such as [16], [21] and [5], quite many recent papers (as e.g. [2], [24], [17], [14], [19], [13]) have proposed partial versions of first order predicate logic aiming at this field of application. Partiality has been also investigated within t...
The sigma-Semantics: A Comprehensive Semantics for Functional Programs
, 1997
"... A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this cho ..."
Abstract
- Add to MetaCart
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the &-semantics, especially call-by-value and call-byname semantics, are highlighted. Furthermore, a property can be validated for all instances of the &-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the &-semantics. We present and apply means for very simple proofs of equivalence with the denotational &-semantics for a large class of reduction-based &-semantics. Our basis are simple first-order constructorbased functional programs with patterns. Keyw...
A Free Logical Foundation for Nonstrict Functions
"... . Every "practical" programming language supplies the programmer with at least one nonstrict construct, such as the ALGOL60 arithmetic `if-then-else' and the LISP `cond'. Many programming languages also enable the user to define nonstrict functions. In some languages, this is accomplished throug ..."
Abstract
- Add to MetaCart
. Every "practical" programming language supplies the programmer with at least one nonstrict construct, such as the ALGOL60 arithmetic `if-then-else' and the LISP `cond'. Many programming languages also enable the user to define nonstrict functions. In some languages, this is accomplished through the lazy evaluation of procedure parameters, as realized, for example, by the call-by-name devices of ALGOL60 and SIMULA67 and the call-by-need mechanism of haskell. In other languages, such as Common LISP, a macro definition facility can serve a similar purpose. Programming languages that provide a mechanism for the user to define nonstrict functions are nonstrict languages, and we call the natural, two-valued, first-order logic underlying these languages nonstrict positive free logic. Definitions are essential in the specification of software, and many useful properties of definitions in standard logic carry over into nonstrict positive free logic. Before embarking on details, ...
Rigorous Development of Functional Programs Using Temporal Logic
, 2003
"... In this paper, we propose a new method, based on the use of temporal logic, for developing and reasoning about functional programs. Our software development method is rigorous and systematic: starting with a list of informal requirement descriptions, we initially derive a set of object-based spec ..."
Abstract
- Add to MetaCart
In this paper, we propose a new method, based on the use of temporal logic, for developing and reasoning about functional programs. Our software development method is rigorous and systematic: starting with a list of informal requirement descriptions, we initially derive a set of object-based specifications, which are later on transformed into modular monadic functional programs. The obtained specifications and programs are shown to consist in an effective basis for verification.

