StorageRefinement.lift_observation: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/proofs/storage_refinement.bend as StorageRefinement Lines 471-481 of stelliferous@0.0.2.0/proofs/storage_refinement.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/proofs/storage_refinement.bend&start_line=471&end_line=481 import Base import stelliferous@0.0.2.0/proofs/storage_tree_model.bend as Tree # Transport a concrete owner observation into a proposition checked on trees. # The proposition and canonical proof are proof-only; they are not loop inputs. def lift_observation(~Element: Data,~Context: Data, ~Proposition: Context -> @-storage: Array -> @-tree: Tree.Tree -> Type, +context: Context,-storage: Array,observation: Observation, canonical: @+tree: Tree.Tree -> Proposition(context,Tree.pack(Element,tree),tree)) -> Proposition(context,storage,Tree.reflect(Element,storage)): Observation{+tree,packed,reflected} = observation %reflected : Proposition(context,storage,_) %packed : Proposition(context,_,tree) canonical(tree) Uses (5): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/storage_refinement.bend&name=Observation https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/storage_tree_model.bend&name=Tree 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