Adversarial computations are a widely studied class of computations where resource-bounded probabilistic adversaries have access to oracles, i.e., probabilistic procedures with private state. These computations arise routinely in several domains, including security, privacy and machine learning. In this paper, we develop program logics for reasoning about adversarial computations in a higher-order setting. Our logics are built on top of a simply typed $\lambda$-calculus extended with a graded monad for probabilities and state. The grading is used to model and restrict the memory footprint and the cost (in terms of oracle calls) of computations. Under this view, an adversary is a higher-order expression that expects as arguments the code of its oracles. We develop unary program logics for reasoning about error probabilities and expected values, and a relational logic for reasoning about coupling-based properties. All logics feature rules for adversarial computations, and yield guarantees that are valid for all adversaries that satisfy a fixed resource policy. We prove the soundness of the logics in the category of quasi-Borel spaces, using a general notion of graded predicate liftings, and we use logical relations over graded predicate liftings to establish the soundness of proof rules for adversaries. We illustrate the working of our logics with simple but illustrative examples.
翻译:Adversarial 计算是一种经过广泛研究的计算类别, 由资源所限的概率对手可以接触触角, 即私人状态的概率性程序。 这些计算通常出现在多个领域, 包括安全、 隐私和机器学习。 在本文中, 我们开发了用于在更高顺序设置中进行对抗性计算推理的程序逻辑。 我们的逻辑建立在简单打字的 $\ lambda$- calculuus 之上, 以一个等级化的货币计算概率和状态。 分级用于模拟和限制记忆足迹和计算成本( 以触角为条件) 。 在这种观点中, 对手是一种更高层次的表达方式, 期望以其代码为论据。 我们开发了用于错误概率性和预期价值推理的单词逻辑逻辑逻辑逻辑逻辑逻辑逻辑。 所有逻辑性计算规则都扩展了, 并为所有符合固定资源政策的对手提供了有效的保证。 我们用精确的逻辑性逻辑性的正确性展示了我们逻辑性等级的逻辑性, 并且用精确的逻辑性等级的逻辑性模型来证明我们逻辑性等级上的逻辑性比级的逻辑性模型的等级关系。