TraversalCertificate.operation_source: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/proofs/traversal_certificate.bend as TraversalCertificate Lines 55-68 of stelliferous@0.0.2.0/proofs/traversal_certificate.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/proofs/traversal_certificate.bend&start_line=55&end_line=68 import Base import stelliferous@0.0.2.0/proofs/storage_tree_model.bend as Tree import stelliferous@0.0.2.0/proofs/storage_certificate.bend as Certificate import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness # Metadata preparation belongs inside the erased preservation proof. Passing a # prepared cursor to a live certificate helper would retain or rebuild it. def operation_source(~Reader: Type,~Element: Data,~Metadata: Data,~ReaderCertificate: @-reader: Reader -> Data, ~operation: Metadata -> Reader -> Array -> Reader & Array, ~preserves: @+depth: Nat -> @metadata: Metadata -> @-reader: Reader -> @-output: Array -> ReaderCertificate(reader) -> {output == Tree.pack(Element,Certificate.normalized(Element,depth,Tree.reflect(Element,output))) : Array} -> TraversalWitness.ResultEvidence, metadata: Metadata,-reader: Reader,-output: Array,proof_certificate: ReaderCertificate(reader),reader_certificate: ReaderCertificate(reader),depth: Nat, equation: {output == Tree.pack(Element,Certificate.normalized(Element,depth,Tree.reflect(Element,output))) : Array}) -> ReaderCertificate(TraversalWitness.first(~Reader,~Array,operation(metadata,reader,output))): %Equal.sym(Reader,TraversalWitness.first(~Reader,~Array,operation(metadata,reader,output)),reader, TraversalWitness.source_unchanged(~Reader,~Element,reader,depth,operation(metadata,reader,output), preserves(depth,metadata,reader,output,proof_certificate,equation))) : ReaderCertificate(_) reader_certificate Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/storage_certificate.bend&name=normalized https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/storage_tree_model.bend&name=pack https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/storage_tree_model.bend&name=reflect https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/traversal_witness.bend&name=ResultEvidence https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/traversal_witness.bend&name=first https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/traversal_witness.bend&name=source_unchanged