def preserves
stelliferous@0.0.2.0 · proofs/kernel_packing_certificate.bend:10
import stelliferous@0.0.2.0/proofs/kernel_packing_certificate.bend as KernelPackingCertificate
import Base
import stelliferous@0.0.2.0/kernel_spatial_packing.bend as Packing
import stelliferous@0.0.2.0/kernel_tile.bend as Tile
import stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend as PackingWitness
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
10def preserves(+depth: Nat,call: Packing.Call,-input: Array<F32>,-output: Array<Tile.Tile8>,input_certificate: Certificate.Certificate<F32,input>,
11 equation: {output == Tree.pack(Tile.Tile8,Certificate.normalized(Tile.Tile8,depth,Tree.reflect(Tile.Tile8,output))) : Array<Tile.Tile8>}) ->
12 TraversalWitness.ResultEvidence<Array<F32>,Tile.Tile8,input,depth,Packing.run(call,input,output)>:
13 Packing.Call{+count,+start,+h,+w,+k,+s,+p,+ow,+inner} = call
14 PackingWitness.pack(depth,count,start,input,output,h,w,k,s,p,ow,inner,Certificate.witness(F32,input,input_certificate),Certificate.witness_at(Tile.Tile8,depth,output,equation))