Oblivious-Sequence Data Structure Specifications #
An oblivious-sequence specification (Cslib.DataStructure.ObliviousSequenceSpec) describes the
input-output contract of a randomized or deterministic data structure against an oblivious
(non-adaptive) caller that fixes a finite operation sequence ops : List Op in advance. Unlike a
state-transition specification (Cslib.DataStructure.StateTransitionSpec), an oblivious-sequence
specification has no abstract State field: it constrains the joint probability distribution
μ : PMF (List (Sigma Result)) of the full input-output transcript directly via a predicate
Contract ops μ.
Every relational state-transition specification D : Cslib.DataStructure.StateTransitionSpec at an
initial state s₀ : D.State embeds canonically into ObliviousSequenceSpec via
Cslib.DataStructure.StateTransitionSpec.toObliviousSequenceSpec, requiring every transcript in the
support of μ to arise from a valid relational execution of D from s₀. On deterministic
specifications ([D.HasStepFn f]), this contract reduces to concentration on the unique canonical
output trace (D.run s₀ ops).2.
Main definitions #
Cslib.DataStructure.ObliviousSequenceSpec: state-free distributional specification over finite oblivious operation sequences.Cslib.DataStructure.TranscriptMatches: alignment predicateout.map Sigma.fst = opsbetween an operation sequence and an input-output transcript.Cslib.DataStructure.ObliviousSequenceSpec.weaken: replacesValidOpSeqandContractby arbitrary predicates, keepingOpandResult.Cslib.DataStructure.StateTransitionSpec.toObliviousSequenceSpec,Cslib.DataStructure.ObliviousSequenceSpec.ofFn: canonical embeddings of relational and deterministic state-transition specifications intoObliviousSequenceSpec.
Main results #
Cslib.DataStructure.ObliviousSequenceSpec.contract_weaken: a distribution satisfyingS.ContractonS.ValidOpSeqsatisfies the contract ofS.weaken V ConV, whenVimpliesS.ValidOpSeqandS.ContractimpliesConS.ValidOpSeq.Cslib.DataStructure.StateTransitionSpec.toObliviousSequenceSpec_contract_matches: every transcript in the support of a distribution satisfying(D.toObliviousSequenceSpec s₀).Contract opsmatchesops.Cslib.DataStructure.StateTransitionSpec.toObliviousSequenceSpec_contract_iff_of_hasStepFn: on a deterministic specification,(D.toObliviousSequenceSpec s₀).Contract ops μholds underD.ValidHistory s₀ opsif and only if everyout ∈ μ.supportequals(D.run s₀ ops).2.Cslib.DataStructure.StateTransitionSpec.toObliviousSequenceSpec_contract_pure_run: the point massPMF.pure (D.run s₀ ops).2satisfies(D.toObliviousSequenceSpec s₀).Contract ops.
Oblivious-sequence specifications #
A state-free distributional specification for an oblivious (non-adaptive) caller.
For each admissible operation sequence ops : List Op, Contract ops μ constrains the joint
probability distribution μ : PMF (List (Sigma Result)) of the returned input-output transcript.
- Op : Type u
Operations available to an oblivious caller.
Observation type returned by each operation.
Distributional correctness contract on the joint output transcript distribution
μinduced by executingops.
Instances For
Input-output label pairing an operation with its observation.
Instances For
Replace the admissible operation sequences of an ObliviousSequenceSpec by ValidOpSeq' and
its distributional contract by Contract', keeping Op and Result. The new predicates need not
be related to S; contract_weaken assumes that ValidOpSeq' implies S.ValidOpSeq and that
S.Contract implies Contract' on S.ValidOpSeq.
Instances For
Monotonicity of ObliviousSequenceSpec.weaken: any distribution satisfying S.Contract on
S.ValidOpSeq also satisfies (S.weaken V C).Contract on V when V implies S.ValidOpSeq and
S.Contract implies C on S.ValidOpSeq.
Canonical embedding of StateTransitionSpec into ObliviousSequenceSpec #
Embed a relational state-transition specification D : StateTransitionSpec at initial state
s₀ : D.State into DataStructure.ObliviousSequenceSpec:
ValidOpSeqis demonic operation-sequence admissibilityD.ValidOpSeq s₀;Contract ops μrequires every transcriptout ∈ μ.supportto be the label sequence of some valid relational execution transcripttr : D.Transcriptwithtr.ops = ops.
Instances For
Every transcript in the support of a distribution satisfying
(D.toObliviousSequenceSpec s₀).Contract ops μ matches ops.
On a deterministic specification ([D.HasStepFn f]) and an admissible operation sequence
D.ValidHistory s₀ ops, (D.toObliviousSequenceSpec s₀).Contract ops μ holds if and only if
every output trace in μ.support equals (D.run s₀ ops).2.
The point mass PMF.pure (D.run s₀ ops).2 satisfies
(D.toObliviousSequenceSpec s₀).Contract ops whenever D.ValidHistory s₀ ops.
Construct an ObliviousSequenceSpec from a deterministic state-transition function
stepFn : (s : State) → (o : Op) → State × Result o, an initial state s₀ : State, and an
optional per-step admissibility predicate valid.