Recursive Programs and Denotational Semantics in Absolute Logics of Programs

Abstract It has been proposed by Meyer, Kfouri and others to extend the so-called Nonstandard Logics of Programs approach (NLP henceforth) to recursive programs and denotational semantics in some natural way. The key step in doing NLP is selecting a semantics for programs (which, in the present paper, is denotational semantics) and then forming its KPU-absolute version. Absoluteness is a set theoretic property of logics. If a logic L is not absolute, then some formulas of L do not speak about the models of L , but about something else. If a logic has this strange property, then it is impossible to find a complete inference system for it, and this because of purely “administrative” reasons, which might not correspond to any of the inherent properties of the original situation we are modeling (in devising this logic etc.). This “administrative” incompleteness is only one of the undesirable side effects of nonabsoluteness. In NLP, the purpose of constructing and studying absolute versions of logics is aimed at, among other things, the removal of these undesirable properties. The absolute version of denotational semantics will turn out to be based on 2-sorted first order logic, or more concretely, on the usual nonstandard or weak second order logic. Some of the most relevant features of this logic are the ability to compare “realistic” existing program verification methods, create new, more powerful and still “realistic” ones, completeness etc., to mention only a very few.

[1]  Ildikó Sain,et al.  A Characterization of Floyd-Provable Programs , 1981, MFCS.

[2]  Mario Rodríguez-Artalejo,et al.  Hoare's Logic for Nondeterministic Regular Programs: A Nonstandard Approach , 1989, Theor. Comput. Sci..

[3]  Ildikó Sain,et al.  A Complete Logic for Reasoning about Programs via Nonstandard Model Theory I , 1982, Theor. Comput. Sci..

[4]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[5]  Ildikó Sain A Simple Proof for the Completeness of Floyd's Method , 1985, Theor. Comput. Sci..

[6]  Robert Cartwright Recursive Programs as Definitions in First Order Logic , 1984, SIAM J. Comput..

[7]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[8]  David Harel,et al.  First-Order Dynamic Logic , 1979, Lecture Notes in Computer Science.

[9]  Leon Henkin,et al.  Completeness in the theory of types , 1950, Journal of Symbolic Logic.

[10]  Ildikó Sain,et al.  Completeness Problems in Verification of Programs and Program Schemes , 1979, MFCS.

[11]  Ildikó Sain,et al.  Henkin-type semantics for program-schemes to turn negative results to positive , 1979, FCT.

[12]  Hajnal Andréka,et al.  Completeness of Floyd logic , 1978 .

[13]  Petr Hájek,et al.  A simple dynamic logic , 1986, Theor. Comput. Sci..

[14]  Johann A. Makowsky,et al.  Weak Second Order Characterizations of Various Program Verification Systems , 1989, Theor. Comput. Sci..

[15]  Krzysztof R. Apt,et al.  Exercises in Denotational Semantics , 1976, MFCS.

[16]  László Csirmaz A completeness theorem for dynamic logic , 1985, Notre Dame J. Formal Log..

[17]  László Csirmaz On the completeness of proving partial correctness , 1981, Acta Cybern..

[18]  Ildikó Sain,et al.  Program verification within and without logic , 1979 .

[19]  Tamás Gergely,et al.  Program Behaviour Specification through Explicit Time Consideration , 1980, IFIP Congress.

[20]  J. D. Monk,et al.  Mathematical Logic , 1976 .

[21]  Boris A. Trakhtenbrot,et al.  Recursive Program Schemas and Computable Functionals , 1976, MFCS.

[22]  Stephen D. Brookes,et al.  A Fully Abstract Semantics and a Proof System for an ALGOL-Like Language with Sharing , 1985, Mathematical Foundations of Programming Semantics.

[23]  Ana Pasztor Non-Standard Algorithmic and Dynamic Logic , 1986, J. Symb. Comput..

[24]  Assaf J. Kfoury,et al.  On the Termination of Program Schemas , 1975, Inf. Control..

[25]  Robert D. Tennent,et al.  The denotational semantics of programming languages , 1976, CACM.

[26]  Jeff B. Paris,et al.  A Property of 2-Sorted Peano Models and Program Verification , 1984, Math. Log. Q..

[27]  Ildikó Sain Structured Nonstandard Dynamic Logic , 1984, Math. Log. Q..

[28]  Daniel Leivant,et al.  Logical and Mathematical Reasoning about Imperative Programs. , 1985 .

[29]  L. Csirmaz Programs and Program Verifications in a General Setting , 1981, Theor. Comput. Sci..

[30]  Peter D. Mosses Compiler Generation Using Denotational Semantics , 1976, MFCS.

[31]  Christopher Strachey,et al.  A theory of programming language semantics , 1976 .

[32]  Johann A. Makowsky,et al.  On the Equivalence of Weak Second Order and Nonstandard Time Semantics For Various Program Verification Systems , 1986, LICS.

[33]  Robert D. Tennent,et al.  Semantics of programming languages , 1991, Prentice Hall International Series in Computer Science.

[34]  Gerald E. Sacks,et al.  Saturated Model Theory , 1972 .

[35]  Tamás Gergely,et al.  On the incompleteness of proving partial correctness , 1978, Acta Cybern..

[36]  Ildikó Sain Concerning some cylindric algebra versions of the downward Löwenheim-Skolem theorem , 1988, Notre Dame J. Formal Log..

[37]  Ildikó Sain First Order Dynamic Logic with Decidable Proofs and Workable Model Theory , 1981, FCT.

[38]  Ildikó Sain Total Correctness in Nonstandard Logics of Programs , 1987, Theor. Comput. Sci..

[39]  Robert Cartwright,et al.  First order programming logic , 1979, POPL.

[40]  István Németi,et al.  Nonstandard Dynamic Logic , 1981, Logic of Programs.

[41]  Dana S. Scott Mathematical concepts in programming language semantics , 1971, AFIPS '72 (Spring).

[42]  Ildikó Sain,et al.  The Reasoning Powers of Burstall's (Modal Logic) and Pnueli's (Temporal Logic) Program Verification Methods , 1985, Logic of Programs.

[43]  J. W. de Bakker,et al.  Mathematical theory of program correctness , 1980, Prentice-Hall international series in computer science.

[44]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[45]  L. Csirmaz,et al.  On the Strength of "Sometimes" and "Always" in Program Verification , 1984, Inf. Control..

[46]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .