def tail

stelliferous@0.0.2.0 · proofs/kernel_tile_witness.bend:74

import stelliferous@0.0.2.0/proofs/kernel_tile_witness.bend as KernelTileWitness
import Base
import stelliferous@0.0.2.0/kernel_block.bend as Block
import stelliferous@0.0.2.0/kernel_tile.bend as Tile
import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness

74def tail(~State: Type,~Context: Data,~Evidence: @-state: State -> Data,
75  ~read: State -> Context -> Nat -> State & F32,
76  ~read_preserves: @-state: State -> @context: Context -> @index: Nat -> Evidence(state) -> TraversalWitness.Sample<State,F32,state,read(state,context,index)>,
77  -state: State,+context: Context,-first: State & F32,evidence: Evidence(state),sample: TraversalWitness.Sample<State,F32,state,first>) ->
78  TraversalWitness.Sample<State,Tile.Tile8,state,Tile.read_tail(~State,~Context,~read,first,context)>:
79  TraversalWitness.Sample{head,equation} = sample
80  %Equal.sym(State & F32,first,(state,head),equation) :
81    TraversalWitness.Sample<State,Tile.Tile8,state,Tile.read_tail(~State,~Context,~read,_,context)>
82  finish(~State,state,
83    Block.read_pair(~State,~Tile.HeadContext<Context>,~Block.Twin<Block.Twin<F32>>,
84      ~Block.read_pair(~State,~Tile.HeadContext<Context>,~Block.Twin<F32>,
85        ~Block.read_pair(~State,~Tile.HeadContext<Context>,~F32,~Tile.read_with_head(~State,~Context,~read),~1n),~2n),~4n,state,Tile.HeadContext{head,context},0n),
86    eight_head(~State,~Context,~Evidence,~read,~read_preserves,state,context,head,evidence))

Uses (14)

Used by (3)