Documentation

Complexitylib.Circuits.Unrolling.Transition.Fragment.Internal.ArrayEvaluation

Array-level evaluation of packed transition fragments #

This internal adapter derives the abstract assignment expected by the formula compiler directly from the concrete input array. Consequently, clients can evaluate a packed transition using an encoded configuration and an actual choice wire, without separately constructing a total Boolean assignment.

theorem Complexity.CircuitUnrolling.evalAux?_stepFragment_of_encodes_internal {k : } (tm : NTM k) (T configBase choiceWire available : ) [NeZero available] (choice : Bool) (wires : Array Bool) (c : Cfg k tm.Q) (hsize : wires.size = available) (hchoice : wires[choiceWire]? = some choice) (hconfig : EncodesConfig tm T configBase wires c) (hchoiceBound : choiceWire < available) (hconfigBound : configBase + configWidth tm T available) (hheads : HeadsLt T c) :
∃ (result : Array Bool), (stepFragment tm T configBase choiceWire available).evalAux? wires = some result result.size = wires.size + stepFragmentSize tm T configBase choiceWire (∀ i < wires.size, result[i]? = wires[i]?) EncodesConfig tm T (stepOutputBase tm T configBase choiceWire available) result (choiceStep tm choice c)

Evaluate one packed step directly from a concrete encoded configuration and choice wire.