def mapped_value

stelliferous@0.0.2.0 · proofs/traversal_witness.bend:176

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

176def mapped_value(~Element: Data,~Context: Data,~map: Context -> Element -> Element,
177  +depth: Nat,+position: U32,+context: Context,-output: Array<Element>,-result: Array<Element> & Element,
178  output_evidence: Witness.Witness(Element,depth,output),observed: Witness.Read<Element,output,result>) ->
179  MapEvidence<Element,Context,depth,Traversal.mapped_value(~Element,~Context,~map,position,context,result)>:
180  match observed:
181    case Witness.Read{value,equation}:
182      %Equal.sym(Array<Element> & Element,result,(output,value),equation) :
183        MapEvidence<Element,Context,depth,Traversal.mapped_value(~Element,~Context,~map,position,context,_)>
184      MapEvidence{Array.set(Element,output,position,map(context,value)),(position + 1 : U32),context,{==},
185        Witness.write(Element,depth,output,position,map(context,value),output_evidence)}

Uses (13)

Used by (1)