def stored
stelliferous@0.0.2.0 · proofs/traversal_lanes_witness.bend:98
import stelliferous@0.0.2.0/proofs/traversal_lanes_witness.bend as TraversalLanesWitness
import Base
import stelliferous@0.0.2.0/traversal_lanes.bend as Lanes
import stelliferous@0.0.2.0/traversal_cells.bend as Cells
import stelliferous@0.0.2.0/kernel_tile.bend as Tile
import stelliferous@0.0.2.0/proofs/storage_witness.bend as Witness
98def stored(~Context: Data,~map: Context -> F32 -> F32,+depth: Nat,-values: Array<F32>,-scratch: Array<Tile.Tile8>,+position: U32,+slot: U32,+context: Context,
99 values_witness: Witness.Witness(F32,depth,values),scratch_witness: Witness.Witness(Tile.Tile8,6n,scratch),
100 gathered: Gathered<values,Lanes.gather(~Context,~map,values,position,context)>) ->
101 Evidence<Context,depth,Cells.stored(~Array<F32>,~Tile.Tile8,~Context,~Lanes.scatter,~8,position,slot,context,scratch,Lanes.gather(~Context,~map,values,position,context))>:
102 match gathered:
103 case Gathered{cell,equation}:
104 +written = Witness.write(Tile.Tile8,6n,scratch,slot,cell,scratch_witness)
105 %Equal.sym(Array<F32> & Tile.Tile8,Lanes.gather(~Context,~map,values,position,context),(values,cell),equation) :
106 Evidence<Context,depth,Cells.stored(~Array<F32>,~Tile.Tile8,~Context,~Lanes.scatter,~8,position,slot,context,scratch,_)>
107 scattered(~Context,depth,values,Array.set(Tile.Tile8,scratch,slot,cell),position,slot,context,values_witness,written,
108 Witness.read(Tile.Tile8,6n,Array.set(Tile.Tile8,scratch,slot,cell),slot,written))