~/bend-docscommunity

proofs/traversal_visit_witness.bend checks

raw source on the hub · import stelliferous@0.0.2.0/proofs/traversal_visit_witness.bend as Traversal_visit_witness

Shape and owner preservation for traversals with consumed cursor state.

5 imports
import Base
import ../traversal_array.bend as Traversal
import ../traversal_loop.bend as Loop
import ./storage_witness.bend as Witness
import ./traversal_witness.bend as TraversalWitness

Types

type Sample source · line 8 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-reader:Reader -> @-result:Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>) -> Data

Templates

template store source · line 11 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @+depth:Nat -> @-reader:Reader -> @+position:U32 -> @-output:Array<Element> -> @-result:Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>) -> @output_evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Witness(Element, depth, output) -> @sample:Sample<Reader, Element, Context, reader, result> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_store(Reader, Element, Context, position, output, result)>

template step source · line 20 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-ReaderEvidence:(@-reader:Reader -> Data) -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-read_preserves:(@-reader:Reader -> @context:Context -> @_:ReaderEvidence(reader) -> Sample<Reader, Element, Context, reader, read(reader, context)>) -> @+depth:Nat -> @-reader:Reader -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &1, Reader, Array<Element>, Context> -> @reader_evidence:ReaderEvidence(reader) -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_step(Reader, Element, Context, read, state)>

template spread_store source · line 32 · raw

@-Element:Data -> @-Context:Data -> @+depth:Nat -> @-input:Array<Element> -> @+position:U32 -> @-output:Array<Element> -> @target:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Target<Context> -> @-result:Pair(Array<Element>, Element) -> @output_evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Witness(Element, depth, output) -> @observed:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Read<Element, input, result> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Array<Element>, Element, Context, input, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.spread_store(Element, Context, position, output, target, result)>

template spread_step source · line 41 · raw

@-Element:Data -> @-Context:Data -> @-target:(@_:Context -> 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Target<Context>) -> @+depth:Nat -> @-input:Array<Element> -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &1, Array<Element>, Array<Element>, Context> -> @input_evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.ArrayWitness<Element, input> -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Array<Element>, Element, Context, input, depth, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Array<Element>, Element, Context, input, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.spread_step(Element, Context, target, state)>

template update_sample source · line 52 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-combine:(@_:Element -> @_:Element -> Element) -> @+depth:Nat -> @-reader:Reader -> @+position:U32 -> @-output:Array<Element> -> @-current:Element -> @-result:Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>) -> @output_evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Witness(Element, depth, output) -> @sample:Sample<Reader, Element, Context, reader, result> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_update_sample(Reader, Element, Context, combine, position, output, current, result)>

template update_current source · line 63 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-combine:(@_:Element -> @_:Element -> Element) -> @+depth:Nat -> @-reader:Reader -> @position:U32 -> @context:Context -> @-output:Array<Element> -> @-result:Pair(Array<Element>, Element) -> @output_evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Witness(Element, depth, output) -> @observed:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/storage_witness.Read<Element, output, result> -> @sample:Sample<Reader, Element, Context, reader, read(reader, context)> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_update_current(Reader, Element, Context, read, combine, position, context, reader, result)>

template update_step source · line 73 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-ReaderEvidence:(@-reader:Reader -> Data) -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-combine:(@_:Element -> @_:Element -> Element) -> @-read_preserves:(@-reader:Reader -> @context:Context -> @_:ReaderEvidence(reader) -> Sample<Reader, Element, Context, reader, read(reader, context)>) -> @+depth:Nat -> @-reader:Reader -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &1, Reader, Array<Element>, Context> -> @reader_evidence:ReaderEvidence(reader) -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_update_step(Reader, Element, Context, read, combine, state)>

template update source · line 86 · raw

@-Reader:Type -> @-Element:Data -> @-Context:Data -> @-ReaderEvidence:(@-reader:Reader -> Data) -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-combine:(@_:Element -> @_:Element -> Element) -> @-read_preserves:(@-reader:Reader -> @context:Context -> @_:ReaderEvidence(reader) -> Sample<Reader, Element, Context, reader, read(reader, context)>) -> @+depth:Nat -> @count:Nat -> @-reader:Reader -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &1, Reader, Array<Element>, Context> -> @+reader_evidence:ReaderEvidence(reader) -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.StateEvidence<Reader, Element, Context, reader, depth, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_update(Reader, Element, Context, read, combine, count, state)>

template fold_value source · line 99 · raw

@-Reader:Type -> @-Element:Data -> @-Accumulator:Data -> @-Context:Data -> @-combine:(@_:Accumulator -> @_:Element -> Accumulator) -> @-reader:Reader -> @+position:U32 -> @-accumulator:Accumulator -> @-result:Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>) -> @sample:Sample<Reader, Element, Context, reader, result> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.FoldEvidence<Reader, Accumulator, Context, reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_fold_value(Reader, Element, Accumulator, Context, combine, position, accumulator, result)>

template fold_step source · line 108 · raw

@-Reader:Type -> @-Element:Data -> @-Accumulator:Data -> @-Context:Data -> @-ReaderEvidence:(@-reader:Reader -> Data) -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-combine:(@_:Accumulator -> @_:Element -> Accumulator) -> @-read_preserves:(@-reader:Reader -> @context:Context -> @_:ReaderEvidence(reader) -> Sample<Reader, Element, Context, reader, read(reader, context)>) -> @-reader:Reader -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &2, Reader, Accumulator, Context> -> @reader_evidence:ReaderEvidence(reader) -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.FoldEvidence<Reader, Accumulator, Context, reader, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.FoldEvidence<Reader, Accumulator, Context, reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_fold_step(Reader, Element, Accumulator, Context, read, combine, state)>

template fold_run source · line 120 · raw

@-Reader:Type -> @-Element:Data -> @-Accumulator:Data -> @-Context:Data -> @-ReaderEvidence:(@-reader:Reader -> Data) -> @-read:(@_:Reader -> @_:Context -> Pair(Reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.Visited<Context, Element>)) -> @-combine:(@_:Accumulator -> @_:Element -> Accumulator) -> @-read_preserves:(@-reader:Reader -> @context:Context -> @_:ReaderEvidence(reader) -> Sample<Reader, Element, Context, reader, read(reader, context)>) -> @count:Nat -> @-reader:Reader -> @-state:0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.State<&1, &2, Reader, Accumulator, Context> -> @+reader_evidence:ReaderEvidence(reader) -> @evidence:0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.FoldEvidence<Reader, Accumulator, Context, reader, state> -> 0x9be3b13bf249759bc81e1958bcd1a4c0/proofs/traversal_witness.FoldEvidence<Reader, Accumulator, Context, reader, 0x9be3b13bf249759bc81e1958bcd1a4c0/traversal_array.visit_fold(Reader, Element, Accumulator, Context, read, combine, count, state)>