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

ZkFold.Base.Protocol.IVC.Accumulator

Documentation

data AccumulatorInstance k i c f Source #

Constructors

AccumulatorInstance 

Fields

Instances

Instances details
(HashAlgorithm algo f, RandomOracle algo f f, RandomOracle algo (i f) f, RandomOracle algo (c f) f) => RandomOracle (algo :: k1) (AccumulatorInstance k2 i c f) f Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

oracle :: AccumulatorInstance k2 i c f -> f Source #

Generic1 (AccumulatorInstance k i c :: Type -> Type) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Associated Types

type Rep1 (AccumulatorInstance k i c) :: k -> Type #

Methods

from1 :: forall (a :: k0). AccumulatorInstance k i c a -> Rep1 (AccumulatorInstance k i c) a #

to1 :: forall (a :: k0). Rep1 (AccumulatorInstance k i c) a -> AccumulatorInstance k i c a #

(Representable i, Representable c, KnownNat k, KnownNat (k - 1)) => Representable (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Associated Types

type Rep (AccumulatorInstance k i c) #

Methods

tabulate :: (Rep (AccumulatorInstance k i c) -> a) -> AccumulatorInstance k i c a #

index :: AccumulatorInstance k i c a -> Rep (AccumulatorInstance k i c) -> a #

(Foldable i, Foldable c) => Foldable (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

fold :: Monoid m => AccumulatorInstance k i c m -> m #

foldMap :: Monoid m => (a -> m) -> AccumulatorInstance k i c a -> m #

foldMap' :: Monoid m => (a -> m) -> AccumulatorInstance k i c a -> m #

foldr :: (a -> b -> b) -> b -> AccumulatorInstance k i c a -> b #

foldr' :: (a -> b -> b) -> b -> AccumulatorInstance k i c a -> b #

foldl :: (b -> a -> b) -> b -> AccumulatorInstance k i c a -> b #

foldl' :: (b -> a -> b) -> b -> AccumulatorInstance k i c a -> b #

foldr1 :: (a -> a -> a) -> AccumulatorInstance k i c a -> a #

foldl1 :: (a -> a -> a) -> AccumulatorInstance k i c a -> a #

toList :: AccumulatorInstance k i c a -> [a] #

null :: AccumulatorInstance k i c a -> Bool #

length :: AccumulatorInstance k i c a -> Int #

elem :: Eq a => a -> AccumulatorInstance k i c a -> Bool #

maximum :: Ord a => AccumulatorInstance k i c a -> a #

minimum :: Ord a => AccumulatorInstance k i c a -> a #

sum :: Num a => AccumulatorInstance k i c a -> a #

product :: Num a => AccumulatorInstance k i c a -> a #

(Traversable i, Traversable c) => Traversable (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

traverse :: Applicative f => (a -> f b) -> AccumulatorInstance k i c a -> f (AccumulatorInstance k i c b) #

sequenceA :: Applicative f => AccumulatorInstance k i c (f a) -> f (AccumulatorInstance k i c a) #

mapM :: Monad m => (a -> m b) -> AccumulatorInstance k i c a -> m (AccumulatorInstance k i c b) #

sequence :: Monad m => AccumulatorInstance k i c (m a) -> m (AccumulatorInstance k i c a) #

(Functor i, Functor c) => Functor (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

fmap :: (a -> b) -> AccumulatorInstance k i c a -> AccumulatorInstance k i c b #

(<$) :: a -> AccumulatorInstance k i c b -> AccumulatorInstance k i c a #

(Representable i, Representable c, KnownNat k, KnownNat (k - 1)) => Distributive (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

distribute :: Functor f => f (AccumulatorInstance k i c a) -> AccumulatorInstance k i c (f a) #

collect :: Functor f => (a -> AccumulatorInstance k i c b) -> f a -> AccumulatorInstance k i c (f b) #

distributeM :: Monad m => m (AccumulatorInstance k i c a) -> AccumulatorInstance k i c (m a) #

collectM :: Monad m => (a -> AccumulatorInstance k i c b) -> m a -> AccumulatorInstance k i c (m b) #

Generic (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Associated Types

type Rep (AccumulatorInstance k i c f) :: Type -> Type #

Methods

from :: AccumulatorInstance k i c f -> Rep (AccumulatorInstance k i c f) x #

to :: Rep (AccumulatorInstance k i c f) x -> AccumulatorInstance k i c f #

(Show f, Show (i f), Show (c f)) => Show (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

(NFData f, NFData (i f), NFData (c f)) => NFData (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

rnf :: AccumulatorInstance k i c f -> () #

(Eq f, Eq (i f), Eq (c f)) => Eq (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

(==) :: AccumulatorInstance k i c f -> AccumulatorInstance k i c f -> Bool #

(/=) :: AccumulatorInstance k i c f -> AccumulatorInstance k i c f -> Bool #

(KnownNat (k - 1), KnownNat k, SymbolicData f, SymbolicData (i f), SymbolicData (c f), Context f ~ Context (c f), Context f ~ Context (i f), Support f ~ Support (c f), Support f ~ Support (i f)) => SymbolicData (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Associated Types

type Context (AccumulatorInstance k i c f) :: (Type -> Type) -> Type Source #

type Support (AccumulatorInstance k i c f) Source #

type Layout (AccumulatorInstance k i c f) :: Type -> Type Source #

type Payload (AccumulatorInstance k i c f) :: Type -> Type Source #

type Rep1 (AccumulatorInstance k i c :: Type -> Type) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Rep1 (AccumulatorInstance k i c :: Type -> Type) = D1 ('MetaData "AccumulatorInstance" "ZkFold.Base.Protocol.IVC.Accumulator" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "AccumulatorInstance" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_pi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 i) :*: S1 ('MetaSel ('Just "_c") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Vector k :.: Rec1 c)) :*: (S1 ('MetaSel ('Just "_r") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (Vector (k - 1))) :*: (S1 ('MetaSel ('Just "_e") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 c) :*: S1 ('MetaSel ('Just "_mu") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))))
type Rep (AccumulatorInstance k i c) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Rep (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Rep (AccumulatorInstance k i c f) = D1 ('MetaData "AccumulatorInstance" "ZkFold.Base.Protocol.IVC.Accumulator" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "AccumulatorInstance" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_pi") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (i f)) :*: S1 ('MetaSel ('Just "_c") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector k (c f)))) :*: (S1 ('MetaSel ('Just "_r") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (k - 1) f)) :*: (S1 ('MetaSel ('Just "_e") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (c f)) :*: S1 ('MetaSel ('Just "_mu") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))))
type Context (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Layout (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Payload (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Support (AccumulatorInstance k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

r :: forall k i c f. Lens' (AccumulatorInstance k i c f) (Vector ((-) k 1) f) Source #

pi :: forall k i c f i. Lens (AccumulatorInstance k i c f) (AccumulatorInstance k i c f) (i f) (i f) Source #

mu :: forall k i c f. Lens' (AccumulatorInstance k i c f) f Source #

e :: forall k i c f. Lens' (AccumulatorInstance k i c f) (c f) Source #

c :: forall k i c f. Lens' (AccumulatorInstance k i c f) (Vector k (c f)) Source #

data Accumulator k i c f Source #

Constructors

Accumulator 

Fields

Instances

Instances details
Generic (Accumulator k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Associated Types

type Rep (Accumulator k i c f) :: Type -> Type #

Methods

from :: Accumulator k i c f -> Rep (Accumulator k i c f) x #

to :: Rep (Accumulator k i c f) x -> Accumulator k i c f #

(Show f, Show (i f), Show (c f)) => Show (Accumulator k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

showsPrec :: Int -> Accumulator k i c f -> ShowS #

show :: Accumulator k i c f -> String #

showList :: [Accumulator k i c f] -> ShowS #

(NFData f, NFData (i f), NFData (c f)) => NFData (Accumulator k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

Methods

rnf :: Accumulator k i c f -> () #

type Rep (Accumulator k i c f) Source # 
Instance details

Defined in ZkFold.Base.Protocol.IVC.Accumulator

type Rep (Accumulator k i c f) = D1 ('MetaData "Accumulator" "ZkFold.Base.Protocol.IVC.Accumulator" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "Accumulator" 'PrefixI 'True) (S1 ('MetaSel ('Just "_x") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AccumulatorInstance k i c f)) :*: S1 ('MetaSel ('Just "_w") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector k [f]))))

x :: forall k i c f i c. Lens (Accumulator k i c f) (Accumulator k i c f) (AccumulatorInstance k i c f) (AccumulatorInstance k i c f) Source #

w :: forall k i c f. Lens' (Accumulator k i c f) (Vector k [f]) Source #

emptyAccumulator :: forall d k a i p c f. (KnownNat (d + 1), KnownNat (k - 1), KnownNat k, Representable i, HomomorphicCommit [f] (c f), Ring f, Scale a f) => Predicate a i p -> Accumulator k i c f Source #

emptyAccumulatorInstance :: forall d k a i p c f. (KnownNat (d + 1), KnownNat (k - 1), KnownNat k, Representable i, HomomorphicCommit [f] (c f), Ring f, Scale a f) => Predicate a i p -> AccumulatorInstance k i c f Source #