scispace - formally typeset
Search or ask a question

Showing papers by "Luís Caires published in 2014"


Journal ArticleDOI
TL;DR: It is proved that all proof conversions induced by the logic interpretation actually express observational equivalences, and how type isomorphisms resulting from linear logic equivalences are realized by coercions between interface types of session-based concurrent systems are explained.
Abstract: We investigate strong normalization, confluence, and behavioral equality in the realm of session-based concurrency These interrelated issues underpin advanced correctness analysis in models of structured communications The starting point for our study is an interpretation of linear logic propositions as session types for communicating processes, proposed in prior work Strong normalization and confluence are established by developing a theory of logical relations Defined upon a linear type structure, our logical relations remain remarkably similar to those for functional languages We also introduce a natural notion of observational equivalence for session-typed processes Strong normalization and confluence come in handy in the associated coinductive reasoning: as applications, we prove that all proof conversions induced by the logic interpretation actually express observational equivalences, and explain how type isomorphisms resulting from linear logic equivalences are realized by coercions between interface types of session-based concurrent systems

61 citations


Book ChapterDOI
05 Sep 2014
TL;DR: This paper addresses the challenge of ensuring non-divergence in a session-typed \(\pi \)-calculus with general (co)recursion, while still allowing interesting infinite behaviors to be definable, and proves type safety for the framework, implying protocol compliance and global progress of well-typing processes.
Abstract: Session types are widely accepted as an expressive discipline for structuring communications in concurrent and distributed systems. In order to express infinitely unbounded sessions, session typed languages often include general recursion which may introduce undesirable divergence, e.g., infinite unobservable reduction sequences. In this paper we address, by means of typing, the challenge of ensuring non-divergence in a session-typed \(\pi \)-calculus with general (co)recursion, while still allowing interesting infinite behaviors to be definable. Our approach builds on a Curry-Howard correspondence between our type system and linear logic extended with co-inductive types, for which our non-divergence property implies consistency. We prove type safety for our framework, implying protocol compliance and global progress of well-typed processes. We also establish, using a logical relation argument, that well-typed processes are compositionally non-divergent, that is, that no well-typed composition of processes, including those dynamically assembled via name passing, can result in divergent behavior.

26 citations


Book ChapterDOI
01 Aug 2014
TL;DR: This work presents a substructural type system outfitted with a novel lightweight interference control mechanism, rely-guarantee protocols, that enables controlled aliasing of shared resources that ensures that challenging uses of shared state will never interfere in an unsafe fashion.
Abstract: The use of shared mutable state, commonly seen in object-oriented systems, is often problematic due to the potential conflicting interactions between aliases to the same state. We present a substructural type system outfitted with a novel lightweight interference control mechanism, rely-guarantee protocols, that enables controlled aliasing of shared resources. By assigning each alias separate roles, encoded in a novel protocol abstraction in the spirit of rely-guarantee reasoning, our type system ensures that challenging uses of shared state will never interfere in an unsafe fashion. In particular, rely-guarantee protocols ensure that each alias will never observe an unexpected value, or type, when inspecting shared memory regardless of how the changes to that shared state originating from potentially unknown program contexts are interleaved at run-time.

13 citations


Proceedings ArticleDOI
11 Jan 2014
TL;DR: This paper shows how key typestate concepts can be precisely captured by a substructural type-and-effect system, exploiting ideas from linear and separation logic and provides new insights on how they naturally fit together and complement one another.
Abstract: Finding simple, yet expressive, verification techniques to reason about both aliasing and mutable state has been a major challenge for static program verification. One such approach, of practical relevance, is centered around a lightweight typing discipline where types denote abstract object states, known as typestates.In this paper, we show how key typestate concepts can be precisely captured by a substructural type-and-effect system, exploiting ideas from linear and separation logic. Building on this foundation, we show how a small set of primitive concepts can be composed to express high-level idioms such as objects with multiple independent state dimensions, dynamic state tests, and behavior-oriented usage protocols that enforce strong information hiding. By exploring the relationship between two mainstream modularity concepts, state abstraction and hiding, we also provide new insights on how they naturally fit together and complement one another.Technically, our results are based on a typed lambda calculus with mutable references, location-dependent types, and second-order polymorphism. The soundness of our type system is shown through progress and preservation theorems. We also describe a prototype implementation of a type checker for our system, which is available on the web and can be used to experiment with the examples in the paper.

9 citations


Posted Content
TL;DR: It is shown that the analysis of multiparty protocols can also be developed within a much simpler type theory for binary protocols, ensuring protocol fidelity and deadlock-freedom.
Abstract: Relating the specification of the global communication behavior of a distributed system and the specifications of the local communication behavior of each of its nodes/peers (e.g., to check if the former is realizable by the latter under some safety and/or liveness conditions) is a challenging problem addressed in many relevant scenarios. In the context of networked software services, a widespread programming language-based approach relies on global specifications defined by session types or behavioral contracts. Static type checking can then be used to ensure that components follow the prescribed interaction protocols. In the case of session types, developments have been mostly framed within quite different type theories for either binary (two-party) or multiparty (n-party) protocols. Unfortunately, the precise relationship between analysis techniques for multiparty and binary protocols is yet to be understood. In this work, we bridge this previously open gap in a principled way: we show that the analysis of multiparty protocols can also be developed within a much simpler type theory for binary protocols, ensuring protocol fidelity and deadlock-freedom. We present characterization theorems which provide new insights on the relation between two existing, yet very differently motivated, session type systems---one based on linear logic, the other based on automata theory---and suggest useful type-based verification techniques for multiparty systems relying on reductions to the binary case.

6 citations