fact: Definition mk_rewindable_P_oracle x w (A : Set)(eqd : EqDec A)(f1 : Commitment -> P_respond_oracle -> Comp (A * bool))(B : Set)(f2 : A -> Commitment -> P_respond_oracle -> Comp B) : Comp B := [p1, p2] <-$2 Repeat ([s_P, a] <-$2 P_commit x w; p <-$ (f1 a (P_respond s_P)); ret (p, (s_P, a))) (fun p => (snd (fst p))); e <- fst p1; s_P <- fst p2; a <- snd p2; f2 e a (P_respond s_P).
imports: Crypto FCF RndNat Asymptotic