def update_current
stelliferous@0.0.2.0 · proofs/traversal_witness.bend:120
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
120def update_current(~Reader: Type,~Element: Data,~Value: Data,~Context: Data,
121 ~read: Reader -> Context -> U32 -> Reader & Value,~combine: Element -> Value -> Element,
122 ~destination: Context -> U32 -> U32,+depth: Nat,-reader: Reader,+position: U32,+context: Context,
123 -output: Array<Element>,-result: Array<Element> & Element,
124 output_evidence: Witness.Witness(Element,depth,output),observed: Witness.Read<Element,output,result>,
125 sample: Sample<Reader,Value,reader,read(reader,context,position)>) ->
126 StateEvidence<Reader,Element,Context,reader,depth,
127 Traversal.update_current(~Reader,~Element,~Value,~Context,~read,~combine,~destination,reader,position,context,result)>:
128 match observed:
129 case Witness.Read{value,equation}:
130 %Equal.sym(Array<Element> & Element,result,(output,value),equation) :
131 StateEvidence<Reader,Element,Context,reader,depth,
132 Traversal.update_current(~Reader,~Element,~Value,~Context,~read,~combine,~destination,reader,position,context,_)>
133 update_sample(~Reader,~Element,~Value,~Context,~combine,~destination,depth,reader,position,context,output,value,
134 read(reader,context,position),output_evidence,sample)