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,{==})