The theory of interacting deductions and its application to operational semantics

This thesis concerns the problem of complexity in operational semantics definitions. The appeal of modern operational semantics is the simplicity of their metatheories, which can be regarded as theories of deduction about certain shapes of operational judgments. However, when applied to real programming languages they produce bulky definitions that are cumbersome to reason about. The theory of interacting deductions is a richer metatheory which simplifies operational judgments and admits new proof techniques. An interacting deduction is a pair (F, I), where F is a forest of inference trees and I is a set of interaction links (a symmetric set of pairs of formula occurrences of F), which has been built from interacting inference rules (sequences of standard inference rules, or rule atoms). This setting allows one to decompose operational judgments. For instance, for a simple imperative language, one rule atom might concern a program transition, and another a store transition. Program judgments only interact with store judgments when necessary: so stores do not have to be propagated by every inference rule. A deduction in such a semantics would have two inference trees: one for programs and one for stores. This introduces a natural notion of modularity in proofs about semantics The proof fragmentation theorem shows that one need only consider the rule atoms relevant to the property being proved. To illustrate, I give the semantics for a simple process calculus, compare it with standard semantics and prove three simple properties: nondivergence, store correctness and an equivalence between the two semantics. Typically evaluation semantics provide simpler definitions and proofs than transition semantics. However, it turns out that evaluation semantics cannot be easily expressed using interacting deductions: they require a notion of sequentiality. The sequential deductions contain this extra structure. I compare the utility 111

[1]  Dale Miller,et al.  Forum: A Multiple-Conclusion Specification Logic , 1996, Theor. Comput. Sci..

[2]  Glynn Winskel,et al.  An Introduction to Event Structures , 1989 .

[3]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[4]  Gianna Reggio,et al.  SMoLCS-Driven Concurrent Calculi , 1987, TAPSOFT, Vol.1.

[5]  Göran Sundholm,et al.  Systems of Deduction , 1983 .

[6]  Gregor von Bochmann,et al.  A Sampler of Formal Definitions , 1976, CSUR.

[7]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[8]  Rance Cleaveland,et al.  A Semantics Based Verification Tool for Finite State Systems , 1989, PSTV.

[9]  G. Kreisel A Survey of Proof Theory II , 1971 .

[10]  Dale Miller A Survey of Linear Logic Programming , 1995 .

[11]  B. J. Mailloux,et al.  Report of Algorithmic Language ALGOL 68 , 1969 .

[12]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

[13]  A. Troelstra Metamathematical investigation of intuitionistic arithmetic and analysis , 1973 .

[14]  Mogens Nielsen,et al.  Models for Concurrency , 1992 .

[15]  Rajagopal Nagarajan,et al.  Interaction categories and the foundations of typed concurrent programming , 1996, NATO ASI DPD.

[16]  Uday S. Reddy,et al.  A linear logic model of state , 1993 .

[17]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[18]  E. Svendsen The professional handbook of the donkey , 1998 .

[19]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[20]  Georg Kreisel,et al.  A survey of proof theory , 1968, Journal of Symbolic Logic.

[21]  Peter D. Mosses,et al.  Denotational semantics , 1995, LICS 1995.

[22]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[23]  G. Sundholm Proof Theory and Meaning , 1986 .

[24]  Stefan Kahrs,et al.  Mistakes and Ambiguities in the definition of Standard ML , 1993 .

[25]  Sidneyf Elder,et al.  ELEMENTS OF SET THEORY , 1995 .

[26]  Denis Caromel,et al.  From a formal dynamic semantics of Sisal to a Sisal environment , 1995, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[27]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[28]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[29]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[30]  Gianna Reggio,et al.  Direct semantics of concurrent languages in the SMoLCS approach , 1987 .

[31]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

[32]  R. J. vanGlabbeek The linear time - branching time spectrum , 1990 .

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

[34]  Robin Milner,et al.  Control structures , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[35]  Fiora Pirri,et al.  First order abduction via tableau and sequent calculi , 1993, Log. J. IGPL.

[36]  Robin Milner,et al.  Co-Induction in Relational Semantics , 1991, Theor. Comput. Sci..

[37]  W. V. Quine,et al.  Natural deduction , 2021, An Introduction to Proof Theory.

[38]  Dines Bjørner,et al.  Formal specification and software development , 1982 .

[39]  Thierry Le Sergent,et al.  Programming with Behaviors in an ML Framework - The Syntax and Semantics of LCS , 1994, ESOP.

[40]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum II , 1993, CONCUR.

[41]  Dana S. Scott,et al.  A Type-Theoretical Alternative to ISWIM, CUCH, OWHY , 1993, Theor. Comput. Sci..

[42]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[43]  John Hannan,et al.  Extended natural semantics , 1993, Journal of Functional Programming.

[44]  Yuri Gurevich,et al.  The Semantics of the C Programming Language , 1992, CSL.

[45]  Colin Stirling,et al.  A Generalization of Owicki-Gries's Hoare Logic for a Concurrent while Language , 1988, Theor. Comput. Sci..

[46]  Paola Inverardi,et al.  Evaluation of Tools for the Analysis of Communicating Systems , 1991, Bull. EATCS.

[47]  Paul G. Sorenson,et al.  The Theory And Practice of Compiler Writing , 1985 .

[48]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

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

[50]  Fabio Q. B. da Silva,et al.  Correctness proofs of compilers and debuggers : an approach based on structural operational semantics , 1992 .

[51]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum I , 2001, Handbook of Process Algebra.

[52]  Willem P. de Roever,et al.  Compositionality and Concurrent Networks: Soundness and Completeness of a Proofsystem , 1985, ICALP.

[53]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[54]  Joseph Sifakis,et al.  A Modal Characterization of Observational Congruence on Finite Terms of CCS , 1986, Inf. Control..

[55]  Peter Aczel,et al.  An Introduction to Inductive Definitions , 1977 .

[56]  Carl A. Gunter Forms of Semantic Specification , 1991, Bull. EATCS.

[57]  D. Prawitz Ideas and Results in Proof Theory , 1971 .

[58]  P. Brinch-Hansen,et al.  The programming language Concurrent Pascal , 1975 .

[59]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[60]  James H. Andrews,et al.  Logic programming : operational semantics and proof theory , 1993 .

[61]  P Lucas,et al.  On the formal description of PL/I , 1969 .

[62]  K. V. S. Prasad A Calculus of Broadcasting Systems , 1991, Sci. Comput. Program..

[63]  Eike Best Relational Semantics of Concurrent Programs (With Some Applications) , 1982, Formal Description of Programming Concepts.

[64]  J. Girard,et al.  Proofs and types , 1989 .

[65]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[66]  Gordon Plotkin,et al.  An Operational Semantics for CSP. , 1982 .

[67]  Jozef Hooman,et al.  The Quest Goes on: A Survey of Proofsystems for Partial Correctness of CSP , 1986, Current Trends in Concurrency.

[68]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[69]  David A. Watt,et al.  An Action Semantics of Standard ML , 1987, MFPS.

[70]  John H. Reppy An Operational Semantics of First-class Synchronous Operations , 1991 .

[71]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[72]  Matthias Felleisen,et al.  Reasoning with Continuations , 1986, LICS.

[73]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[74]  Leslie Lamport,et al.  The ``Hoare Logic'' of CSP, and All That , 1984, TOPL.

[75]  Colin Stirling,et al.  Modal and temporal logics , 1993, LICS 1993.

[76]  Philippa Gardner,et al.  Equivalences between logics and their representing type theories , 1995, Mathematical Structures in Computer Science.

[77]  Prateek Mishra,et al.  Operational and Algebraic Semantics for Facile: A Symmetric Integration of Concurrent and Functional Programming , 1990, ICALP.

[78]  K. V. S. Prasad Programming with Broadcasts , 1993, CONCUR.

[79]  Peter D. Mosses Action Semantics , 1986, ADT.

[80]  Willem P. de Roever,et al.  A Proof System for Partial Correctness of Dynamic Networks of Processes (Extended Abstract) , 1983, Logic of Programs.

[81]  R. Milner Calculi for interaction , 1996, Acta Informatica.

[82]  Patrick M. Sansom,et al.  Execution profiling for non-strict functional languages , 1994 .

[83]  Samson Abramsky,et al.  Computational Interpretations of Linear Logic , 1993, Theor. Comput. Sci..

[84]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[85]  Andrew D. McGettrick The definition of programming languages , 1980 .

[86]  R. Pollack The Theory of LEGO A Proof Checker for the Extended Calculus of Constructions , 1994 .

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

[88]  Desmond Fearnley-Sander,et al.  Universal Algebra , 1982 .

[89]  Peter Wegner,et al.  The Vienna Definition Language , 1972, CSUR.

[90]  Frank Pfenning,et al.  Higher-order abstract syntax , 1988, PLDI '88.

[91]  Von Kurt Gödel,et al.  ÜBER EINE BISHER NOCH NICHT BENÜTZTE ERWEITERUNG DES FINITEN STANDPUNKTES , 1958 .

[92]  Robin Milner,et al.  Barbed Bisimulation , 1992, ICALP.

[93]  Judith L. Underwood Tableaux for Intuitionistic Predicate Logic as Metatheory , 1995, TABLEAUX.

[94]  Marty Ossefort,et al.  Correctness Proofs of Communicating Processes: Three Illustrative Examples From the Literature , 1983, TOPL.

[95]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[96]  Krzysztof R. Apt,et al.  Formal Justification of a Proof System for Communicating Sequential Processes , 1983, JACM.

[97]  Mads Dam,et al.  Compiler Generation from Relational Semantics , 1986, ESOP.

[98]  Norman I. Adams,et al.  The Revised Revised Report on Scheme or An Uncommon Lisp , 1985 .

[99]  Glynn Winskel,et al.  Event Structure Semantics for CCS and Related Languages , 1982, ICALP.

[100]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[101]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[102]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[103]  Dale Miller,et al.  Logic Programming in a Fragment of Intuitionistic Linear Logic , 1994, Inf. Comput..

[104]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[105]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[106]  C. Retoré,et al.  Réseaux et séquents ordonnés , 1993 .

[107]  John Wexler Concurrent programming in OCCAM 2 , 1989 .

[108]  Matthew Hennessy,et al.  Semantics of programming languages - an elementary introduction using structural operational semantics , 1990 .

[109]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[110]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[111]  Andrew M. Pitts,et al.  Process Calculus Based Upon Evaluation to Committed Form , 1996, Theor. Comput. Sci..

[112]  Matthias Felleisen,et al.  The Denotational Specifications of Complex Languages , 2005 .

[113]  Dave Berry,et al.  Generating program animators from programming language semantics , 1990 .

[114]  Gérard Berry,et al.  Preemption in Concurrent Systems , 1993, FSTTCS.

[115]  Egidio Astesiano,et al.  Inductive and Operational Semantics , 1989, Formal Description of Programming Concepts.

[116]  Pietro Cenciarelli,et al.  Computational applications of calculi based on monads , 1996, CST.

[117]  J. A. Robinson,et al.  The Definition of Programming Languages , 1976 .

[118]  Peter Wegner,et al.  Programming Languages - The First 25 Years , 1976, IEEE Trans. Computers.

[119]  W. F. Clocksin,et al.  Programming in Prolog, 2nd Edition , 1984 .

[120]  Robin Milner,et al.  Definition of standard ML , 1990 .

[121]  Matthias Felleisen,et al.  A Syntactic Theory of Sequential Control , 1987, Theor. Comput. Sci..

[122]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[123]  A. Meyer,et al.  Bisimulation can't be traced. Preliminary report , 1987 .

[124]  Glynn Winskel,et al.  Petri Nets, Event Structures and Domains , 1979, Semantics of Concurrent Computation.

[125]  Donald Sannella,et al.  The definition of Extended ML , 1994 .

[126]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[127]  Glynn Winskel,et al.  Petri Nets, Event Structures and Domains, Part I , 1981, Theor. Comput. Sci..