def equivalent_sequence_read
import stelliferous@0.0.2.0/proofs/storage_refinement.bend as StorageRefinementimport Base
import stelliferous@0.0.2.0/storage_buffer.bend as Storage
425def equivalent_sequence_read(~Element: Data,+fallback: Element,+length: Nat,+values: List<&2,Element>,
426 +left: SequenceEvidence<Element,length,values>,+right: SequenceEvidence<Element,length,values>,
427 +index: U32,+native_length: U32,+length_exact: {U32.to_nat(native_length) == length : Nat}) ->
428 {Storage.read_or(Element,fallback,sequence_owner(Element,length,values,left),index,native_length) ==
429 replace_read_owner(~Array<Element>,~Element,sequence_owner(Element,length,values,left),
430 Storage.read_or(Element,fallback,sequence_owner(Element,length,values,right),index,native_length)) : Array<Element> & Element}:
431 %Equal.sym(Array<Element> & Element,
432 Storage.read_or(Element,fallback,sequence_owner(Element,length,values,right),index,native_length),
433 (sequence_owner(Element,length,values,right),Maybe.default(&2,Element,List.get(&2,Element,values,U32.to_nat(index)),fallback)),
434 read_sequence_evidence(~Element,fallback,length,values,right,index,native_length,length_exact)) :
435 {Storage.read_or(Element,fallback,sequence_owner(Element,length,values,left),index,native_length) ==
436 replace_read_owner(~Array<Element>,~Element,sequence_owner(Element,length,values,left),_) : Array<Element> & Element}
437 read_sequence_evidence(~Element,fallback,length,values,left,index,native_length,length_exact)
Uses (15)
Used by (0)
No other definition uses this definition.