Talks / Interactive article
Hyperproperties for Privacy, Fairness, and Legal Requirements
Some requirements cannot be checked by looking at one execution. They ask how different executions relate to one another.
Keeping a secret means that changing it should not change what an observer can see. A fairness requirement may ask whether two otherwise comparable people receive the same decision. A test of legal-critical software may compare the outcomes of related cases, even when the correct outcome of either case is difficult to compute.
These are the starting points of this talk. The common idea is to specify relationships between behaviors, then develop methods for testing or proving those relationships.
Adapted from my talk. The small models below are teaching examples created for this article; they are not the paper’s experimental results. Download the original slides (PDF, 57 MB).
Properties and hyperproperties
A trace records one possible execution of a system. A trace property specifies which individual traces are allowed. For example, a safety property can require that no execution enters an unsafe state.
A hyperproperty specifies which sets of traces are allowed. If two systems each produce individually acceptable executions but reveal different information when their executions are compared, a trace property may miss the distinction.
Trace property: P ⊆ Σω
Hyperproperty: H ⊆ 𝒫(Σω)
Here Σ is an alphabet of observations, Σω is the set of infinite traces, and 𝒫 denotes the power set. A system satisfies P when all its traces belong to P; it satisfies H when its set of traces belongs to H.
Why compare more than one execution?
Observing a single output does not establish that it is independent of a secret. Independence asks what would happen for other secret inputs with the same public input. The specification quantifies over those alternatives.
Privacy as noninterference

In the deterministic setting used here, let O(s, p) be the observable output for secret input s and public input p. Noninterference requires:
For every s₁, s₂, and p: O(s₁, p) = O(s₂, p).
The secret may affect internal computation. It must not affect the chosen observation. That choice matters: an output-only model says nothing about timing unless timing is included in the observations.
Change the secret; hold the public input fixed
Our finite model has a secret bit s ∈ {0, 1} and public input p ∈ {0, 1, 2, 3}. Compare O = p with a leaking implementation O = p + s.
| Secret | Public input | Observed output |
|---|---|---|
| 0 | 2 | 2 |
| 1 | 2 | 2 |
Both outputs are 2. With O = p, all four public-input cases satisfy noninterference in this finite model.
Opacity: another explanation for what we observe
The talk’s cyber-physical example combines a recurring mission—visiting Parking and Quay infinitely often—with an information-flow objective: the observer must not infer that the vehicle started in a secret location.
Initial-state opacity asks for an alternative explanation. For every execution starting in a secret state, there must be an execution starting in a nonsecret state with the same observations. This is a for every … there exists … requirement.
Find an observationally equivalent route
In this finite illustration, both routes may produce the observation sequence P → Q → P. Their starting locations are hidden. Change what the sensor reports to see whether the secret route still has a nonsecret explanation.
| Start | Observation sequence |
|---|---|
| Secret | P → Q → P |
| Nonsecret | P → Q → P |
A matching nonsecret route exists for the illustrated secret route.
Matching this finite prefix does not establish opacity for an infinite system, or prove that the recurring mission is satisfied.
Certificates for relationships between executions
Testing examples is useful, but a proof must cover the behaviors required by the specification. For dynamical systems, the talk develops this through functional certificates.
Barrier certificates
A barrier certificate B separates initial states from unsafe states and is preserved by the dynamics. For a deterministic discrete-time system x′ = f(x), sufficient conditions are:
- B(x) ≤ 0 for initial states.
- B(x) > 0 for unsafe states.
- B(f(x)) ≤ B(x) for safe states.
Why these conditions imply safety
Start with an initial state, where B is nonpositive. As long as the state is safe, a transition cannot increase B. A first transition into an unsafe state would therefore reach a state where B is both nonpositive and strictly positive—a contradiction.
Augmented barrier certificates
For a relational requirement, reason about pairs of states (x, y) in a self-composition of the system. A certificate over that product space can keep paired executions inside a region with matching observations.
For an opacity-style requirement, an existential player tries to match the universally chosen execution. A suitable certificate establishes that the matching player can respond while preserving the relation.
Why the order of choices matters
A strategy that chooses a matching move after each observed move gives a sufficient way to satisfy the corresponding trace requirement. It is not always necessary: a matching trace may exist only if choices depend on future behavior. The talk explains this incompleteness of the step-by-step certificate approach and motivates reasoning about longer-term connectivity.
Closure certificates
Closure certificates describe relationships between states connected by transitions, rather than just a region of individual states. Inductive transition invariants include one-step transitions and extend along paths. Additional decrease conditions can establish properties such as finitely many visits to a designated set.
The talk explores how transition-based reasoning may help with the lookahead needed for hyperproperties. Its questions about arbitrary and infinite lookahead are research directions, not a claim of a general complete verification procedure.
Read the papers: Verification of Hyperproperties for Dynamical Systems via Barrier Certificates · Closure Certificates.
Fairness depends on the relation we specify

The talk introduces a requirement that otherwise identical individuals receive the same outcome when only a protected feature changes. This is one precise comparison to test; it is not a complete definition of fairness.
Compare otherwise identical applicants
Consider a toy decision rule with a qualification score from 0 to 100. The baseline accepts either applicant at 60 or above. A second rule raises the threshold to 70 for protected group B.
| Group | Score | Decision |
|---|---|---|
| A | 65 | Accept |
| B | 65 | Reject |
The outcomes differ at score 65. Scores 60–69 violate the specified equality relation in this finite model.
A test can expose a counterexample to the chosen relation. Agreement on one pair cannot establish that a model is fair. Even agreement on all these toy inputs says nothing about omitted features or an unsuitable definition of similarity.
The talk also considers similarity-based individual fairness, causal formulations, and group criteria such as statistical parity and equal opportunity. Removing a protected attribute does not necessarily remove its influence through correlated features. Choosing the relation is part of the specification problem.
Related work: Fairness Testing through Extreme Value Theory · Uncovering Discrimination Clusters.
Testing without a complete output oracle

For complex software, we may not know the correct output for every input. Metamorphic testing instead checks a relation between related inputs and outputs. A simple mathematical example from the talk is sin(x) = sin(π − x).
For legal-critical software, the challenge is to derive justified relations from requirements and identify the assumptions under which they apply. The talk uses age-related benefits in tax preparation as an example of this reasoning.
A monotonicity requirement
This fictional benefit system awards 10 units, plus 2 units when an eligibility condition holds. Its stated requirement is that gaining eligibility must not reduce the benefit, with everything else fixed. These units and rules are invented for the demonstration.
| Input | Benefit units |
|---|---|
| Not eligible | 10 |
| Eligible | 12 |
12 ≥ 10: the eligibility change respects the stated relation.
A violation identifies a failure of the relation, even without an oracle for every output. Passing does not establish complete correctness: an implementation that always returns zero would satisfy this monotonicity check while violating the stated benefit amounts.
Read Metamorphic Testing and Debugging of Tax Preparation Software for the actual software-testing study.
What a relational specification makes explicit
Each example requires a choice: what is observable, which inputs are comparable, and which outcomes should agree or be ordered. Once those choices are explicit, testing can search for counterexamples and verification can establish guarantees under stated assumptions.
The difficult questions remain mathematical and contextual: which relation captures the intended requirement, and which proof or testing method can handle the system’s behaviors?