def update_refines_model

stelliferous@0.0.2.0 · proofs/traversal_array_refinement.bend:219

import stelliferous@0.0.2.0/proofs/traversal_array_refinement.bend as TraversalArrayRefinement
import Base
import stelliferous@0.0.2.0/traversal_array.bend as Traversal
import stelliferous@0.0.2.0/traversal_loop.bend as Loop
import stelliferous@0.0.2.0/proofs/storage_tree_model.bend as Tree
import stelliferous@0.0.2.0/proofs/loop_projection.bend as Projection

219def update_refines_model(~Reader: Type,~Model: Data,~Element: Data,~Sample: Data,~Context: Data,
220  ~pack_reader: Model -> Reader,~read: Reader -> Context -> U32 -> Reader & Sample,
221  ~sample: Model -> Context -> U32 -> Sample,~combine: Element -> Sample -> Element,~destination: Context -> U32 -> U32,
222  ~read_matches: @+reader: Model -> @+context: Context -> @+position: U32 ->
223    {read(pack_reader(reader),context,position) == (pack_reader(reader),sample(reader,context,position)) : Reader & Sample},
224  +count: Nat,+state: Traversal.State<&2,&2,Model,Tree.Tree<Element>,Context>) ->
225  {Traversal.update(~Reader,~Element,~Sample,~Context,~read,~combine,~destination,count,
226      represent(~Reader,~Model,~Element,~Context,~pack_reader,state)) ==
227    represent(~Reader,~Model,~Element,~Context,~pack_reader,
228      Loop.run(~Traversal.State<&2,&2,Model,Tree.Tree<Element>,Context>,
229        ~model_update_step(~Model,~Element,~Sample,~Context,~sample,~combine,~destination),count,state)) :
230    Traversal.State<&1,&1,Reader,Array<Element>,Context>}:
231  Projection.iteration_refines_model(~Traversal.State<&1,&1,Reader,Array<Element>,Context>,~Traversal.State<&2,&2,Model,Tree.Tree<Element>,Context>,
232    ~Traversal.update_step(~Reader,~Element,~Sample,~Context,~read,~combine,~destination),
233    ~model_update_step(~Model,~Element,~Sample,~Context,~sample,~combine,~destination),
234    ~represent(~Reader,~Model,~Element,~Context,~pack_reader),
235    ~update_step_refines_model(~Reader,~Model,~Element,~Sample,~Context,~pack_reader,~read,~sample,~combine,~destination,~read_matches),count,state)

Uses (14)

Used by (0)

No other definition uses this definition.