Logics of Programs

Publisher Summary This chapter presents an introduction to some of the basic issues in the study of program logics. The chapter describes various forms of first-order Dynamic Logic and discusses their syntax, semantics, proof theory, and expressiveness. The chapter discusses the power of auxiliary data structures such as arrays and stacks, and a powerful assignment statement called the nondeterministic assignment. Program logics differ from classical logics in that truth is dynamic rather than static. In classical predicate logic, the truth value of a formula is determined by a valuation of its free variables over some structure. The valuation and the truth value of the formula it induces are regarded as immutable. In program logics, there are explicit syntactic constructs called programs to change the values of variables, thereby changing the truth values of formulas. There are two main approaches to modal logics of programs: (1) the exogenous approach, exemplified by Dynamic Logic and its precursor, the Partial Correctness Assertions Method; and (2) the endogenous approach, exemplified by Temporal Logic and its precursor, the Inductive Assertions Method.

[1]  David Harel,et al.  Proving the Correctness of Regular Deterministic Programs: A Unifying Survey Using Dynamic Logic , 1980, Theor. Comput. Sci..

[2]  Michael A. Taitslin,et al.  Deterministic Dynamic Logic is Strictly Weaker than Dynamic Logic , 1983, Inf. Control..

[3]  Jerzy Tiuryn,et al.  Unbounded Program Memory Adds to the Expressive Power of First-Order Programming Logic , 1984, Inf. Control..

[4]  Rohit Parikh,et al.  A Decision Procedure for the Propositional µ-Calculus , 1983, Logic of Programs.

[5]  Albert R. Meyer Floyd-Hoare Logic Defines Semantics: Preliminary Version , 1986, LICS.

[6]  Amir Pnueli,et al.  Propositional Dynamic Logic of Nonregular Programs , 1983, J. Comput. Syst. Sci..

[7]  E. Allen Emerson,et al.  On simultaneously determinizing and complementing omega -automata , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[8]  Saharon Shelah,et al.  Reasoning with Time and Chance , 1982, Inf. Control..

[9]  Dexter Kozen,et al.  A Representation Theorem for Models of *-Free PDL , 1980, ICALP.

[10]  Albert R. Meyer,et al.  Definability in Dynamic Logic , 1981, J. Comput. Syst. Sci..

[11]  Robert L. Constable,et al.  On Classes of Program Schemata , 1972, SIAM J. Comput..

[12]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[13]  Pierre Wolper,et al.  Automata theoretic techniques for modal logics of programs: (Extended abstract) , 1984, STOC '84.

[14]  David E. Muller,et al.  Weak alternating automata give a simple explanation of why most temporal and dynamic logics are decidable in exponential time , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[15]  Jerzy Tiuryn,et al.  A Note On Equivalences Among Logics of Programs , 1981, Logic of Programs.

[16]  David C. Luckham,et al.  On Formalised Computer Programs , 1970, J. Comput. Syst. Sci..

[17]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[18]  Robert S. Streett Propositional Dynamic Logic of looping and converse , 1981, STOC '81.

[19]  Albert R. Meyer,et al.  The Deducibility Problem in Propositional Dynamic Logic , 1981, ICALP.

[20]  Daniel Leivant Logical and mathematical reasoning about imperative programs: preliminary report , 1985, POPL '85.

[21]  David Michael Ritchie Park Finiteness is Mu-Ineffable , 1976, Theor. Comput. Sci..

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

[23]  Jerzy Tiuryn,et al.  On the Power of Nondeterminism in Dynamic Logic , 1982, ICALP.

[24]  David Gries,et al.  Program Schemes with Pushdown Stores , 1972, SIAM J. Comput..

[25]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[26]  Rohit Parikh Propositional logics of programs: systems, models, and complexity , 1980, POPL '80.

[27]  Dexter Kozen,et al.  A finite model theorem for the propositional μ-calculus , 1988, Stud Logica.

[28]  Pawel Urzyczyn,et al.  Deterministic Context-Free Dynamic Logic is More Expressive than Deterministic Dynamic Logic of Regular Programs , 1983, FCT.

[29]  Albert R. Meyer,et al.  Computability and completeness in logics of programs (Preliminary Report) , 1977, STOC '77.

[30]  Patrick Cousot,et al.  Methods and Logics for Proving Programs , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[31]  S. Safra,et al.  On the complexity of omega -automata , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[32]  Leslie Lamport,et al.  "Sometime" is sometimes "not never": on the temporal logic of programs , 1980, POPL '80.

[33]  R. Parikh The logic of games and its applications , 1985 .

[34]  Rohit Parikh,et al.  An Elementary Proof of the Completness of PDL , 1981, Theor. Comput. Sci..

[35]  David Harel,et al.  Propositional Dynamic Logic of Flowcharts , 1985, Inf. Control..

[36]  Joseph Y. Halpern Deterministic process logic is elementary , 1982, FOCS 1982.

[37]  Yishai A. Feldman,et al.  A Decidable Propositional Dynamic Logic with Explicit Probabilities , 1986, Inf. Control..

[38]  Jan A. Bergstra,et al.  Floyds Principle, Correctness Theories and Program Equivalence , 1982, Theor. Comput. Sci..

[39]  Karl Winklmann,et al.  Expressing Program Looping in Regular Dynamic Logic , 1982, Theor. Comput. Sci..

[40]  Vaughan R. Pratt,et al.  Using Graphs to Understand PDL , 1981, Logic of Programs.

[41]  Dexter Kozen A Probabilistic PDL , 1985, J. Comput. Syst. Sci..

[42]  Richard E. Ladner,et al.  Propositional Dynamic Logic of Regular Programs , 1979, J. Comput. Syst. Sci..

[43]  Vaughan R. Pratt,et al.  A Near-Optimal Method for Reasoning about Action , 1980, J. Comput. Syst. Sci..

[44]  David Harel,et al.  Undecidability of PDL with L={a^(2i)|i>=0} , 1984, J. Comput. Syst. Sci..

[45]  Pawel Urzyczyn,et al.  Nontrivial Definability by Flow-Chart Programs , 1984, Inf. Control..

[46]  Grazyna Mirkowska,et al.  Algorithmic logic with nondeterministic programs , 1980, Fundam. Informaticae.

[47]  Rohit Parikh Propositional Dynamic Logics of Programs: a Survey , 1979, Logic of Programs.

[48]  Dexter Kozen,et al.  Semantics of probabilistic programs , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[49]  Moshe Y. Vardi Automatic verification of probabilistic concurrent finite state programs , 1985, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

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

[51]  Larry J. Stockmeyer,et al.  Improved upper and lower bounds for modal logics of programs , 1985, STOC '85.

[52]  Moshe Y. Vardi The Taming of Converse: Reasoning about Two-way Computations , 1985, Logic of Programs.

[53]  Francine Berman A completeness technique for d-axiomatizable semantics , 1979, STOC '79.

[54]  Mars K. Valiev Decision Complexity of Variants of Propositional Dynamic Logic , 1980, MFCS.

[55]  Saharon Shelah,et al.  On the temporal analysis of fairness , 1980, POPL '80.

[56]  Mordechai Ben-Ari,et al.  Deterministic Propositional Dynamic Logic: Finite Models, Complexity, and Completeness , 1982, J. Comput. Syst. Sci..

[57]  Joseph Y. Halpern,et al.  Effective Axiomatizations of Hoare Logics , 1983, JACM.

[58]  Antoni Kreczmar,et al.  An introduction to algorithmic logic; metamathematical investigations in the theory of programs , 1977 .

[59]  Moshe Y. Vardi Verification of Concurrent Programs: The Automata-Theoretic Framework , 1991, Ann. Pure Appl. Log..

[60]  Jean-Pierre Pécuchet On the Complementation of Büchi Automata , 1986, Theor. Comput. Sci..

[61]  Mihalis Yannakakis,et al.  Verifying temporal properties of finite-state probabilistic programs , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[62]  Karl R. Abrahamson Decidability and expressiveness of logics of processes , 1980 .

[63]  Jerzy Tiuryn,et al.  Some Relationships Between Logics of Programs and Complexity Theory , 1988, Theor. Comput. Sci..

[64]  Rod M. Burstall,et al.  Program Proving as Hand Simulation with a Little Induction , 1974, IFIP Congress.

[65]  Robert L. Constable,et al.  On the theory of programming logics , 1977, STOC '77.

[66]  Joseph Y. Halpern,et al.  The prepositional dynamic logic of deterministic, well-structured programs , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[67]  Pierre Wolper,et al.  Yet Another Process Logic (Preliminary Version) , 1983, Logic of Programs.

[68]  Jan A. Bergstra,et al.  Proving Program Inclusion Using Hoare's Logic , 1984, Theor. Comput. Sci..

[69]  Harvey M. Friedman,et al.  Algorithmic Procedures, Generalized Turing Algorithms, and Elementary Recursion Theory , 1971 .

[70]  Pierre Wolper,et al.  The Complementation Problem for Büchi Automata with Appplications to Temporal Logic , 1987, Theor. Comput. Sci..

[71]  E. Allen Emerson,et al.  The complexity of tree automata and logics of programs , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[72]  David Peleg,et al.  On Static Logics, Dynamic Logics, and Complexity Classes , 1984, Inf. Control..

[73]  Hirokazu Nishimura Arithmetical Completeness in First-Order Dynamic Logic for Concurrent Programs , 1981 .

[74]  Dexter Kozen,et al.  On Induction vs. *-Continuity , 1981, Logic of Programs.

[75]  Dexter Kozen,et al.  On the Duality of Dynamic Algebras and Kripke Models , 1979, Logic of Programs.

[76]  Dexter Kozen,et al.  Results on the Propositional µ-Calculus , 1982, ICALP.

[77]  Neil Immerman,et al.  Nondeterministic space is closed under complementation , 1988, [1988] Proceedings. Structure in Complexity Theory Third Annual Conference.

[78]  Vaughan R. Pratt,et al.  Dynamic algebras and the nature of induction , 1980, STOC '80.

[79]  Rohit Parikh,et al.  The Completeness of Propositional Dynamic Logic , 1978, MFCS.

[80]  A. Prasad Sistla,et al.  The complexity of propositional linear temporal logics , 1982, STOC '82.

[81]  Richard J. Lipton,et al.  A necessary and sufficient condition for the existence of hoare logics , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[82]  Rohit Parikh A decidability result for a second order process logic , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[83]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[84]  David Harel,et al.  A Programming Language for the Inductive Sets, and Applications , 1984, Inf. Control..

[85]  Yishai A. Feldman,et al.  A probabilistic dynamic logic , 1982, STOC '82.

[86]  Petr Hájek,et al.  A second-order dynamic logic with array assignments , 1981, Fundam. Informaticae.

[87]  David Harel,et al.  Nondeterminism in logics of programs , 1978, POPL.

[88]  A. Prasad Sistla,et al.  Deciding Full Branching Time Logic , 1985, Inf. Control..

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

[90]  L. Csirmaz Determinateness of Program Equivalence over Peano Axioms , 1982, Theor. Comput. Sci..

[91]  A. Ehrenfeucht An application of games to the completeness problem for formalized theories , 1961 .

[92]  M. Rabin Decidability of second-order theories and automata on infinite trees. , 1969 .

[93]  Joseph Y. Halpern,et al.  Axiomatic definitions of programming languages: a theoretical assessment (preliminary report) , 1980, POPL '80.

[94]  Francine Berman,et al.  Propositional Dynamic Logic is Weaker without Tests , 1981, Theor. Comput. Sci..

[95]  Richard E. Ladner,et al.  Propositional modal logic of programs , 1977, STOC '77.

[96]  Johann A. Makowsky Measuring the Expressive Power of Dynamic Logics: An Application of Abstract Model Theory , 1980, ICALP.

[97]  Jerzy Tiuryn,et al.  Higher-Order Arrays and Stacks in Programming. An Application of Complexity Theory to Logics of Programs , 1996, MFCS.

[98]  Joseph Y. Halpern,et al.  Decision procedures and expressiveness in the temporal logic of branching time , 1982, STOC '82.

[99]  Rohit Parikh,et al.  Propositional game logic , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[100]  Jerzy Tiuryn A Survey of the Logic of Effective Definitions , 1979, Logic of Programs.

[101]  Jerzy Tiuryn,et al.  Remarks on Comparing Expressive Power of Logics of Programs , 1984, MFCS.

[102]  David Peleg,et al.  Concurrent dynamic logic , 1987, JACM.

[103]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[104]  Stefan Sokolowski Programs as term transformers , 1980, Fundam. Informaticae.

[105]  Joseph Y. Halpern,et al.  True Relative Completeness of an Axiom System for the Language L4 (Abridged) , 1986, LICS.

[106]  A. Salwicki Algorithmic Logic, a Tool for Investigations of Programs , 1977 .

[107]  Vaughan R. Pratt,et al.  SEMANTICAL CONSIDERATIONS ON FLOYD-HOARE LOGIC , 1976, FOCS 1976.

[108]  Lyle Harold Ramshaw,et al.  Formalizing the analysis of algorithms , 1979 .

[109]  Zohar Manna,et al.  Specification and verification of concurrent programs by A∀automata , 1987, POPL '87.

[110]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[111]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[112]  Jerzy Tiuryn,et al.  A Simplified Proof of DDL < DL , 1989, Inf. Comput..

[113]  Vaughan R. Pratt,et al.  Models of program logics , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[114]  Rohit Parikh Propositional Logics of Programs: New Directions , 1983, FCT.

[115]  Zohar Manna,et al.  Verification of Concurrent Programs: Temporal Proof Principles , 1981, Logic of Programs.

[116]  Krzysztof R. Apt,et al.  Countable nondeterminism and random assignment , 1986, JACM.

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

[118]  Micha Sharir,et al.  Termination of probabilistic concurrent programs: (extended abstract) , 1982, POPL '82.

[119]  Rohit Parikh,et al.  A Theory of Probabilistic Programs , 1983, Logic of Programs.

[120]  Vaughan R. Pratt A practical decision method for propositional dynamic logic (Preliminary Report) , 1978, STOC '78.

[121]  David Harel,et al.  Looping vs. Repeating in Dynamic Logic , 1982, Inf. Control..

[122]  Vera Trnková,et al.  Dynamic Algebras which are not Kripke Structures , 1980, MFCS.

[123]  Vaughan R. Pratt,et al.  A decidable mu-calculus: Preliminary report , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[124]  Robert S. Streett,et al.  Propositional Dynamic Logic of Looping and Converse Is Elementarily Decidable , 1982, Inf. Control..

[125]  Assaf J. Kfoury,et al.  Definability by Deterministic and Non-deterministic Programs (with Applications to First-Order Dynamic Logic) , 1985, Inf. Control..