Carnegie Mellon University in Qatar
School of Computer Science, Carnegie Mellon University
Supported by the Qatar National Research Fund


Meta-CLF

Formal Reasoning about Languages for Distributed Computation

Project Description

Foundational research in programming language semantics has given us the ability to design languages for sequential programming with strong theoretical properties, which translate into run-time assurance for programs written in such languages. Recently, logical frameworks such as Twelf and Coq have been used to formally prove deep properties of full-scale practical programming languages, such as the safety of Standard ML or the correctness of a compiler for an expressive subset of C. In contrast, no overarching methodologies exist yet for languages for distributed computation, which are gaining prominence with the advent of web programming, security infrastructures, and cloud computing. This means that we cannot say as much about the properties of present languages in these domains as a whole, or behaviors of specific programs written in them.
This project aims at developing recent work on language specification with substructural operational semantics (SSOS) into methodologies for designing and reasoning about programming and specification languages for distributed computation. We use the Concurrent Logical Framework (CLF) in order to elegantly implement SSOS specifications, and to develop and implement (co)inductive techniques to reason about such specification. Finally, we carry out case studies with logically-based languages for distributed computation such as ML5 to demonstrate the practicality of our approach.
Funding
This work was funded by the Qatar National Research Fund as project NPRP 09-1107年1月16日8 (Formal Reasoning about Languages for Distributed Computation) for an amount of 1,002,161ドル over 3 years.

People

Collaborators

Past members


Outputs

2014 2013 2012 2011
  • Yuxin Deng, Iliano Cervesato and Rob Simmons: Relating Reasoning Methodologies in Linear Logic and Process Algebra, Technical Report CMU-CS-11-145, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 2011.
    We show that the proof-theoretic notion of logical preorder coincides with the process-theoretic notion of contextual preorder for a CCS-like process calculus obtained from the formula-as-process interpretation of a fragment of linear logic. The argument makes use of other standard notions in process algebra, namely simulation and labeled transition systems. This result establishes a connection between an approach to reason about process specifications, the contextual preorder, and a method to reason about logic specifications, the logical preorder.
  • Luís Caires, Bernardo Toninho and Frank Pfenning: Proof-Carrying Code in a Session-Typed Process Calculus, First International Conference on Certified Programs and Proofs (CPP 2011), Springer-Verlag LNCS 7086, pages 21-36 7-9 December 2011, Kenting, Taiwan.
    Dependent session types allow us to describe not only properties of the I/O behavior of processes but also of the exchanged data. In this paper we show how to exploit dependent session types to express proof-carrying communication. We further introduce two modal operators into the type theory to provide detailed control about how much information is communicated: one based on traditional proof irrelevance and one integrating digital signatures.
  • Henry DeYoung and Carsten Schürmann: Linear Logical Voting Protocols, third International Conference on E-Voting and Identity (VoteID 2011), 28-30 September 2011, Tallinn, Estonia.
    We promote linear logic as a declarative programming language for specifying and implementing voting protocols. We demonstrate this with two voting protocols: single-winner first-past-the-post (SW-FPTP) and proportional representation through the single transferable vote (STV).
  • Yuxin Deng and Matthew Hennessy: On the Semantics of Markov Automata, in Proc. of the 38th International Colloquium on Automata, Languages and Programming — ICALP'11, Zürich, Switzerland, 4-8 July 2011.
    Markov automata describe systems in terms of events which may be nondeterministic, may occur probabilistically, or may be subject to time delays. We define a novel notion of weak bisimulation for such systems and prove that this provides both a sound and complete proof methodology for a natural extensional behavioural equivalence between such systems, a generalisation of reduction barbed congruence, the well-known touchstone equivalence for a large variety of process description languages.
  • Yuxin Deng and Wenjie Du: Logical, Metric, and Algorithmic Characterisations of Probabilistic Bisimulation, Technical report CMU-CS-11-110, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, March 2011.
    Many behavioural equivalences or preorders for probabilistic processes involve a lifting operation that turns a relation on states into a relation on distributions of states. We show that several existing proposals for lifting relations can be reconciled to be different presentations of essentially the same lifting operation. More interestingly, this lifting operation nicely corresponds to the Kantorovich metric, a fundamental concept used in mathematics to lift a metric on states to a metric on distributions of states, besides the fact the lifting operation is related to the maximum flow problem in optimisation theory.
    The lifting operation yields a neat notion of probabilistic bisimulation, for which we provide logical, metric, and algorithmic characterisations. Specifically, we extend the Hennessy-Milner logic and the modal mu-calculus with a new modality, resulting in an adequate and an expressive logic for probabilistic bisimilarity, respectively. The correspondence of the lifting operation and the Kantorovich metric leads to a natural characterisation of bisimulations as pseudometrics which are post-fixed points of a monotone function. We also present an "on the fly" algorithm to check if two states in a finitary system are related by probabilistic bisimilarity, exploiting the close relationship between the lifting operation and the maximum flow problem.
2014
  • Jorge Luis Sacchini: Meta-Reasoning in the Concurrent Logical Framework CLF, Nagoya University, Nagoya, Japan, June 2014.
    The concurrent logical framework CLF is an extension of the logical framework LF designed to specify concurrent and distributed languages. While it can be used to define a variety of formalisms, reasoning about such languages within CLF has proved elusive. In this paper, we propose an extension of LF that allows us to express properties of CLF specifications. We illustrate the approach with a proof of safety for a small language with a parallel semantics.
2013
  • Jorge Luis Sacchini: Meta-Reasoning in the Concurrent Logical Framework CLF, LIX Colloquium 2013 on the Theory and Application of Formal Proofs École Polytechnique, Palaiseau, France. November 2013.
    The Concurrent Logical Framework (CLF) is an extension of the Edinburgh Logical Framework (LF) designed to specify concurrent and distributed systems. While CLF has been used to encode a wide variety of systems, it lacks the expressive power necessary to specify and prove meta-theoretical properties about such systems. In recent work, we proposed an extension of LF, called Meta-CLF, designed to reason about CLF specifications. In this proposed talk, we will discuss the features of Meta-CLF and the remaining challenges.
  • Iliano Cervesato: Meta-Reasoning in a Concurrent Logical Framework, Chalmers University of Technology, Göteborg, Sweden, October 2013
    The concurrent logical framework CLF is an extension of the logical framework LF designed to specify concurrent and distributed languages. While it can be used to define a variety of formalisms, reasoning about such languages within CLF has proved elusive. In this talk, we describe ongoing work towards defining an extension of LF that allows us to express properties of CLF specifications. We illustrate the approach with a proof of safety for a small language with a parallel semantics.
  • Jorge Luis Sacchini: Towards Meta-Reasoning in the Concurrent Logical Framework CLF, Combined 20th International Workshop on Expressiveness in Concurrency and 10th Workshop on Structural Operational Semantics — EXPRESS/SOS'13 (Johannes Borgström and Bas Luttik, editors), Buenos Aires, Argentina, August 2013.
    The concurrent logical framework CLF is an extension of the logical framework LF designed to specify concurrent and distributed languages. While it can be used to define a variety of formalisms, reasoning about such languages within CLF has proved elusive. In this paper, we propose an extension of LF that allows us to express properties of CLF specifications. We illustrate the approach with a proof of safety for a small language with a parallel semantics.
  • Jorge Luis Sacchini: Type-Based Methods for Termination and Productivity in Coq, 5th Coq Workshop — Coq'13, Rennes, France, July 22, 2013.
    Coq is a total functional programming language: recursive functions must be terminating and co-recursive functions must be productive. Systems like Coq and Agda use syntactic methods (called guard predicates in Coq) that ensure termination and productivity by restricting the way (co-)recursive functions are defined. Although guard predicates have been used with great success over the years, they have several theoretical and practical limitations. An alternative approach, called type-based termination, uses types annotated with size information in order to keep track of the size of elements. Type-based techniques have several advantages over their syntactic counterparts. In particular, they are compositional, more expressive, and easier to implement (as shown by prototype implementations). In this talk, we will look at the limitations of the termination and productivity checker implemented in Coq, the advantages of the type-based approach, and discuss the possibility of reimplementing these essential components of the Coq kernel.
  • Jorge Luis Sacchini: Type-Based Productivity of Stream Definitions in the Calculus of Constructions, 28th Annual ACM/IEEE Symposium on Logic In Computer Science — LICS'13 (Orna Kupferman, editor), New Orleans, USA, June 25-28, 2013.
    Productivity of corecursive definitions is an essential property in proof assistants since it ensures logical consistency and decidability of type checking. Type-based mechanisms for ensuring productivity use types annotated with size information to track the number of elements produced in corecursive definitions. In this paper, we propose an extension of the Calculus of Constructions—the theory underlying the Coq proof assistant—with a type-based criterion for ensuring productivity of stream definitions. We prove strong normalization and logical consistency. Furthermore, we define an algorithm for inferring size annotations in types. These results can be easily extended to handle general coinductive types.
  • Beniamino Accattoli: Compressing polarized boxes, 28th Annual ACM/IEEE Symposium on Logic In Computer Science — LICS'13 (Orna Kupferman, editor), New Orleans, USA, June 25-28, 2013.
    The sequential nature of sequent calculus provides a simple definition of cut-elimination rules that duplicate or erase sub-proofs. The parallel nature of proof nets, instead, requires the introduction of explicit boxes, which are global and synchronous constraints on the structure of graphs. We show that logical polarity can be exploited to obtain an implicit, compact, and natural representation of boxes: in an expressive polarized dialect of linear logic, boxes may be represented by simply recording some of the polarity changes occurring in the box at level 0. The content of the box can then be recovered locally and unambiguously. Moreover, implicit boxes are more parallel than explicit boxes, as they realize a larger quotient. We provide a correctness criterion and study the novel and subtle cut-elimination dynamics induced by implicit boxes, proving confluence and strong normalization.
  • Beniamino Accattoli: Linear logic and strong normalization, 24th International Conference on Rewriting Techniques and Applications — RTA'13 (Femke van Raamsdonk, editor), Eindhoven, the Netherlands, June 24-26, 2013.
    Strong normalization for linear logic requires elaborated rewriting techniques. In this paper we give a new presentation of MELL proof nets, without any commutative cut-elimination rule. We show how this feature induces a compact and simple proof of strong normalization, via reducibility candidates. It is the first proof of strong normalization for MELL which does not rely on any form of confluence, and so it smoothly scales up to full linear logic. Moreover, it is an axiomatic proof, as more generally it holds for every set of rewriting rules satisfying three very natural requirements with respect to substitution, commutation with promotion, full composition, and Kesner's IE property. The insight indeed comes from the theory of explicit substitutions, and from looking at the exponentials as a substitution device.
  • Beniamino Accattoli: Evaluating functions as processes, 7th International Workshop on Computing with Terms and Graphs — TERMGRAPH'13 (Rachid Echahed and Detlef Plump, editors), Rome, Italy, March 23, 2013.
    A famous result by Milner is that the λ-calculus can be simulated inside the π-calculus. This simulation, however, holds only modulo strong bisimilarity on processes, i.e. there is a slight mismatch between β-reduction and how it is simulated in the π-calculus. The idea is that evaluating a λ-term in the π-calculus is like running an environment-based abstract machine, rather than applying ordinary β-reduction. In this paper we show that such an abstract-machine evaluation corresponds to linear weak head reduction, a strategy arising from the representation of λ-terms as linear logic proof nets, and that the relation between the two is as tight as it can be. The study is also smoothly rephrased in the call-by-value case, introducing a call-by-value analogous of linear weak head reduction.
  • Beniamino Accattoli: Evaluating functions as processes, Laboratoire d'Informatique, École Polytechnique, Palaiseau, France, May 2013
    A famous result by Milner is that the λ-calculus can be simulated inside the π-calculus. This simulation, however, holds only modulo strong bisimilarity on processes, i.e. there is a slight mismatch between β-reduction and how it is simulated in the π-calculus. The idea is that evaluating a λ-term in the π-calculus is like running an environment-based abstract machine, rather than applying ordinary β-reduction. In this paper we show that such an abstract-machine evaluation corresponds to linear weak head reduction, a strategy arising from the representation of λ-terms as linear logic proof nets, and that the relation between the two is as tight as it can be. The study is also smoothly rephrased in the call-by-value case, introducing a call-by-value analogous of linear weak head reduction.
2012
  • Jorge Luis Sacchini: Trace Matching in a Concurrent Logical Framework, 7th International Workshop on Logical Frameworks and Meta-languages: Theory and Practice — LFMTP'12 (Adam Chlipala and Carsten Schürmann, editors), Copenhagen, Denmark, 9 September 2012.
    Matching and unification play an important role in implementations of proof assistants, logical frameworks, and logic programming languages. In particular, matching is at the heart of many reasoning tasks and underlies the operational semantic for well-moded logic programs. In this paper, we study the problem of matching on concurrent traces in the CLF logical framework, an extension of LF that supports the specification of concurrent and distributed systems. A concurrent trace is a sequence of computations where independent steps can be permuted. We give a sound and complete algorithm for matching traces with one variable standing for an unknown subtrace. Extending the result to general traces and to unification is left to future work.
  • Iliano Cervesato: An Improved Proof-Theoretic Compilation of Logic Programs, 28th International Conference on Logic Programming — ICLP'12 (Agostino Dovier and Vítor Santos Costa, editors), Budapest, Hungary, 8 September 2012.
    In prior work, we showed that logic programming compilation can be given a proof-theoretic justification for generic abstract logic programming languages, and demonstrated this technique in the case of hereditary Harrop formulas and their linear variant. Compiled clauses were themselves logic formulas except for the presence of a second-order abstraction over the atomic goals matching their head. In this paper, we revisit our previous results into a more detailed and fully logical justification that does away with this spurious abstraction. We then refine the resulting technique to support well-moded programs efficiently.
  • Jorge Luis Sacchini: On Matching Concurrent Traces, 26th International Workshop on Unification — UNIF'12 (Santiago Escobar, Konstantin Korovin and Vladimir Rybakov, editors), Manchester, UK, 1 July 2012.
    Concurrent traces are sequences of computational steps where independent steps can be permuted and executed in any order. We study the problem of matching on concurrent traces. We outline a sound and complete algorithm for matching traces with one variable standing for an unknown subtrace.
  • Iliano Cervesato: Relating Reasoning Methodologies in Linear Logic and Process Algebra, Second International Workshop on Linearity — LINEARITY'12 (Sandra Alves and Ian Mackie, editors), Tallinn, Estonia, 1 April 2012.
    We show that the proof-theoretic notion of logical preorder coincides with the process-theoretic notion of contextual preorder for a CCS-like calculus obtained from the formula-as-process interpretation of a fragment of linear logic. The argument makes use of other standard notions in process algebra, namely a labeled transition system and a coinductively defined simulation relation. This result establishes a connection between an approach to reason about process specifications and a method to reason about logic specifications.

Related Work

AltStyle によって変換されたページ (->オリジナル) /