def store
stelliferous@0.0.2.0 · proofs/traversal_witness.bend:18
import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness
import Base
import stelliferous@0.0.2.0/traversal_array.bend as Traversal
import stelliferous@0.0.2.0/proofs/storage_witness.bend as Witness
18def store(~Reader: Type,~Element: Data,~Context: Data,~destination: Context -> U32 -> U32,
19 +depth: Nat,-reader: Reader,+position: U32,+context: Context,-output: Array<Element>,-result: Reader & Element,
20 output_evidence: Witness.Witness(Element,depth,output),sample: Sample<Reader,Element,reader,result>) ->
21 StateEvidence<Reader,Element,Context,reader,depth,Traversal.store(~Reader,~Element,~Context,~destination,position,context,output,result)>:
22 match sample:
23 case Sample{value,equation}:
24 %Equal.sym(Reader & Element,result,(reader,value),equation) :
25 StateEvidence<Reader,Element,Context,reader,depth,Traversal.store(~Reader,~Element,~Context,~destination,position,context,output,_)>
26 StateEvidence{Array.set(Element,output,destination(context,position),value),(position + 1 : U32),context,{==},
27 Witness.write(Element,depth,output,destination(context,position),value,output_evidence)}