symbolic-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Base.Protocol.Protostar.IVC

Synopsis

Documentation

data IVCProof f i m c d k Source #

Instances

Instances details
Generic (IVCProof f i m c d k2) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Associated Types

type Rep (IVCProof f i m c d k2) :: Type -> Type #

Methods

from :: IVCProof f i m c d k2 -> Rep (IVCProof f i m c d k2) x #

to :: Rep (IVCProof f i m c d k2) x -> IVCProof f i m c d k2 #

(Show f, Show (i f), Show m, Show c) => Show (IVCProof f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Methods

showsPrec :: Int -> IVCProof f i m c d k -> ShowS #

show :: IVCProof f i m c d k -> String #

showList :: [IVCProof f i m c d k] -> ShowS #

(NFData f, NFData (i f), NFData m, NFData c) => NFData (IVCProof f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Methods

rnf :: IVCProof f i m c d k -> () #

type Rep (IVCProof f i m c d k2) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

type Rep (IVCProof f i m c d k2) = D1 ('MetaData "IVCProof" "ZkFold.Base.Protocol.Protostar.IVC" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "IVCProof" 'PrefixI 'True) (S1 ('MetaSel ('Just "ivcpAccumulatorInstance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AccumulatorInstance f i c k2)) :*: S1 ('MetaSel ('Just "ivcpAccumulationProof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (d - 1) c))))

noIVCProof :: forall f i m c d k a. (Representable i, m ~ [f], HomomorphicCommit m c, KnownNat (d - 1), KnownNat (k - 1), KnownNat k, AlgebraicMap f i d a) => FiatShamir (CommitOpen a) -> IVCProof f i m c d k Source #

data IVCResult f i m c d k Source #

The final result of recursion and the final accumulator. Accumulation decider is an arithmetizable function which can be called on the final accumulator.

Constructors

IVCResult 

Fields

Instances

Instances details
Generic (IVCResult f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Associated Types

type Rep (IVCResult f i m c d k) :: Type -> Type #

Methods

from :: IVCResult f i m c d k -> Rep (IVCResult f i m c d k) x #

to :: Rep (IVCResult f i m c d k) x -> IVCResult f i m c d k #

(Show f, Show (i f), Show m, Show c) => Show (IVCResult f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Methods

showsPrec :: Int -> IVCResult f i m c d k -> ShowS #

show :: IVCResult f i m c d k -> String #

showList :: [IVCResult f i m c d k] -> ShowS #

(NFData f, NFData (i f), NFData m, NFData c) => NFData (IVCResult f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

Methods

rnf :: IVCResult f i m c d k -> () #

type Rep (IVCResult f i m c d k) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.IVC

type Rep (IVCResult f i m c d k) = D1 ('MetaData "IVCResult" "ZkFold.Base.Protocol.Protostar.IVC" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "IVCResult" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ivcInstance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (i f)) :*: S1 ('MetaSel ('Just "ivcCommits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector k c))) :*: (S1 ('MetaSel ('Just "ivcAccumulator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Accumulator f i m c k)) :*: S1 ('MetaSel ('Just "ivcProof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IVCProof f i m c d k)))))

ivcInitialize :: forall f i m c (d :: Natural) k a. (Representable i, m ~ [f], HomomorphicCommit m c, KnownNat (d - 1), KnownNat (k - 1), KnownNat k, AlgebraicMap f i d a) => FiatShamir (CommitOpen a) -> i f -> IVCResult f i m c d k Source #

ivcIterate :: forall f i p m c (d :: Natural) k a. (SpecialSoundProtocol f i p m c d k a, Ring f, HomomorphicCommit m c, RandomOracle (i f) f, RandomOracle c f, KnownNat k, AccumulatorScheme f i m c d k (FiatShamir (CommitOpen a))) => FiatShamir (CommitOpen a) -> IVCResult f i m c d k -> p f -> IVCResult f i m c d k Source #

ivcVerify :: forall f i m c d k a. AccumulatorScheme f i m c d k a => a -> IVCResult f i m c d k -> ((f, i f, Vector (k - 1) f, Vector k c, c), (Vector k c, c)) Source #