fact: Definition oracleWrap (D_O R_O S_O D_O' R_O' S_W : Set) (eqd_R_O' : EqDec R_O') (eqd_S_O : EqDec S_O) (oracle : S_O -> D_O -> Comp (R_O * S_O)) (WD : D_O' -> Comp (D_O * S_W)) (WR : S_W -> R_O -> Comp R_O') : S_O -> D_O' -> Comp (R_O' * S_O) := fun s_O d_O' => [d_O, s_W] <-$2 WD d_O'; [r_O, s_O] <-$2 oracle s_O d_O; r_O' <-$ WR s_W r_O; ret (r_O', s_O).
imports: FCF CompFold