law blocks_step

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/blake/blake2b/blocks.bend:1846

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/blake/blake2b/blocks.bend as Blocks
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types.bend as T
import bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/blake2b.bend as I
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b.bend as S
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/blake/blake2b/array.bend as A

1846law blocks_step:
1847  for +n: Nat
1848  for +index: U32
1849  for +remain: Nat
1850  for +t: T.Counter
1851  for -a: Array<U32>
1852  for +h: T.Chain
1853  for view: Sigma<&2,&1,A.Tree,z => {a == A.thaw(z) : Array<U32>}>
1854  for recurse: @pair: (Array<U32> & T.Chain) -> {I.blocks(n,U32.add(index,32),remain,S.advance(t,128),pair) == S.blocks(n,U32.add(index,32),remain,S.advance(t,128),pair) : T.Chain}
1855  {I.blocks(1n+n,index,remain,t,(a,h)) == S.blocks(1n+n,index,remain,t,(a,h)) : T.Chain}

Uses (21)

Used by (1)