Bundled Lifts from ProbComp #
This file packages the "public randomness" capability separately from denotational semantics.
Many crypto constructions need two orthogonal pieces of structure on their ambient monad m:
- a way to observe computations probabilistically (
SPMFSemantics/PMFSemantics) - a way to inject plain probabilistic sampling into
m
This file packages the second capability as a bundled monad homomorphism ProbComp →ᵐ m, so it
can be carried independently of whatever denotational semantics the construction uses. It also
defines ProbCompRuntime, the common crypto-facing bundle that pairs public-randomness lifting
with bundled SPMF semantics for an ambient monad.
Bundled way to lift plain probabilistic computations into an ambient monad m.
Intuitively, this is the capability "sample fresh public randomness inside m". We package it as
a monad homomorphism so it composes lawfully with pure and bind.
Inject a plain
ProbCompcomputation intom.
Instances For
Build a bundled ProbCompLift from an existing lawful MonadLiftT ProbComp m instance.
Instances For
Common runtime bundle for crypto games in an ambient monad m.
This packages the two capabilities that security experiments usually need together:
SPMFSemantics mto observe the experiment as a Boolean subdistribution.ProbCompLift mto sample fresh public randomness insidem.
The bundle is kept separate from the core scheme definitions so that executable scheme data does not become noncomputable merely by carrying denotational semantics.
- toSPMFSemantics : SPMFSemantics m
Bundled subprobabilistic semantics for the ambient monad.
- toProbCompLift : ProbCompLift m
Bundled injection of plain probabilistic sampling into the ambient monad.
Instances For
Observe an ambient computation as an SPMF using the runtime's bundled semantics.
Instances For
Failure probability of an ambient computation under the runtime's bundled semantics.
Instances For
Lift a plain ProbComp computation into the ambient monad using the runtime's public
randomness capability.
Instances For
Canonical runtime for ProbComp itself.