Solo: a lightweight static analysis for differential privacy
Existing approaches for statically enforcing differential privacy in higher order languages
use either linear or relational refinement types. A barrier to adoption for these approaches is
the lack of support for expressing these “fancy types” in mainstream programming
languages. For example, no mainstream language supports relational refinement types, and
although Rust and modern versions of Haskell both employ some linear typing techniques,
they are inadequate for embedding enforcement of differential privacy, which requires “full” …
use either linear or relational refinement types. A barrier to adoption for these approaches is
the lack of support for expressing these “fancy types” in mainstream programming
languages. For example, no mainstream language supports relational refinement types, and
although Rust and modern versions of Haskell both employ some linear typing techniques,
they are inadequate for embedding enforcement of differential privacy, which requires “full” …
Existing approaches for statically enforcing differential privacy in higher order languages use either linear or relational refinement types. A barrier to adoption for these approaches is the lack of support for expressing these “fancy types” in mainstream programming languages. For example, no mainstream language supports relational refinement types, and although Rust and modern versions of Haskell both employ some linear typing techniques, they are inadequate for embedding enforcement of differential privacy, which requires “full” linear types. We propose a new type system that enforces differential privacy, avoids the use of linear and relational refinement types, and can be easily embedded in richly typed programming languages like Haskell. We demonstrate such an embedding in Haskell, demonstrate its expressiveness on case studies, and prove soundness of our type-based enforcement of differential privacy.
ACM Digital Library