def observed

stelliferous@0.0.2.0 · proofs/traversal_lanes_certificate.bend:42

import stelliferous@0.0.2.0/proofs/traversal_lanes_certificate.bend as TraversalLanesCertificate
import Base
import stelliferous@0.0.2.0/traversal_lanes.bend as Lanes
import stelliferous@0.0.2.0/traversal_array.bend as Traversal
import stelliferous@0.0.2.0/proofs/storage_tree_model.bend as Tree
import stelliferous@0.0.2.0/proofs/storage_shape.bend as Shape
import stelliferous@0.0.2.0/proofs/storage_refinement.bend as StorageLaws

42def observed(~Context: Data,~operation: Context -> F32 -> F32,+count: Nat,+position: U32,+context: Context,-values: Array<F32>,+depth: Nat,
43  balanced: Shape.Balanced(F32,depth,Tree.reflect(F32,values)),observation: StorageLaws.Observation<F32,values>) ->
44  {Lanes.map_when(~Context,~operation,Lanes.covered(depth,position,count),count,position,context,values) ==
45    Traversal.map_in_place(~F32,~Context,~operation,count,position,context,values) : Array<F32>}:
46  StorageLaws.Observation{+tree,packed,reflected} = observation
47  %packed :
48    {Lanes.map_when(~Context,~operation,Lanes.covered(depth,position,count),count,position,context,_) ==
49      Traversal.map_in_place(~F32,~Context,~operation,count,position,context,_) : Array<F32>}
50  refines(~Context,~operation,Lanes.covered(depth,position,count),count,position,context,tree,depth,
51    %Equal.sym(Tree.Tree<F32>,tree,Tree.reflect(F32,values),reflected) : Shape.Balanced(F32,depth,_) balanced,{==})

Uses (13)

Used by (1)