Gradual Sensitivity Typing

📅 2023-08-03
🏛️ arXiv.org
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Static sensitivity analysis often suffers from excessive conservativeness—especially for recursive functions—hindering practical deployment in quantitative information-flow control. Method: We propose the first progressive type system for sensitivity reasoning, enabling smooth evolution from unannotated dynamic code to a hardened hybrid static/dynamic sensitivity-checked variant. Our approach introduces *unknown sensitivity* and *bounded imprecision intervals* to model uncertainty, integrating progressive typing principles into quantitative sensitivity analysis for the first time. We formalize the language GSoul based on an extended type-and-effect system and implement dynamic runtime checks. Contributions/Results: We formally prove progressive guarantees, type safety, and metric preservation—including both termination-insensitive and enhanced termination-sensitive variants. A prototype implementation validates feasibility and demonstrates applicability to differential privacy and other quantitative type systems, establishing a novel evolvable paradigm for sensitivity-aware programming.
📝 Abstract
Reasoning about the sensitivity of functions with respect to their inputs has interesting applications in various areas, such as differential privacy. In order to check and enforce sensitivity, several approaches have been developed, notably sensitivity type systems. In these systems, sensitivity can be seen as an effect in the sense of type-and-effects systems as originally proposed by Gifford and Lucassen. Because type-and-effect systems can make certain useful programming patterns tedious or overly conservative, there is value in bringing the benefits of gradual typing to these disciplines in order to ease their adoption. In this work, we motivate, formalize, and prototype gradual sensitivity typing. The language GSoul supports both the unrestricted unknown sensitivity and bounded imprecision in the form of intervals. Gradual sensitivity typing allows programmers to smoothly evolve typed programs without any static sensitivity information towards hardened programs with a mix of static and dynamic sensitivity checking. In particular, we show that gradual sensitivity supports recursive functions for which fully static checking would be overly conservative, seamlessly enabling exact runtime sensitivity checks. GSoul satisfies both the gradual guarantees and sensitivity type soundness, known as metric preservation. We establish that, in general, gradual metric preservation is termination insensitive, and that one can achieve termination-sensitive gradual metric preservation by hardening specifications to bounded imprecision. We implement a prototype that provides an interactive test bed for gradual sensitivity typing. This work opens the door to gradualizing other typing disciplines that rely on function sensitivity such as differential privacy, as well as other quantitative type-based reasoning techniques.
Problem

Research questions and friction points this paper is trying to address.

Develop gradual sensitivity typing for function sensitivity analysis.
Enable smooth evolution from untyped to hardened sensitivity-checked programs.
Support recursive functions with exact runtime sensitivity checks.
Innovation

Methods, ideas, or system contributions that make the work stand out.

Gradual sensitivity typing for dynamic checks
GSoul language supports unknown sensitivity intervals
Enables recursive functions with runtime sensitivity checks
🔎 Similar Papers
No similar papers found.
D
Damián Árquez
PLEIAD Lab, Computer Science Department (DCC), University of Chile, Chile
Matías Toro
Matías Toro
Assistant Professor at University of Chile
Programming LanguagesData Privacy
É
Éric Tanter
PLEIAD Lab, Computer Science Department (DCC), University of Chile, Chile