Documentation

VCVio.OracleComp.FinRatPMF

Executable FinRatPMF Semantics for OracleComp #

This file provides a computable oracle evaluator using FinRatPMF.Raw and proves that its denotational semantics agree with the existing evalDist semantics of OracleComp.

def FinRatPMF.finRatImpl {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] :

Computable query implementation using the executable FinRatPMF.Raw monad.

Instances For
    @[implicit_reducible]
    def FinRatPMF.finRatImpl.instSpecFintypeOfFinEnum {ι : Type u} {spec : OracleSpec ι} [(t : spec.Domain) → FinEnum (spec.Range t)] :
    spec.Fintype
    Instances For
      @[simp]
      theorem FinRatPMF.finRatImpl.toPMF_apply {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] (t : spec.Domain) :
      @[simp]
      theorem FinRatPMF.finRatImpl.evalDist_apply {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] (t : spec.Domain) :
      @[simp]
      theorem FinRatPMF.finRatImpl.evalDist_simulateQ {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] {α : Type v} (oa : OracleComp spec α) :
      @[simp]
      theorem FinRatPMF.finRatImpl.probOutput_simulateQ {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] {α : Type v} (oa : OracleComp spec α) (x : α) :
      @[simp]
      theorem FinRatPMF.finRatImpl.probEvent_simulateQ {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] {α : Type v} (oa : OracleComp spec α) (p : αProp) :
      @[simp]
      theorem FinRatPMF.finRatImpl.support_simulateQ {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] {α : Type v} (oa : OracleComp spec α) :
      @[simp]
      theorem FinRatPMF.finRatImpl.finSupport_simulateQ {ι : Type u} {spec : OracleSpec ι} [spec.Inhabited] [(t : spec.Domain) → FinEnum (spec.Range t)] {α : Type v} [DecidableEq α] (oa : OracleComp spec α) :

      Demo #

      @[implicit_reducible]
      Instances For