~/bend-docscommunity

proofs/storage_clone_certificate.bend source

proofs/storage_clone_certificate.bend on the hub · documented module

import Baseimport ./storage_certificate.bend as Certificateimport ./storage_witness.bend as Witnessimport ./traversal_witness.bend as TraversalWitnesstype Copies<-Element: Data,-pair: Array<Element> & Array<Element>> is Data:  Copies{left: Certificate.Certificate<Element,TraversalWitness.first(~Array<Element>,~Array<Element>,pair)>,right: Certificate.Certificate<Element,TraversalWitness.second(~Array<Element>,~Array<Element>,pair)>}def clone(~Element: Data,-input: Array<Element>,evidence: Certificate.Certificate<Element,input>,left: Certificate.Certificate<Element,input>,right: Certificate.Certificate<Element,input>) ->  Copies<Element,Array.clone(Element,input)>:  Certificate.Certificate{+depth,equation} = evidence  %Equal.sym(Array<Element> & Array<Element>,Array.clone(Element,input),(input,input),    Witness.clone(Element,depth,input,Certificate.witness_at(Element,depth,input,equation))) : Copies<Element,_>  Copies{left,right}