Skip to main content

Showing 1–12 of 12 results for author: Toninho, B

.
  1. arXiv:2401.10409  [pdf, ps, other

    cs.PL

    The Session Abstract Machine (Extended Version)

    Authors: Luís Caires, Bernardo Toninho

    Abstract: We build on a fine-grained analysis of session-based interaction as provided by the linear logic ty** disciplines to introduce the SAM, an abstract machine for mechanically executing session-typed processes. A remarkable feature of the SAM's design is its ability to naturally segregate and coordinate sequential with concurrent session behaviours. In particular, implicitly sequential parts of ses… ▽ More

    Submitted 18 January, 2024; originally announced January 2024.

    Comments: Extended Version of ESOP paper

  2. arXiv:2205.06921   

    cs.PL

    Ferrite: A Judgmental Embedding of Session Types in Rust

    Authors: Ruo Fei Chen, Stephanie Balzer, Bernardo Toninho

    Abstract: \emph{Session types} have proved viable in expressing and verifying the protocols of message-passing systems. While message passing is a dominant concurrency paradigm in practice, real world software is written without session types. A limitation of existing session type libraries in mainstream languages is their restriction to linear session types, precluding application scenarios that demand sha… ▽ More

    Submitted 31 May, 2022; v1 submitted 13 May, 2022; originally announced May 2022.

    Comments: Accidental duplication of arXiv:2009.13619

  3. arXiv:2009.13619  [pdf, other

    cs.PL

    Ferrite: A Judgmental Embedding of Session Types in Rust

    Authors: Ruofei Chen, Stephanie Balzer, Bernardo Toninho

    Abstract: This paper introduces Ferrite, a shallow embedding of session types in Rust. In contrast to existing session type libraries and embeddings for mainstream languages, Ferrite not only supports linear session types but also shared session types. Shared session types allow sharing (aliasing) of channels while preserving session fidelity (preservation) using type modalities for acquiring and releasing… ▽ More

    Submitted 31 May, 2022; v1 submitted 28 September, 2020; originally announced September 2020.

  4. arXiv:2005.11710  [pdf, ps, other

    cs.PL cs.LO

    Featherweight Go

    Authors: Robert Griesemer, Raymond Hu, Wen Kokke, Julien Lange, Ian Lance Taylor, Bernardo Toninho, Philip Wadler, Nobuko Yoshida

    Abstract: We describe a design for generics in Go inspired by previous work on Featherweight Java by Igarashi, Pierce, and Wadler. Whereas subty** in Java is nominal, in Go it is structural, and whereas generics in Java are defined via erasure, in Go we use monomorphisation. Although monomorphisation is widely used, we are one of the first to formalise it. Our design also supports a solution to The Expres… ▽ More

    Submitted 19 October, 2020; v1 submitted 24 May, 2020; originally announced May 2020.

    Comments: Full version

  5. arXiv:1908.00441  [pdf, ps, other

    cs.PL

    Refinement Kinds: Type-safe Programming with Practical Type-level Computation (Extended Version)

    Authors: Luís Caires, Bernardo Toninho

    Abstract: This work introduces the novel concept of kind refinement, which we develop in the context of an explicitly polymorphic ML-like language with type-level computation. Just as type refinements embed rich specifications by means of comprehension principles expressed by predicates over values in the type domain, kind refinements provide rich kind specifications by means of predicates over types in the… ▽ More

    Submitted 1 August, 2019; originally announced August 2019.

    Comments: Extended version with appendix

  6. arXiv:1907.01318  [pdf, other

    cs.LO

    Domain-Aware Session Types (Extended Version)

    Authors: Luís Caires, Jorge A. Pérez, Frank Pfenning, Bernardo Toninho

    Abstract: We develop a generalization of existing Curry-Howard interpretations of (binary) session types by relying on an extension of linear logic with features from hybrid logic, in particular modal worlds that indicate domains. These worlds govern domain migration, subject to a parametric accessibility relation familiar from the Kripke semantics of modal logic. The result is an expressive new typed proce… ▽ More

    Submitted 2 July, 2019; originally announced July 2019.

    Comments: Extended version of a CONCUR 2019 paper

    ACM Class: D.3.1; F.3.2

  7. arXiv:1801.08114  [pdf, ps, other

    cs.PL

    Depending on Session-Typed Processes

    Authors: Bernardo Toninho, Nobuko Yoshida

    Abstract: This work proposes a dependent type theory that combines functions and session-typed processes (with value dependencies) through a contextual monad, internalising typed processes in a dependently-typed lambda-calculus. The proposed framework, by allowing session processes to depend on functions and vice-versa, enables us to specify and statically verify protocols where the choice of the next commu… ▽ More

    Submitted 24 January, 2018; originally announced January 2018.

    Comments: Extended version

  8. arXiv:1711.00878  [pdf, ps, other

    cs.LO cs.PL

    On Polymorphic Sessions and Functions: A Tale of Two (Fully Abstract) Encodings

    Authors: Bernardo Toninho, Nobuko Yoshida

    Abstract: This work exploits the logical foundation of session types to determine what kind of type discipline for the pi-calculus can exactly capture, and is captured by, lambda-calculus behaviours. Leveraging the proof theoretic content of the soundness and completeness of sequent calculus and natural deduction presentations of linear logic, we develop the first mutually inverse and fully abstract process… ▽ More

    Submitted 25 January, 2018; v1 submitted 2 November, 2017; originally announced November 2017.

    Comments: Extended version of ESOP'18 paper (includes appendix with proofs and additional definitions)

  9. arXiv:1610.08843  [pdf, other

    cs.PL cs.LO

    Fencing off Go: Liveness and Safety for Channel-based Programming (extended version)

    Authors: Julien Lange, Nicholas Ng, Bernardo Toninho, Nobuko Yoshida

    Abstract: Go is a production-level statically typed programming language whose design features explicit message-passing primitives and lightweight threads, enabling (and encouraging) programmers to develop concurrent systems where components interact through communication more so than by lock-based shared memory concurrency. Go can only detect global deadlocks at runtime, but provides no compile-time protec… ▽ More

    Submitted 28 February, 2017; v1 submitted 27 October, 2016; originally announced October 2016.

  10. Combining behavioural types with security analysis

    Authors: Massimo Bartoletti, Ilaria Castellani, Pierre-Malo Deniélou, Mariangiola Dezani-Ciancaglini, Silvia Ghilezan, Jovanka Pantovic, Jorge A. Pérez, Peter Thiemann, Bernardo Toninho, Hugo Torres Vieira

    Abstract: Today's software systems are highly distributed and interconnected, and they increasingly rely on communication to achieve their goals; due to their societal importance, security and trustworthiness are crucial aspects for the correctness of these systems. Behavioural types, which extend data types by describing also the structured behaviour of programs, are a widely studied approach to the enforc… ▽ More

    Submitted 8 October, 2015; originally announced October 2015.

    Journal ref: Journal of Logical and Algebraic Methods in Programming, Elsevier, 2015, pp.18

  11. arXiv:1205.6402  [pdf, other

    cs.LO cs.PL

    Constructive Provability Logic

    Authors: Robert J. Simmons, Bernardo Toninho

    Abstract: We present constructive provability logic, an intuitionstic modal logic that validates the Löb rule of Gödel and Löb's provability logic by permitting logical reflection over provability. Two distinct variants of this logic, CPL and CPL*, are presented in natural deduction and sequent calculus forms which are then shown to be equivalent. In addition, we discuss the use of constructive provability… ▽ More

    Submitted 29 May, 2012; originally announced May 2012.

    Comments: Extended version of IMLA 2011 submission of the same title

    MSC Class: 03F05; 03B45; 03F45 ACM Class: F.4.1; I.2.3

  12. A Spatial-Epistemic Logic for Reasoning about Security Protocols

    Authors: Bernardo Toninho, Luís Caires

    Abstract: Reasoning about security properties involves reasoning about where the information of a system is located, and how it evolves over time. While most security analysis techniques need to cope with some notions of information locality and knowledge propagation, usually they do not provide a general language for expressing arbitrary properties involving local knowledge and knowledge transfer. Buildin… ▽ More

    Submitted 27 February, 2011; originally announced February 2011.

    Comments: In Proceedings SecCo 2010, arXiv:1102.5161

    Journal ref: EPTCS 51, 2011, pp. 1-15