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)

Uses (12)

Used by (1)