def update_sample

stelliferous@0.0.2.0 · proofs/traversal_witness.bend:105

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

105def update_sample(~Reader: Type,~Element: Data,~Value: Data,~Context: Data,
106  ~combine: Element -> Value -> Element,~destination: Context -> U32 -> U32,
107  +depth: Nat,-reader: Reader,+position: U32,+context: Context,-output: Array<Element>,-current: Element,
108  -result: Reader & Value,output_evidence: Witness.Witness(Element,depth,output),
109  sample: Sample<Reader,Value,reader,result>) ->
110  StateEvidence<Reader,Element,Context,reader,depth,
111    Traversal.update_sample(~Reader,~Element,~Value,~Context,~combine,~destination,position,context,output,current,result)>:
112  match sample:
113    case Sample{value,equation}:
114      %Equal.sym(Reader & Value,result,(reader,value),equation) :
115        StateEvidence<Reader,Element,Context,reader,depth,
116          Traversal.update_sample(~Reader,~Element,~Value,~Context,~combine,~destination,position,context,output,current,_)>
117      StateEvidence{Array.set(Element,output,destination(context,position),combine(current,value)),(position + 1 : U32),context,{==},
118        Witness.write(Element,depth,output,destination(context,position),combine(current,value),output_evidence)}

Uses (13)

Used by (1)