Results 11 
15 of
15
Reasoning with Higher Order Partial Functions
, 1992
"... . In this paper we introduce the logic PHOL, which embodies higherorder functions through a simplytyped 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 higherorder functions through a simplytyped 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...
Translating Haskell to Isabelle
, 2007
"... Abstract. We present partial translations of Haskell programs to Isabelle that have been implemented as part of the Heterogeneous Tool Set. The the target logic is Isabelle/HOLCF, and the translation is based on a shallow embedding approach. 1 ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. We present partial translations of Haskell programs to Isabelle that have been implemented as part of the Heterogeneous Tool Set. The the target logic is Isabelle/HOLCF, and the translation is based on a shallow embedding approach. 1
The sigmaSemantics: A Comprehensive Semantics for Functional Programs
, 1997
"... A comprehensive semantics for functional programs is presented, which generalizes the wellknown callbyvalue and callbyname semantics. By permitting a separate choice between callby value and callbyname 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 wellknown callbyvalue and callbyname semantics. By permitting a separate choice between callby value and callbyname for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameterpassing mechanism. Thus common and distinguishing features of all instances of the &semantics, especially callbyvalue and callbyname 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 (fixedpoint 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 reductionbased &semantics. Our basis are simple firstorder 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 `ifthenelse' 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 `ifthenelse' 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 callbyname devices of ALGOL60 and SIMULA67 and the callbyneed 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, twovalued, firstorder 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 objectbased 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 objectbased 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.