def read_encoded_sequence

stelliferous@0.0.2.0 · proofs/storage_refinement.bend:409

import stelliferous@0.0.2.0/proofs/storage_refinement.bend as StorageRefinement
import Base
import stelliferous@0.0.2.0/storage_buffer.bend as Storage

409# The logical address conversion is separate from the physical owner.
410def read_encoded_sequence(~Element: Data,+fallback: Element,+length: Nat,+values: List<&2,Element>,
411  +evidence: SequenceEvidence<Element,length,values>,+address: U32,+index: Nat,+native_length: U32,
412  address_exact: {U32.to_nat(address) == index : Nat},length_exact: {U32.to_nat(native_length) == length : Nat}) ->
413  {Storage.read_or(Element,fallback,sequence_owner(Element,length,values,evidence),address,native_length) ==
414    (sequence_owner(Element,length,values,evidence),Maybe.default(&2,Element,List.get(&2,Element,values,index),fallback)) : Array<Element> & Element}:
415  %address_exact :
416    {Storage.read_or(Element,fallback,sequence_owner(Element,length,values,evidence),address,native_length) ==
417      (sequence_owner(Element,length,values,evidence),Maybe.default(&2,Element,List.get(&2,Element,values,_),fallback)) : Array<Element> & Element}
418  read_sequence_evidence(~Element,fallback,length,values,evidence,address,native_length,length_exact)

Uses (13)

Used by (0)

No other definition uses this definition.