In this paper, we present the first fully-automated expected amortised cost analysis of self-adjusting data structures, that is, of randomised splay trees, randomised splay heaps and randomised meldable heaps, which so far have only (semi-) manually been analysed in the literature. Our analysis is stated as a type-and-effect system for a first-order functional programming language with support for sampling over discrete distributions, non-deterministic choice and a ticking operator. The latter allows for the specification of fine-grained cost models. We state two soundness theorems based on two different -- but strongly related -- typing rules of ticking, which account differently for the cost of non-terminating computations. Finally we provide a prototype implementation able to fully automatically analyse the aforementioned case studies.
翻译:在本文中,我们提出了自调整数据结构(即随机的游玩树、随机的游玩剧堆和随机的可焊接堆)的首个完全自动化的预期摊销成本分析,迄今为止,文献中只分析了这些结构(半)手工分析。我们的分析被描述为第一级功能性编程语言的一种类型和效果系统,支持对离散分布、非确定性选择和计时操作器进行取样。后者允许对精细计成本模型进行规格说明。我们根据两种不同 -- -- 但密切相关 -- -- 键入计时规则说明两种声音性标语,后者对非截取计算成本作了不同解释。最后,我们提供了能够充分自动分析上述案例研究的原型实施。