research

Program Semantics and Classical Logic

Abstract

In the tradition of Denotational Semantics one usually lets program constructs take their denotations in reflexive domains, i.e. in domains where self-application is possible. For the bulk of programming constructs, however, working with reflexive domains is an unnecessary complication. In this paper we shall use the domains of ordinary classical type logic to provide the semantics of a simple programming language containing choice and recursion. We prove that the rule of {\em Scott Induction\/} holds in this new setting, prove soundness of a Hoare calculus relative to our semantics, give a direct calculus C{\cal C} on programs, and prove that the denotation of any program PP in our semantics is equal to the union of the denotations of all those programs LL such that PP follows from LL in our calculus and LL does not contain recursion or choice

    Similar works