fact: Definition Fiat_Shamir : package Sigma_locs [interface #val #[ INIT ] : 'unit → 'unit ; #val #[ QUERY ] : 'query → 'random ] [interface #val #[ VERIFY ] : chTranscript → 'bool ; #val #[ RUN ] : chRelation → chTranscript ] := [package #def #[ VERIFY ] (t : chTranscript) : 'bool { #import {sig #[ QUERY ] : 'query → 'random } as RO_query ;; let '(h,a,e,z) := t in e ← RO_query (prod_assoc (h, a)) ;; ret (otf (Verify h a e z)) } ; #def #[ RUN ] (hw : chRelation) : chTranscript { #import {sig #[ INIT ] : 'unit → 'unit } as RO_init ;; #import {sig #[ QUERY ] : 'query → 'random } as RO_query ;; let '(h,w) := hw in #assert (R (otf h) (otf w)) ;; a ← Commit h w ;; RO_init Datatypes.tt ;; e ← RO_query (prod_assoc (h, a)) ;; z ← Response h w a e ;; @ret choiceTranscript (h,a,e,z) } ].
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum fingroup.fingroup solvable.cyclic prime ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb UniformStateProb pkg_core_definition choice_type pkg_composition pkg_rhl Package Prelude RandomOracle) Coq(Utf8) extructures(ord fset fmap) Equations(Equations)