Relational Reasoning about Functions and Nondeterminism

This dissertation explores a uniform, relational proof style for operational arguments about program equivalences. It improves and facilitates many previously given proofs, and it is used to establish new proof rules for reasoning about term contexts, recursion, and nondeterminism in higher-order programming languages. Part I develops an algebra of relations on terms and exploits these relations in operational arguments about contextual equivalence for a typed deterministic functional language. Novel proofs of the basic laws, sequentiality and continuity properties, induction rules, and the CIU Theorem are presented together with new relational proof rules akin to Sangiorgi’s “bisimulation up to context” for process calculi. Part II extends the results from the first part to nondeterministic functional programs. May and must operational semantics and contextual equivalences are defined and their properties are explored by means of relational techniques. For must contextual equivalence, the failure of ordinary syntactic ω-continuity in the presence of countable nondeterminism is addressed by a novel transfinite syntactic continuity principle. The relational techniques are also applied to the study of lower and upper applicative simulation relations, yielding new results about their properties in the presence of countable and fair nondeterminism, and about their relationship with the contextual equivalences.

[1]  Jan Willem Klop,et al.  Transfinite Reductions in Orthogonal Term Rewriting Systems , 1995, Inf. Comput..

[2]  Carl A. Gunter,et al.  Semantic Domains , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[3]  Matthew Hennessy,et al.  A Mathematical Semantics for a Nondeterministic Typed lambda-Calculus , 1980, Theor. Comput. Sci..

[4]  I. Stark,et al.  Domains and Denotational Semantics History Accomplishments and Open Problems , 1996 .

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

[6]  Ugo de'Liguoro,et al.  Non deterministic extensions of untyped-calculus , 1995 .

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

[8]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[9]  Peter W. O'Hearn,et al.  Kripke Logical Relations and PCF , 1995, Inf. Comput..

[10]  Matthew Hennessy,et al.  A theory of weak bisimulation for core CML , 1996, ICFP '96.

[11]  Dave Sands,et al.  Computing with Contexts: A simple approach , 1998, HOOTS.

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

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

[14]  Søren B. Lassen Basic Action Theory , 1995 .

[15]  C.-H. Luke Ong,et al.  Non-determinism in a functional setting , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[16]  Roy L. Crole,et al.  Categories for Types , 1994, Cambridge mathematical textbooks.

[17]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[18]  Furio Honsell,et al.  Operational, denotational and logical descriptions: a case study , 1992, Fundam. Informaticae.

[19]  Andrew D. Gordon Operational equivalences for untyped and polymorphic object calculi , 1999 .

[20]  Albert R. Meyer,et al.  Semantical paradigms: notes for an invited lecture , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[21]  Eike Ritter Calculus with Reference Types and Standard ML , 1994 .

[22]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[23]  Soren Lassen Relational reasoning about contexts , 1997 .

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

[25]  Richard S. Bird,et al.  Algebra of programming , 1997, Prentice Hall International series in computer science.

[26]  David Sands,et al.  Improvement theory and its applications , 1999 .

[27]  Andrew D. Gordon A Tutorial on Co-induction and Functional Programming , 1994, Functional Programming.

[28]  Andrew Keith Moran Natural semantics for non-determinism , 1994 .

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

[30]  Prakash Panangaden,et al.  A Category-theoretic Semantics for Unbounded Indeterminacy , 1989, Mathematical Foundations of Programming Semantics.

[31]  Gordon D. Plotkin,et al.  A Powerdomain for Countable Non-Determinism (Extended Abstract) , 1982, ICALP.

[32]  Gerth Stølting Brodal,et al.  Worst Case Efficient Data Structures , 1997 .

[33]  D. C. Cooper,et al.  Theory of Recursive Functions and Effective Computability , 1969, The Mathematical Gazette.

[34]  Helmut Schwichtenberg Finite Notations for Infinite Terms , 1998, Ann. Pure Appl. Log..

[35]  Andrew Donald Gordon,et al.  Functional programming and input/output , 1995 .

[36]  Andrew Pitts,et al.  Semantics and Logics of Computation: Operationally-Based Theories of Program Equivalence , 1997 .

[37]  S. Abramsky The lazy lambda calculus , 1990 .

[38]  Gérard Boudol,et al.  Lambda-Calculi for (Strict) Parallel Functions , 1994, Inf. Comput..

[39]  Lars Birkedal,et al.  Relational Interpretations of Recursive Types in an operational Setting (Summary) , 1997, TACS.

[40]  Bard Bloom Can LCF be topped? Flat lattice models of typed lambda calculus , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[41]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

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

[43]  Radha Jagadeesan,et al.  A Domain-Theoretic Model for a Higher-Order Process Calculus , 1990, ICALP.

[44]  Ian A. Mason Parametric Computation , 2022 .

[45]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

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

[47]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[48]  Carolyn L. Talcott,et al.  From Operational Semantics to Domain Theory , 1996, Inf. Comput..

[49]  Irek Ulidowski,et al.  Equivalences on observable processes , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[50]  Alonzo Church,et al.  Formal definitions in the theory of ordinal numbers , 1937 .

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

[52]  Samson Abramsky,et al.  On Semantic Foundations for Applicative Multiprogramming , 1983, ICALP.

[53]  Davide Sangiorgi,et al.  On the bisimulation proof method , 1998, Mathematical Structures in Computer Science.

[54]  Matthias Felleisen,et al.  On the Expressive Power of Programming Languages , 1990, European Symposium on Programming.

[55]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[56]  Mitchell Wand,et al.  Denotational semantics using an operationally-based term model , 1997, POPL '97.

[57]  G. Winskel The formal semantics of programming languages , 1993 .

[58]  Carolyn L. Talcott,et al.  1 Equivalence in Functional Languages with E ectsIan , 2007 .

[59]  Furio Honsell,et al.  Uncountable Limits and the lambda Calculus , 1995, Nord. J. Comput..

[60]  Andrew D. Gordon,et al.  Compilation and Equivalence of Imperative Objects , 1999, J. Funct. Program..

[61]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

[62]  Andrew W. Appel,et al.  Standard ML of New Jersey , 1991, PLILP.

[63]  Andrew M. Pitts,et al.  Higher order operational techniques in semantics , 1999 .

[64]  Andrew D. Gordon Bisimilarity as a theory of functional programming , 1995, MFPS.

[65]  Douglas J. Howe Equality in lazy computation systems , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[66]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[67]  Carolyn L. Talcott,et al.  A Theory of Binding Structures and Applications to Rewriting , 1993, Theor. Comput. Sci..

[68]  Andrew M. Pitts,et al.  A Fully Abstract Translation between a Lambda-Calculus with Reference Types and Standard ML , 1995, TLCA.

[69]  Peter D. Mosses,et al.  Theory and Practice of Action Semantics , 1996, MFCS.

[70]  B. LassenBRICS Reasoning with Actions , 2022 .

[71]  Douglas J. Howe Proving Congruence of Bisimulation in Functional Programming Languages , 1996, Inf. Comput..

[72]  Alley Stoughton,et al.  Substitution Revisited , 1988, Theor. Comput. Sci..

[73]  Andrew D. Gordon,et al.  Bisimilarity for a first-order calculus of objects with subtyping , 1996, POPL '96.

[74]  K. Sieber Applications of Categories in Computer Science: Reasoning about sequential functions via logical relations , 1992 .

[75]  Torben Braüner,et al.  An Axiomatic Approach to Adequacy , 1996 .

[76]  John C. Mitchell,et al.  Type Systems for Programming Languages , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[77]  C. Talcott,et al.  Reasoning about functions with effects , 1999 .

[78]  G. M. Bierman A Computational Interpretation of the lambda-µ-Calculus , 1998, MFCS.

[79]  Helmut Schwichtenberg,et al.  Ordinal Bounds for Programs , 1995 .

[80]  Andrew M. Pitts Reasoning about local variables with operationally-based logical relations , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[81]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[82]  Manfred Broy,et al.  Adding fair choice to Dijkstra's calculus , 1994, TOPL.

[83]  Samson Abramsky,et al.  Handbook of logic in computer science. , 1992 .

[84]  Vaughan R. Pratt,et al.  On the Syllogism: IV; and on the Logic of Relations , 2022 .

[85]  Søren B. Lassen Action Semantics Reasoning about Functional Programs , 1997, Math. Struct. Comput. Sci..

[86]  Allan Cheng,et al.  Reasoning About Concurrent Computational Systems , 1996 .

[87]  Ole I. Hougaard,et al.  The CLP(OIH) Language , 1998 .

[88]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[89]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

[90]  Egidio Astesiano,et al.  Nondeterminism and Fully Abstract Models , 1980, RAIRO Theor. Informatics Appl..

[91]  Lars Arge,et al.  Efficient External-Memory Data Structures and Applications , 1996, BRICS Dissertation Series.

[92]  John C. Mitchell On Abstraction and the Expressive Power of Programming Languages , 1991, Sci. Comput. Program..

[93]  Daniel J. Lehmann Categories for fixpoint-semantics , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[94]  David Sands,et al.  Operational Theories of Improvement in Functional Languages (Extended Abstract) , 1991, Functional Programming.

[95]  Andrew Moran,et al.  Call-by-name, Call-by-need, and McCarthy's Amb , 1998 .

[96]  John Hamer,et al.  A Modular Monadic Action Semantics , 1997, DSL.

[97]  Gérard Boudol Towards a Lambda-Calculus for Concurrent and Communicating Systems , 1989, TAPSOFT, Vol.1.

[98]  Philip Wadler,et al.  A reflection on call-by-value , 1997, TOPL.

[99]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[100]  Kurt Sieber Call-by-Value and Nondeterminism , 1993, TLCA.

[101]  B. Jacobs,et al.  A tutorial on (co)algebras and (co)induction , 1997 .

[102]  Vincent van Oostrom,et al.  Combinatory Reduction Systems: Introduction and Survey , 1993, Theor. Comput. Sci..

[103]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[104]  Manfred Broy,et al.  A Theory for Nondeterminism, Parallelism, Communication, and Concurrency , 1986, Theor. Comput. Sci..