Section PRF_NA_impl_NAI.
Variable maxLists : nat.
Hypothesis maxLists_correct :
forall ls s_A,
In (ls, s_A) (getSupport A1) ->
(length ls <= maxLists)%nat.
Hypothesis A_state_EqDec : EqDec A_state.
Hypothesis RndR_wf : well_formed_comp RndR.
Hypothesis RndKey_wf : well_formed_comp RndKey.
Variable maxDistance : Rat.
Hypothesis maxDistance_correct :
forall i,
PRF_NA_Advantage (B1 nil _ _ A1 i) (B2 (fun lsD => k <-$ RndKey; ret (map (f k) lsD))
(fun lsD => [lsR, _] <-$2 oracleMap _ _ RndR_func nil lsD; ret lsR)
_ A2) <= maxDistance.

Theorem PRF_NAI_Advantage_eq_Hybrid:
PRF_NAI_Advantage == ListHybrid_Advantage
(fun lsD => k <-$ RndKey; ret (map (f k) lsD))
(fun lsD => [lsR, _] <-$2 oracleMap _ _ RndR_func nil lsD; ret lsR)
_ A1 A2.