With State Oracle eval Dist map
SPMFSemantics.withStateOracle_evalDist_map
Plain-language statement
withStateOracle commutes with <$>: mapping a function over the surface computation is the same as mapping it over the observed SPMF. This holds because interpret is the bundled monad morphism simulateQ', and the StateT observer fun mx => toSPMF (StateT.run' mx s) preserves <$> even though it is not a full monad morphism: <$> does not thr...
Source project: VCVio
Person-level attribution pending.