"Program sensitivity" measures the distance between the outputs of a program when it is run on two related inputs. This notion, which plays an important role in areas such as data privacy and optimization, has been the focus of several program analysis techniques introduced in recent years. One approach that has proved particularly fruitful for this domain is the use of type systems inspired by linear logic, as pioneered by Reed and Pierce in the Fuzz programming language. In Fuzz, each type is equipped with its own notion of distance, and the typing rules explain how those distances can be treated soundly when analyzing the sensitivity of a program. In particular, Fuzz features two products types, corresponding to two different sensitivity analyses: the "tensor product" combines the distances of each component by adding them, while the "with product" takes their maximum. In this work, we show that products in Fuzz can be generalized to arbitrary $L^p$ distances, metrics that are often used in privacy and optimization. The original Fuzz products, tensor and with, correspond to the special cases $L^1$ and $L^\infty$. To simplify the handling of such products, we extend the Fuzz type system with bunches -- as in the logic of bunched implications -- where the distances of different groups of variables can be combined using different $L^p$ distances. We show that our extension can be used to reason about important examples of metrics between probability distributions in a natural way.
翻译:“ 方案敏感度 ” 测量程序在两个相关投入上运行时的产出之间的距离。 这个概念在数据隐私和优化等领域起着重要作用, 是近年来采用的若干程序分析技术的焦点。 已证明在这一领域特别有成效的一种方法是使用线性逻辑所启发的类型系统, 由Reed 和 Pierce在 Fuzz 编程语言中率先提出。 在 Fuzz 中, 每种类型都有其自身的距离概念, 并且打字规则解释在分析一个程序的敏感性时如何正确处理这些距离。 特别是, Fuzz 有两个产品类型, 与两种不同的敏感度分析相对应: “ 加速产品” 将每个组成部分的距离结合起来, 添加它们, 而“ 产品” 则最大限度地使用它们。 在这项工作中, 我们显示Fuzz 中的产品可以被任意使用 $L $ p 的距离, 标准通常用于隐私和优化 。 原始的模糊产品, 和 与 美元 美元 美元 和 美元 美元 美元 等的特例对应。 。 为了简化每个部件的距离的处理方式, 我们使用不同的逻辑的距离, 我们使用不同的逻辑, 的逻辑的分类可以显示不同类别 的逻辑的逻辑的分数 。