Corollary 3.5 — for counting queries the Net mechanism is (2α, δ)-useful once α ≥ (2/(εn)) log(|N_α(C)|/δ)
ProvedPrivateRelease.NetMechanism.corollary_3_5Let be a finite data universe, the input size, and a class of predicates with counting queries . Let be a minimum -net for . If , and
then the Net mechanism run on is -useful for : for every input , with probability at least its output satisfies for every .
It reduces the utility of the Net mechanism for counting queries to a bound on the size of minimum α-nets, which Theorems 3.6 and 3.9 supply.
Formalization Note The paper's "" is the logarithm of . No positivity hypothesis on the quality score's sensitivity is needed here: when the mechanism is uniform on (Lean's ), and for counting queries this happens only when or every query of is constant, where every output is accurate. Neighbours differ in exactly one entry.
import Mathlib import Definitions.Def_PrivateRelease_NetMechanism_ExpMech
namespace PrivateRelease.NetMechanism
/-- Corollary 3.5 (p. 9): for any class `C` of counting queries on inputs of size `n ≥ 1`, the
Net mechanism run on a minimum α-net `N` is `(2α, δ)`-useful whenever
`α ≥ (2/(εn)) log(|N|/δ)`. -/
theorem corollary_3_5 {X : Type} [Fintype X] {n : ℕ} (hn : 1 ≤ n) (C : Set (X → Bool))
(ε α δ : ℝ) (N : Finset (Database X)) (hε : 0 < ε) (hδ : 0 < δ) (hδ1 : δ ≤ 1)
(hN : IsMinNet (countingClass C) α N)
(hα : 2 / (ε * n) * Real.log ((N.card : ℝ) / δ) ≤ α) :
Useful (countingClass C) (2 * α) δ (netMech (n := n) (countingClass C) ε N) := by sorry
end PrivateRelease.NetMechanism
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.