On Urgency in Asynchronous Timed Session Types
我们研究了异步定时会话类型的紧急语义,其中输入动作尽快发生。我们表明,这种语义,我们可以恢复到定时设置一个有吸引力的属性不定时的会话类型:即,死锁自由时,保持从同步到异步通信。
2018-10-05 cs.LO
Session Types for Link Failures (Technical Report)
我们努力使用会话类型技术来证明容错分布式算法的行为特性。会话类型被设计为抽象地捕获(甚至多方)通信协议的结构。会话类型的目标是分析和验证协议的行为属性。一个重要的属性是进步,即,没有(意外的)死锁。分布式算法通常类似于多方通信协议(的组合)。与通常研究会话类型的协议相反,它们通常被设计为应对系统故障。一个基本的行为属性是(成功)终止,尽管失败,但它往往是精心证明分布式算法。我们通过可选块扩展了多方会话类型(以及具有嵌套会话的多方会话类型),这些可选块覆盖了有限的链接和崩溃故障类。这使我们能够自动推导出在这些限制范围内的分布式算法的终止。为了说明我们的方法,我们证明终止的 * 旋转协调 * 共识算法的实施。
2017-05-04 cs.LO
Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols
组合方法是软件系统开发和验证的核心。它们允许将大型系统分解为较小的组件,同时支持对组合系统的行为进行推理。对于并发和通信系统,基于行为类型系统的组合技术受到了广泛的关注。通过将通信协议抽象为类型,这些类型系统可以静态地检查程序是否根据某个协议与通道交互,以及预期的消息是否以某个顺序交换。在本文中,我们把我们的coalgebraic眼镜调查会话类型,一类广泛研究的行为类型系统。我们提供了一个无语法的描述会话为基础的并发状态的余代数。其结果是,我们重新发现类型等价,对偶,和子类型的关系,在规范的共归纳介绍。反过来,这coinductive介绍,使人们有可能优雅地得出一个可判定的类型系统与子类型的$π$演算过程,其中的状态的一个coalgebra将作为信道协议。走一圈,我们展示了一个现有的会话类型系统的余代数结构,并表明,从我们的余代数的角度来看,关系和类型系统与现有的。
2020-11-11 cs.LO
Characteristic Formulae for Session Types (extended version)
子类型是会话类型论及其应用的关键组成部分,特别是在程序设计语言实现中。在本文中,我们研究了有效的方法来检查是否一个会话类型是另一个的子类型,通过应用特征公式的方法来解决这个问题。我们的核心贡献是一个算法来生成一个模态μ演算公式,该公式描述了给定类型的所有超类型(或子类型)。然后,子类型检查可以卸载到模型检查器,从而附带地产生一个有效的算法来检查会话类型的安全性,可靠而完整。我们已经实现了我们的理论,并比较其成本与其他经典的子类型算法。
2015-10-23 cs.LO
Open Multiparty Sessions
多方会话是并发进程的系统,它允许多个参与者通过发送和接收消息进行通信。它们的整体行为可以通过全局类型来描述。可键入的多方会话享受锁自由。我们把多方会话看作是一个开放系统,通过一个合适的连接定义将兼容的进程转换为网关(转发器)。类似于会话类型的标准子类型关系的关系用于形式化兼容性。我们表明,通过连接获得的会话可以通过操纵启动会话的全局类型进行类型化。这使我们能够证明锁自由被连接保持。
2019-09-12 cs.LO
Linearly Refined Session Types
在并发编程中,会话类型捕获精确的协议结构,但不指定交换值的基本类型之外的属性。细化类型是一种依赖类型,可以解决这种限制,将类型与可能引用程序值的逻辑公式组合,并可以使用任意谓词约束类型。我们提出了一个PI演算的假设和断言操作,使用会话的纪律,结合细化公式写在一个片段的乘法线性逻辑。我们原来的会话和细化类型的组合,以及良好的线性的好处,允许非常细粒度的通信协议规范,其中细化公式被视为逻辑资源,而不是持久的真理。
2012-11-17 cs.LO
Session Types for Orchestrated Interactions
在设置的π演算与二进制会话,我们的目标是放松的概念,会话类型的对偶性的概念,可伸缩的遵守合同理论。这导致使用“推测选择”的新类型操作符扩展会话类型,包括不一定由兼容伙伴提供的选择。我们解决的问题,选择成功的通信分支机构的操作语义的基础上orchestration,这已被证明是等同于合同的可伸缩语义,但显然更可行。因此,提供了一种类型系统,相对于这样的语义是合理的。
2017-11-30 cs.LO
On Asynchronous Multiparty Session Types for Federated Learning
Faculty of Technical Sciences, University of Novi Sad(诺维萨德大学技术科学学院);Mathematical Institute of the Serbian Academy of Sciences and Arts(塞尔维亚科学院数学研究所);Technical University of Denmark(丹麦技术大学);University of Oxford(牛津大学)
本文改进了会话类型理论,以支持建模和验证实现联邦学习协议的过程。通过引入面向多个参与者的输入/输出操作,增强了灵活性并允许安全的过程替换。
2026-03-26 cs.LO
Event structure semantics for multiparty sessions
我们提出了一个多方会话的解释为“流事件结构”,它允许在一个会话内的通信之间的并发被明确表示。我们表明,这种解释是等价的,当多方会话可以描述的全球类型,全球类型的“总理事件结构”的解释。
2022-05-17 cs.LO
Formally Verified Liveness with Multiparty Session Types in Rocq
University of Edinburgh(爱丁堡大学);University of Oxford(牛津大学);School of Computer Science and Engineering, University of New South Wales(新南威尔士大学计算机科学与工程学)
本文在Rocq证明助手中首次机械化证明了同步多方会话类型的活性,利用共归纳树和子类型关系建立局部类型与全局类型的操作对应,从而保证会话的安全性和活性。
2026-05-22 cs.LO
Using higher-order contracts to model session types
会话类型用于描述和构造分布式系统中独立进程之间的交互。为了正确地构造进程之间的责任委托,需要更高阶的类型。在本文中,我们表明,高阶Web服务合同可以用来提供一个完全抽象的递归高阶会话类型的模型。该模型是集合论的,在这个意义上,一个合同的意义是根据它所遵守的一组合同来给出的。完全抽象的证明依赖于一个新的契约补集的概念。这反过来又产生了一个替代的类型二重性通常用于系统中的类型检查会话类型。我们相信,补语的概念更忠实地抓住了类型二元性背后的行为直觉。
2016-06-28 cs.LO
Asynchronous Multiparty Sessions with Mixed Choice
Università di Catania(卡塔尼亚大学);Università di Torino(都灵大学)
本文提出一种异步多方会话的校验算法,支持输入和输出前缀的非确定性选择,通过全局类型系统确保通信标签集的连贯性,证明了类型正确性和会话保真性,展示了混合选择在异步多方协议中的表达力。
2026-04-08 cs.LO
Partial Typing for Asynchronous Multiparty Sessions
本文针对并发系统验证难以局部化的问题,提出异步多方会话的部分类型指派系统,并证明其可类型性保证部分锁自由与孤儿消息自由。
2024-10-01 cs.LO
Parameterised Multiparty Session Types
对于许多应用级分布式协议和并行算法,参与者的集合、消息的数量或交互结构仅在运行时才知道。本文提出了一个多方会话的依赖类型论,它可以静态地保证类型安全的,无死锁的多方进程之间的互动,其规格由索引参数化。我们使用哥德尔系统T中的原始递归运算符来表达广泛的通信模式,同时保持类型检查的可判定性。为了对单个分布式进程进行类型化,将参数化的全局类型投影到表示所有可能的端点类型的类的通用生成器上。我们证明了终止的类型检查算法在整个系统与多方会话类型和递归类型。我们说明了我们的类型论通过非平凡的编程和验证的例子,从并行算法和Web服务用例。
2012-10-10 cs.LO
Asynchronous Functional Sessions: Cyclic and Concurrent (Extended Version)
我们提出了并发GV(CGV),一个函数演算与消息传递的并发会话类型。相对于以前的演算,CGV增加了对并发计算和循环网络拓扑的支持。CGV的设计借鉴了APCP,一个会话类型的异步π演算在以前的工作。技术贡献是(i)CGV的语法,语义和类型系统;(ii)CGV到APCP的正确翻译;(iii)通过诉诸APCP的基于优先级的类型系统,建立无死锁CGV程序的技术。
2022-09-19 cs.LO
Asynchronous Functional Sessions: Cyclic and Concurrent
我们提出了并发GV(CGV),一个函数演算与消息传递的并发会话类型。相对于以前的演算,CGV增加了对并发计算和循环网络拓扑的支持。CGV的设计借鉴了APCP,一个会话类型的异步π演算在以前的工作。技术贡献是(i)CGV的语法,语义和类型系统;(ii)CGV到APCP的正确翻译;(iii)通过诉诸APCP的基于优先级的类型系统,建立无死锁CGV程序的技术。
2022-09-06 cs.LO
FTMPST: Fault-Tolerant Multiparty Session Types
本文扩展多方会话类型以集成容错机制,应对不可靠通信和进程崩溃等系统故障,并通过故障模式增强进程语义,成功应用于分析Chandra和Toueg的旋转协调器算法变体。
2023-11-24 cs.LO
Comparing Session Type Systems derived from Linear Logic
本文严格比较了由线性逻辑的经典与直觉主义表述派生出的并发会话类型系统,开发了涵盖两者的 $π\mathsf{ULL}$ 系统作为参考框架,并基于局部性原则和进程组合形式分析了其差异。
2024-08-22 cs.LO
On the Preciseness of Subtyping in Session Types
并发子类型是类型论中最有趣的问题之一,自20世纪90年代以来得到了广泛的研究。子类型关系的正确性通常被认为是类型安全的可靠性。相反的方向,完整性,在很大程度上被忽略了,尽管它的有用性,以定义最大的子类型关系,确保类型安全。本文形式化的精确性(即健全性和完整性)的子类型的移动进程和研究它的同步和异步会话演算。我们首先证明了著名的会话子类型,分支选择子类型,是健全的和完整的同步演算。接下来,我们证明了在异步演算中,这种子类型对于类型安全是不完整的:也就是说,存在会话类型T和S,使得T可以安全地被认为是S的子类型,但是T < S不能由子类型导出。然后,我们提出了一个异步子类型系统,这是健全的和完整的异步演算。该方法给出了一个一般性的指导,以设计严格的通道为基础的子类型尊重所需的安全性能。同步演算和异步演算都是首先考虑线性通道,然后扩展到会话初始化和表达式计算(包括共享通道)。
2017-06-29 cs.LO
Minimal Session Types (Extended Version)
会话类型是验证消息传递程序的一种基于类型的方法。它们已经被作为pi演算和Java等语言的类型系统进行了大量的研究。会话类型指定应通过通道交换什么以及何时交换。会话类型语言的核心是类型和进程中的构造,它们指定协议中的排序。这里我们研究最小会话类型,没有排序的会话类型。这可以说是会话类型的最简单形式。通过依赖于一个核心的进程演算会话和高阶并发(抽象传递),我们证明了每一个进程类型通常(非最小)的会话类型可以编译成一个进程类型与最小的会话类型。这意味着在进程和会话类型中都有顺序结构是多余的;只有进程中的顺序性是必不可少的,因为它可以精确地编码类型中的顺序性。我们的发展从Parrow的工作中汲取灵感,对非类型化过程的行为保持分解。通过铸造Parrow的结果在领域的类型化过程中,我们的结果揭示了一个概念上简单的制定会话类型和一个原则性的途径,会话类型集成到语言中,而无需排序的类型。
2019-06-12 cs.LO cs.PL
Taming Concurrency for Verification Using Multiparty Session Types (Technical Report)
分布式系统中并发通信进程所带来的额外复杂性使得此类系统的验证成为一个非常困难的问题。多方会话类型被开发用于管理分布式系统中的通信和并发。因此,它们提供了一种有效的验证方法w.r.t.关于通信和并发的属性,如通信安全或进度。但是,它们不支持需要考虑具体运行或变量具体值的特性分析。我们sequentialise良好的类型系统的进程的结构,其全球类型的指导下,以获得其相互作用的抽象。如果没有交互,系统中的并发性将减少到顺序和完全独立的并行组合。在这样的抽象中,对诸如例如基于数据的终止之类的属性的验证变得更加有效,这些属性不被多方会话类型覆盖,而是依赖于变量的具体运行或值。
2019-08-18 cs.LO
Domain-Aware Session Types (Extended Version)
我们开发了一个泛化现有的Curry-Howard解释(二进制)会话类型依赖于线性逻辑的扩展与混合逻辑的功能,特别是模态世界,表明域。这些世界支配着域迁移,服从于模态逻辑的Kripke语义中熟悉的参数可访问性关系。其结果是一个富有表现力的新型流程框架,用于域感知、消息传递并发。它的逻辑基础确保良好类型的进程享有会话保真度、全局进展和终止。类型化还确保进程只与可访问域通信,因此尊重可访问性关系。值得注意的是,我们的域感知框架可以指定的情况下,域信息仅在运行时可用,灵活的可访问性关系可以干净地定义和静态执行。作为一个具体的应用,我们引入了域感知的多方会话类型,其中全局协议可以通过域迁移来表示任意嵌套的子协议。我们开发了一个精确的分析,这些多方协议减少到我们的二进制域感知框架:复杂的域感知协议可以推理在正确的抽象层次,也确保了原则性转移的关键正确性属性从二进制到多方设置。
2019-07-02 cs.LO
A Typeful Characterization of Multiparty Structured Conversations Based on Binary Sessions
将分布式系统的全局通信行为的规范与其每个节点/对等体的本地通信行为的规范(例如,检查前者在某些安全和/或活性条件下是否可由后者实现)是在许多相关场景中解决的具有挑战性的问题。在网络化软件服务的上下文中,广泛使用的基于程序设计语言的方法依赖于由会话类型或行为契约定义的全局规范。然后可以使用静态类型检查来确保组件遵循规定的交互协议。在会话类型的情况下,发展主要是在完全不同的类型论的二元(两方)或多方(n方)协议。不幸的是,多方和二进制协议的分析技术之间的精确关系还有待理解。在这项工作中,我们弥合这一以前开放的差距在原则上的方式:我们表明,多方协议的分析也可以在一个更简单的类型论的二进制协议,确保协议的保真度和死锁自由。我们提出的特征定理,提供了新的见解之间的关系,但非常不同的动机,会话类型系统-一个基于线性逻辑,其他基于自动机理论-并建议有用的基于类型的验证技术,多方系统依赖于减少到二进制的情况。
2014-07-16 cs.LO
Separation and Encodability in Mixed Choice Multiparty Sessions (Technical Report)
本文为混合选择同步多方会话演算提出通用类型系统并证明其安全性,进而通过可编码性与分离性分析比较九个演算的表达能力,证明MCMP严格强于经典多方会话。
2024-06-07 cs.LO
Non-Blocking Concurrent Imperative Programming with Session Types
Concurrent C 0是C家族中的一种命令式程序设计语言,具有会话类型的消息传递并发性。前面提出的语义实现了异步(非阻塞)输出;我们在这里扩展了非阻塞输入。一个关键的想法是通过将接收命令解释为对消息的请求来尽可能地推迟消息接收。我们将我们的想法实现为从阻塞中间语言到非阻塞语言的翻译。最后,我们评估了我们的技术与几个基准程序,并显示所获得的结果。虽然跨度的抽象度量总是减少(或保持不变),但只有少数例子获得了实际好处。
2017-01-18 cs.LO
Session Type Isomorphisms
在使用类型作为搜索关键字检索函数库中的函数方面,已经做了大量的工作。丰富的组件规范以行为类型的形式可用,使得能够进行类似的查询,其中可以使用组件的行为类型作为搜索关键字来搜索组件库。然而,就像函数库一样,组件库将包含其类型在消息顺序或分支点位置上与搜索到的类型不同的组件。因此,也有必要寻找那些类型不同于但同构于所搜索的组件的组件。本文给出了同构会话类型的语义和公理化刻画。会话类型同构的理论是微妙的。部分原因是它依赖于进程之间的非标准等效概念。此外,我们不知道公理化是否完全。众所周知,箭头,产品和总和类型的同构是不可公理化的,但目前还不清楚是否这个负面的结果也适用于家庭的类型,我们认为在这项工作中。
2014-06-13 cs.LO
Using Session Types for Reasoning About Boundedness in the Pi-Calculus
深度有界和名称有界过程的类是π演算的片段,其中一些对于完整演算不可判定的决策问题变得可判定。P是深度有界的,如果每一个减少序列P包含后继进程与最多k个积极的嵌套限制。P是k级名有界的,如果P的每个约简序列包含至多k个活动有界名的后继过程。这些进程类的成员是不可判定的。在本文中,我们使用二进制会话类型来决定两个类型系统,给出了一个健全的特性:如果一个进程是良好的类型在我们的第一个系统,它是深度有界的。如果一个进程在我们的第二个更严格的类型系统中是良好类型的,它也将是名称绑定的。
2017-09-04 cs.LO
Timeout Asynchronous Session Types: Safe Asynchronous Mixed-Choice For Timed Interactions
本文提出 TOAST,通过时间约束安全支持异步会话类型中的混合选择,并给出具备进程计时器、可建模 receive-after 超时模式的演算及主体归约证明。
2025-07-21 cs.LO
Session Types for Broadcasting
到目前为止,会话类型已经在点对点通信的假设下使用,以确保会话端点的线性,以及可靠的通信,以确保发送/接收二元性。在本文中,我们定义了一个会话类型论的广播通信语义,根据定义不承担点到点和可靠的通信。我们的会话框架位于广播PSI演算的参数框架之上,在参数框架内开发会话类型。我们的会话类型论具有可靠性和安全性。我们进一步相信,所提出的解决方案最终将提供一个更深入的理解会话类型的原则应如何适用于一般情况下的通信语义。
2014-06-13 cs.LO cs.PL
Core Higher-Order Session Processes: Tractable Equivalences and Relative Expressiveness
这项工作提出了易于处理的双向模拟高阶π演算会话原语(HOPI),并提供了一个完整的研究其最重要的子演算的表达能力。首先,我们开发了三种类型的互模拟,这是符合上下文对等。这些特征表明,仅观察高阶值的特定有限集合(其存在于会话类型中)作为输入就足以推理HOp过程。接下来,我们确定HO,一个最小的,二阶的HOPI子演算,其中高阶的应用程序/抽象,名称传递和递归是缺席的。我们表明,HO可以编码HOPI扩展高阶应用程序和抽象,一阶会话π演算可以编码HOPI。这两种编码都是完全抽象的。我们还证明了会话π演算与共享名称的传递不能被编码到HOPI没有共享名称。我们表明,HOPI,HO和PI是同样的表达; HO的表达能力,使有效的推理类型等价的高阶过程。
2015-02-10 cs.LO
Compositional Interface Refinement Through Subtyping in Probabilistic Session Types
本文提出概率混合选择多方会话π演算及其灵活子类型系统,允许用多个通道细化单个接口,并证明主体归约、无错误性和无死锁性,从而支持概率分布式通信的组合式验证与逐步细化。
2025-09-12 cs.LO
Modular Multiparty Sessions with Mixed Choice
本文提出一种面向多方会话的类型指派方法,将混合选择限制在松散耦合模块内部使用,从而在提升表达能力的同时保证主体归约、会话保真性和无锁性。
2025-08-19 cs.LO
Context-Free Session Types for Applied Pi-Calculus
我们提出了一个二进制会话类型系统,使用上下文无关的会话类型的一个版本的应用π演算的阿巴迪等。al.,其中只能发送基本项、常量和通道。会话类型类似于BPA的过程术语,我们使用互模拟等价来表征类型等价。我们提出了一个定义在类型等价类上的约束类型系统,其中类型等价被构建到类型系统中。这两种类型的系统满足一般的健全性属性,这是建立一个呼吁通用会话类型系统的PSI演算。
2018-08-27 cs.LO cs.PL
Asynchronous Sessions with Input Races
我们提出了一个演算的异步多方会话中的输入选择与不同的paths是允许的过程。我们提出了一个类型系统,接受这样的输入比赛,只要他们不妨碍锁自由。
2022-03-24 cs.LO
A type checking algorithm for qualified session types
我们提出了一个类型检查算法,建立一个基于会话的纪律在PI演算米尔纳,Parrow和沃克。我们的会话类型被限定为线性或无限制。线性类型的通信通道保证只在一个线程中出现,可能会出现多次;之后它们会演变为不受限制的通道。会话协议由类型构造函数描述,该构造函数表示同一个通信通道的两端。我们确保了算法的合理性,通过显示消耗所有线性资源的过程被接受的类型系统保留在计算过程中的类型,类型检查是一致的w.r.t.结构一致性
2011-08-11 cs.LO cs.PL
Inference Systems with Corules for Combined Safety and Liveness Properties of Binary Session Types
本文利用广义推理系统中的协同规则,为二元会话类型的组合安全性与活性性质(如公平终止、公平合规和公平子类型)提供更简单且完备的刻画,并借助有界余归纳原理证明其完备性。
2022-08-30 cs.LO
A Subexponential View of Domains in Session Types
线性逻辑(LL)启发了许多计算系统的设计,提供了建立在其元理论之上的推理技术。自其诞生以来,并发系统和LL之间的几个连接已经从不同的角度出现。在过去的十年中,Caires和Pfenning的开创性工作表明,LL中的公式可以被解释为会话类型,并在pi演算中作为证明项。这导致了Curry-Howard解释,其中切割消除程序中的证明减少对应于过程减少/相互作用。LL中的次指数在并发系统中也发挥了重要作用,因为它们可以以不同的方式进行解释,包括分布式系统中的时间、空间甚至认知模态。在本文中,我们解决的问题:从会话类型解释的角度来看,次指数的意义是什么?我们的答案是一个类似于pi的过程演算,其中代理驻留在位置/站点中,并且它们明确了不同站点之间的通信应该如何发生。这种语言的设计完全依赖于LL中的次指数的证明理论,从而以一种优雅的方式扩展了Caires-Pfenning解释。
2022-04-08 cs.LO
Nested Session Types
会话类型静态地描述并发消息传递进程之间的通信协议。不幸的是,参数多态性,即使在其限制前束形式是不完全理解的会话类型的上下文中。在本文中,我们提出了元理论的会话类型扩展与前趋多态性,因此,嵌套递归数据库。值得注意的是,我们证明了类型平等是决定性的表现出减少跟踪等价的确定性一阶文法。认识到后者的高理论复杂性,我们还提出了一种新的类型平等算法,并证明其合理性。我们观察到,该算法是令人惊讶的效率,尽管它的不完整性,足以为我们所有的例子。我们通过使用嵌套会话类型扩展Rast程序设计语言来实现我们的想法。最后,我们用几个例子来说明我们增强的类型系统的表达能力。
2020-12-09 cs.LO cs.PL
On the Expressiveness of Mixed Choice Sessions
会话类型为结构化交互提供了灵活的编程风格,并用于保证分布式进程的安全和一致的组合。传统会话类型仅包括单向输入(外部)和输出(内部)保护选择。这阻止了会话进程探索pi演算的全部表达能力,其中混合选择被证明比(非混合)保护选择更具表达力。为了解决这个问题,最近Casal,Mordido和Vasconcelos提出了混合选择的二进制会话类型(CMV+)。本文进行了一个令人惊讶的,不幸的结果CMV+:尽管包括不受限制的渠道与混合选择,CMV+的混合选择是相当独立的,而不是混合。我们证明了这一负面结果使用两种方法(使用领导选举问题或同步模式作为显着特征),表明不存在良好的编码从π演算到CMV+,保持分布。然后,我们关闭他们的开放问题上的编码从CMV+到CMV(没有混合选择),证明其合理性,从而编码是好的耦合相似性。
2022-09-06 cs.LO
Session Fidelity for ElixirST: A Session-Based Type System for Elixir Modules
本文建立在以前的工作调查的会话类型的适应提供有关Elixir模块的行为信息。一个名为ElixirST的类型系统已经被构建,用于静态确定Elixir模块中的函数是否遵守其端点规范,表示为会话类型;还构建了相应的自动化类型检查的工具。在本文中,我们正式验证这种类型的系统。一个基于LTS的操作语义的类型系统所支持的语言片段的开发,建模其运行时的行为时,调用的模块客户端。然后使用该操作语义来证明ElixirST的会话保真度。
2022-08-09 cs.LO cs.PL cs.SE
Soft Session Types (Long Version)
我们展示了如何系统的会话类型可以强制执行的所有类型的进程的相互作用是有界的。我们提出的类型系统是基于Lafont的软线性逻辑,并强烈的灵感来自最近的作品会话类型的直觉线性逻辑公式。我们的主要结果是存在的,对于每一个类型化的过程,一个多项式约束的长度上的任何减少序列从它开始,其任何减少的大小。
2012-01-03 cs.LO cs.PL
On the Expressiveness of Mixed Choice Sessions (Technical Report)
会话类型为结构化交互提供了灵活的编程风格,并用于保证分布式进程的安全和一致的组合。传统的会话类型仅包括单向输入(外部)和输出(内部)保护选择。这阻止了会话进程探索pi演算的全部表达能力,其中混合选择被证明比(非混合)保护选择更具表达力。为了解决这个问题,最近Casal,Mordido和Vasconcelos提出了混合选择的二进制会话类型(CMV+)。本文进行了一个令人惊讶的,不幸的结果CMV+:尽管包括不受限制的渠道与混合选择,CMV+的混合选择是相当独立的,而不是混合。我们证明了这一负面结果使用两种方法(使用领导选举问题或同步模式作为显着特征),表明不存在良好的编码从π演算到CMV+,保持分布。然后,我们关闭他们的开放问题上的编码从CMV+到CMV(没有混合选择),证明其合理性,从而编码是好的耦合相似性。本技术报告是EXPRESS/SOS'22研讨会上发表的一篇论文的延伸。
2022-08-15 cs.LO
Session Types in a Linearly Typed Multi-Threaded Lambda-Calculus
我们提出了一个形式化的会话类型在多线程λ演算(MTLC)配备了一个线性类型系统,建立MTLC类型保存和全球的进步。后者(全局进度)意味着在MTLC中对良好类型程序的评估永远不会陷入死锁。由于这个制定的MTLC可以很容易地嵌入到ATS,一个成熟的语言与功能的编程核心,支持依赖类型(的DML风格)和线性类型,我们得到了一个直接实现的会话类型在ATS。此外,我们获得了直接支持的依赖会话类型的基础上,这种嵌入到ATS的形式。与现有的各种会话类型的形式化相比,我们看到本文给出的形式化在其接近具体实现方面是独特的。特别是,我们报告这样一个实现准备实际使用,生成Erlang代码从良好类型的ATS源(利用会话类型),从而充分利用的基础设施支持分布式计算在Erlang。
2016-03-11 cs.LO cs.PL
A Session Type System for Asynchronous Unreliable Broadcast Communication
本文提出不可靠广播会话演算及其会话类型系统,刻画广播与汇聚的对偶会话类型,并提供无需确认的自主恢复机制,通过实现Paxos协议验证了框架的表达能力。
2024-08-02 cs.FL cs.LO
Soft Session Types
我们展示了如何系统的会话类型可以强制执行的所有类型的进程的相互作用是有界的。我们提出的类型系统是基于Lafont的软线性逻辑,并强烈的灵感来自最近的作品会话类型的直觉线性逻辑公式。我们的主要结果是存在的,对于每一个类型化的过程,一个多项式约束的长度上的任何减少序列从它开始,其任何减少的大小。
2011-08-23 cs.LO cs.PL
Intersections and Unions of Session Types
先前的工作已经扩展了线性递归演算和会话类型的消息传递并发计算之间的深层逻辑联系,具有等递归类型和子类型的自然概念。在本文中,我们进一步扩展了交集和联合类型,以表示在一个单一的类型过程的多个行为属性。我们证明了会话的保真度和没有死锁,并说明了我们的系统的表达能力与一些简单的例子。我们观察到,我们可以表示内部和外部的选择的交集和工会,分别,这是以前建议由Padovani为不同的语言的会话类型的动机是操作,而不是逻辑问题。
2017-02-08 cs.LO cs.PL
Session Types with Arithmetic Refinements
会话类型静态地规定了消息传递过程的双向通信协议。但是,简单会话类型不能指定交换消息类型以外的属性。在本文中,我们通过使用线性算术的索引细化来扩展类型系统,捕获数据结构和算法的内在属性。我们发现,尽管Presburger算术的可判定性,类型平等,因此也子类型和类型检查现在是不可判定的,这与类似的依赖细化类型系统的函数语言。我们还提出了一个实用的,但不完整的算法类型的平等,我们已经在我们的实现Rast,并发会话类型的语言与算术索引的改进,以及测力和时间类型。此外,如果必要的话,程序员可以提出额外的类型互模拟,这些互模拟被平滑地集成到类型相等算法中。
2020-05-12 cs.LO cs.PL
Session Types as Generic Process Types
行为型系统比通常的静态分析更安全。它们基于“类型即进程”的思想,为特定的属性提供专用的类型代数,从协议兼容性到竞争自由、锁自由甚至响应性。有两种成功的方法,尽管它们有很大的不同,它们是会话类型和进程类型。前者允许使用特定类型(证明)系统来指定和验证(分布式)通信协议;后者允许从系统规范中推断出一个过程抽象,使用通用类型(证明)系统可以更简单地验证属性。这些方法之间的关系是什么?一般的一个可以substantially具体的一个?代价是什么?前者可以作为后者的编译器吗?本文介绍的工作是朝着回答这些问题迈出的一步。具体地说,我们定义了一个逐步编码的pi演算会话和会话类型(系统的盖伊和孔)到一个pi演算的进程类型(通用类型系统的五十岚和小林)。我们对会话类型环境、极性(区分会话通道端点)和标记总和进行编码。我们展示了编码的正向和反向操作对应,以及类型对应。为了在进程类型子类型中忠实地编码会话子类型,需要向目标语言添加记录构造函数和新的子类型规则。总之,作为协议抽象的会话类型的编程便利性可以与pi演算的简单性和功能相结合,特别是利用通用类型系统提供的框架。
2014-08-07 cs.LO cs.PL
Rast: A Language for Resource-Aware Session Types
Rast是一种开源语言,通过算术细化、ergometric/temporal类型和嵌套参数多态性扩展会话类型,以捕获并发程序的资源与复杂度属性,并借助优化后的Cooper算法进行类型检查。
2022-01-11 cs.LO cs.PL
Higher-order Context-free Session Types in System F
我们提出了一个扩展的系统F与高阶上下文无关的会话类型。功能类型与会话类型的混合已经被证明是类型等价形式化的一个挑战:而功能类型等价通常是基于规则的,会话类型等价通常遵循基于互模拟的语义方法。我们提出了一个统一的方法,处理功能和会话类型的等价性在一起。我们提出了三个概念的类型等价:基于语法规则的版本,语义bisimulation-based版本,和算法版本减少到简单的语法的互模拟的问题。我们证明了这三个概念相吻合,并得出一个可判定性结果的类型等价问题的高阶上下文无关的会话类型。
2022-03-24 cs.FL cs.LO cs.PL
A Logical Account of Subtyping for Session Types
本文在带不动点的线性逻辑框架下研究会话类型的子类型关系,提出一种同时保持安全性与终止性的子类型刻画,并证明该子类型在理论上可通过强制语义编译消除。
2023-04-13 cs.DC cs.LO cs.PL
Session Types with Runtime Adaptation: Overview and Examples
在最近的工作中,我们已经开发了一个会话类型的纪律演算,其特点是会话建立和通信的常用结构,但也有两个新的结构,使通信过程被停止,复制,或在运行时丢弃。目的是理解用于结构化通信的静态分析的已知技术是否可扩展到上下文感知的、可适应的分布式系统的具有挑战性的上下文,其中纪律化的交互和运行时适应是交织的关注点。在这篇简短的笔记中,我们总结了我们的会话类型框架的主要功能,并回顾了它的基本正确性属性。我们通过例子来说明我们的框架。特别是,我们提出了一个会话表示的监督树,执行容错应用程序的Erlang语言的机制。
2013-12-10 cs.LO cs.PL
Deconfined Global Types for Asynchronous Sessions
本文提出一种改进的异步多参与者会话类型系统,在满足良构条件时保留主体归约、会话保真和进展性质,并配有健全完备的类型推断算法,通过检查良构条件的受限形式恢复类型化的有效性。
2023-01-12 cs.LO cs.PL
The Different Shades of Infinite Session Types
许多类型系统包含无限类型。在会话类型系统中,这是本文的重点,无限类型是很重要的,因为它们允许通信协议的规范,是无限的时间。通常无限会话类型作为简单的有限状态表达式$\mathsf{rec}\, X.T$或通过非参数方程定义$X\doteq T$引入。或者,某些依赖于标签或值的会话类型系统超越了简单的递归类型。然而,撇开依赖类型不谈,无限会话类型的世界要丰富得多,从各种形式的参数方程定义,一直到共归纳定义空间中的任意无限类型。我们研究无限会话类型跨越灰色阴影的光谱的方式,一般无限类型的明亮的光。我们确定了四个点上的频谱,其特征在于不同风格的方程定义,并表明,他们形成了一个严格的层次结构,通过建立双向对应类的自动机:有限状态,1-计数器,下推和2-计数器。这使我们能够建立可判定性和不可判定性的结果的问题的类型形成,类型等价和对偶的每一类类型。我们还考虑了上下文无关会话类型(并将其扩展到高阶)和嵌套会话类型的先前工作,并将它们定位在我们的无限类型谱中。
2022-01-20 cs.FL cs.LO cs.PL