Dan Frumin’s research while affiliated with University of Groningen and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (21)


Figure 1 Translations between CLL and ILL
Around Classical and Intuitionistic Linear Processes
  • Preprint
  • File available

July 2024

·

5 Reads

Juan C. Jaramillo

·

Dan Frumin

·

Jorge A. Pérez

Curry-Howard correspondences between Linear Logic (LL) and session types provide a firm foundation for concurrent processes. As the correspondences hold for intuitionistic and classic versions of LL (ILL and CLL), we obtain two different families of type systems for concurrency. An open question remains: how do these two families exactly relate to each other? Based upon a translation from CLL to ILL due to Laurent (2018), we provide two complementary answers, in the form of full abstraction results based on a typed observational equivalence due to Atkey (2017). Our results elucidate hitherto missing formal links between seemingly related yet different type systems for concurrency.

Download

Modular Denotational Semantics for Effects with Guarded Interaction Trees

January 2024

·

3 Reads

·

4 Citations

Proceedings of the ACM on Programming Languages

We present guarded interaction trees — a structure and a fully formalized framework for representing higher-order computations with higher-order effects in Coq, inspired by domain theory and the recently proposed interaction trees. We also present an accompanying separation logic for reasoning about guarded interaction trees. To demonstrate that guarded interaction trees provide a convenient domain for interpreting higher-order languages with effects, we define an interpretation of a PCF-like language with effects and show that this interpretation is sound and computationally adequate; we prove the latter using a logical relation defined using the separation logic. Guarded interaction trees also allow us to combine different effects and reason about them modularly. To illustrate this point, we give a modular proof of type soundness of cross-language interactions for safe interoperability of different higher-order languages with different effects. All results in the paper are formalized in Coq using the Iris logic over guarded type theory.


The Interval Domain in Homotopy Type Theory

January 2024

Even though the real numbers are the cornerstone of many fields in mathematics, it is challenging to formalize them in a constructive setting, and in particular, homotopy type theory. Several approaches have been established to define the real numbers, and the most prominent of them are based on Dedekind cuts and on Cauchy sequences. In this paper, we study a different approach towards defining the real numbers. Our approach is based on domain theory, and in particular, the interval domain, and we build forth on recent work on domain theory in univalent foundations. All the results in this paper have been formalized in Coq as part of the UniMath library.


Modular Denotational Semantics for Effects with Guarded Interaction Trees

July 2023

·

6 Reads

We present guarded interaction trees -- a structure and a fully formalized framework for representing higher-order computations with higher-order effects in Coq, inspired by domain theory and the recently proposed interaction trees. We also present an accompanying separation logic for reasoning about guarded interaction trees. To demonstrate that guarded interaction trees provide a convenient domain for interpreting higher-order languages with effects, we define an interpretation of a PCF-like language with effects and show that this interpretation is sound and computationally adequate; we prove the latter using a logical relation defined using the separation logic. Guarded interaction trees also allow us to combine different effects and reason about them modularly. To illustrate this point, we give a modular proof of type soundness of cross-language interactions for safe interoperability of different higher-order languages with different effects. All results in the paper are formalized in Coq using the Iris logic over guarded type theory.


Figure 1: The process decomposition, illustrated. Arrows in magenta indicate synchronizations orchestrated by the decomposition D(P ).
Figure 3: Typing Rules for HO.
Figure 6: Decomposing session types into minimal session types (Definition 3.3)
Figure 8: Our monadic decomposition function D(−), illustrated. As in Figure 4, nodes represent process states, '' represents parallel composition of processes, black arrows stand for actions, and red arrows indicate synchronizations that preserve the sequentiality of the source process; also, blue arrows indicates synchronizations that propagate (bound) values.
Figure 10: Typing rules for selection and branching.
A Minimal Formulation of Session Types

January 2023

·

55 Reads

Session types are a type-based approach to the verification of message-passing programs. They specify communication structures essential for program correctness; a session type says what and when should be exchanged through a channel. Central to session-typed languages are sequencing constructs in types and processes that explicitly specify the order of actions in a protocol. In this paper we study session types without sequencing. The resulting framework of minimal session types is arguably the simplest form of session types one could conceive. In the context of a core process calculus with sessions and higher-order concurrency (abstraction-passing), we establish two main technical results. First, we prove that every process P typable with standard session types can be compiled down into a process D(P)\mathcal{D}(P) typable with minimal session types. Second, we prove that P and D(P)\mathcal{D}(P) are behaviorally equivalent. These results indicate that having sequencing constructs in processes and session types is convenient but redundant: only sequentiality in processes is truly indispensable, as it can correctly codify sequentiality in types. Our developments draw inspiration from work by Parrow on behavior-preserving decompositions of untyped processes. By casting Parrow's results in the realm of typed processes, our developments reveal a conceptually simple formulation of session types and a principled avenue to the integration of session types into programming languages without sequencing in types.


A bunch of sessions: a propositions-as-sessions interpretation of bunched implications in channel-based concurrency

October 2022

·

3 Reads

·

5 Citations

Proceedings of the ACM on Programming Languages

The emergence of propositions-as-sessions, a Curry-Howard correspondence between propositions of Linear Logic and session types for concurrent processes, has settled the logical foundations of message-passing concurrency. Central to this approach is the resource consumption paradigm heralded by Linear Logic. In this paper, we investigate a new point in the design space of session type systems for message-passing concurrent programs. We identify O’Hearn and Pym’s Logic of Bunched Implications (BI) as a fruitful basis for an interpretation of the logic as a concurrent programming language. This leads to a treatment of non-linear resources that is radically different from existing approaches based on Linear Logic. We introduce a new π-calculus with sessions, called πBI; its most salient feature is a construct called spawn, which expresses new forms of sharing that are induced by structural principles in BI. We illustrate the expressiveness of πBI and lay out its fundamental theory: type preservation, deadlock-freedom, and weak normalization results for well-typed processes; an operationally sound and complete typed encoding of an affine λ-calculus; and a non-interference result for access of resources.


A Bunch of Sessions: A Propositions-as-Sessions Interpretation of Bunched Implications in Channel-Based Concurrency

September 2022

·

17 Reads

The emergence of propositions-as-sessions, a Curry-Howard correspondence between propositions of Linear Logic and session types for concurrent processes, has settled the logical foundations of message-passing concurrency. Central to this approach is the resource consumption paradigm heralded by Linear Logic. In this paper, we investigate a new point in the design space of session type systems for message-passing concurrent programs. We identify O'Hearn and Pym's Logic of Bunched Implications (BI) as a fruitful basis for an interpretation of the logic as a concurrent programming language. This leads to a treatment of non-linear resources that is radically different from existing approaches based on Linear Logic. We introduce a new π{\pi}-calculus with sessions, called π{\pi}BI; its most salient feature is a construct called spawn, which expresses new forms of sharing that are induced by structural principles in BI. We illustrate the expressiveness of π{\pi}BI and lay out its fundamental theory: type preservation, deadlock-freedom, and weak normalization results for well-typed processes; an operationally sound and complete typed encoding of an affine λ{\lambda}-calculus; and a non-interference result for access of resources.


Semantic Cut Elimination for the Logic of Bunched Implications and Structural Extensions, Formalized in Coq

July 2022

·

6 Reads

The logic of bunched implications (BI) is a substructural logic that forms the backbone of separation logic, the much studied logic for reasoning about heap-manipulating programs.Although the proof theory and metatheory of BI are mathematically involved, the formalization of important metatheoretical results is still incipient.In this paper we present a self-contained formalized, in the Coq proof assistant, proof of a central metatheoretical property of BI: cut elimination for its sequent calculus, as well the extension of cut elimination to sequent calculus with arbitrary structural rules. The presented proof is semantic, in the sense that is obtained by interpreting sequents in a particular ``universal'' model.This results in a more modular and elegant proof than a standard Gentzen-style cut elimination argument, which can be subtle and error-prone in manual proofs for BI.In particular, our semantic approach avoids unnecessary inversions on proof derivations, or the uses of cut reductions and the multi-cut rule. Our prof is modular and also robust. We demonstrate how our method scales to (i) all extensions of BI with arbitrary structural rules, and (ii) an extension with an S4-like ▯ modality.


Bicategories in univalent foundations

March 2022

·

18 Reads

·

8 Citations

Mathematical Structures in Computer Science

Benedikt Ahrens

·

Dan Frumin

·

Marco Maggesi

·

[...]

·

We develop bicategory theory in univalent foundations. Guided by the notion of univalence for (1-)categories studied by Ahrens, Kapulkin, and Shulman, we define and study univalent bicategories. To construct examples of univalent bicategories in a modular fashion, we develop displayed bicategories , an analog of displayed 1-categories introduced by Ahrens and Lumsdaine. We demonstrate the applicability of this notion and prove that several bicategories of interest are univalent. Among these are the bicategory of univalent categories with families and the bicategory of pseudofunctors between univalent bicategories. Furthermore, we show that every bicategory with univalent hom-categories is weakly equivalent to a univalent bicategory. All of our work is formalized in Coq as part of the UniMath library of univalent mathematics.



Citations (11)


... The generality of our techniques should allow for many of the constructions to be reused across different languages. For instance, the free error domain construction can be easily extended to model effects besides error and stepping [13,35]. We also aim to complete our Agda formalization and evolve it into a reusable framework for mechanized denotational semantics of gradually-typed languages. ...

Reference:

Denotational Semantics of Gradual Typing using Synthetic Guarded Domain Theory (Extended Version)
Modular Denotational Semantics for Effects with Guarded Interaction Trees
  • Citing Article
  • January 2024

Proceedings of the ACM on Programming Languages

... Session calculi are motivating novel programming language design, bringing up new insights on typeful programming [18] with linear and behavioral types, e.g., [24,61,20,5]. Most systems of typed session calculi have been formulated in process algebraic form [31,33,28], or on top of concurrent λ-calculi with an extra layer of communication channels (e.g., [29]), logically inspired systems such as the those discussed in this paper (e.g., [13,15,72,23,39,59,27,61]) are defined by a logical proof / type system where proof rules are seen as witnesses for the typing of process terms, proofs are read as processes, structural equivalence is proof conversion and computation corresponds to cut reduction. These formulations provide a fundamental semantic foundation to study the model's expressiveness and meta-theory, but of course do not directly support the concrete implementation of programming languages based on them. ...

A bunch of sessions: a propositions-as-sessions interpretation of bunched implications in channel-based concurrency
  • Citing Article
  • October 2022

Proceedings of the ACM on Programming Languages

... We build upon an existing library of (bi)category theory by Ahrens et al. (2015Ahrens et al. ( , 2021 and use heavily the displayed machinery, developed for 1-categories by Ahrens and Lumsdaine (2019) and extended to bicategories by Ahrens et al. (2021). In particular, the formalized notions of cloven Grothendieck fibration we are using (in the 1-categorical case) and developing (in the bicategorical case) are based on displayed (bi)categories; we can thus discuss these notions without postulating equality of objects. ...

Bicategories in univalent foundations

Mathematical Structures in Computer Science

... There has been a great deal of work on linearizability verification [13][14][15][16][17][18][19][20][21][22][23][24][25][26][27]. Mainly, there are four kinds of verification techniques: refinement-based techniques, simulation-based techniques, reduction-based techniques, program-logic-based techniques. ...

Mechanized verification of a fine-grained concurrent queue from meta’s folly library
  • Citing Conference Paper
  • January 2022

... Methods for proving that programs are not just functionally correct, but also maintain confidential information securely, have been applied to realistic software like operating system kernels [29,59], encompassing features like concurrency [46,60] and pointers [28,39]. These methods have also been embodied in auto-active program verification tools like SecC [37] and a variant of Viper [35,58]. ...

Compositional Non-Interference for Fine-Grained Concurrent Programs
  • Citing Conference Paper
  • May 2021

... Tassarotti, Jung and Harper [2017] use (a linear variant of) Iris to prove the correctness of a program transformation that implements communication channels using shared references. See the related work of ReLoC Reloaded [Frumin, Krebbers and Birkedal 2021]. ...

ReLoC Reloaded: A Mechanized Relational Logic for Fine-Grained Concurrency and Logical Atomicity

Logical Methods in Computer Science

... Among many other things, they have two more proofs of Theorem 12 formalized. Various HITs for representing finite multisets have also been considered in HoTT/UF (Angiuli et al. 2021;Basold et al. 2017;Choudhury and Fiore 2019;Frumin et al. 2018;Joram and Veltri 2023;Veltri 2021); however, these are of course not sufficient to model full type theory. ...

Finite sets in homotopy type theory
  • Citing Conference Paper
  • January 2018