Documentation

Complexitylib.Circuits.Encoding.FixedWidth.Evaluation.Output.Internal

Fixed-width evaluator output selection -- proof internals #

theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.vars_formula_lt_internal (inputWidth gateBound wire : ) :
wire (formula inputWidth gateBound).varswire < fullAvailable inputWidth gateBound
theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.eval_formula_of_code_internal {inputWidth gateBound : } (description : Description inputWidth gateBound) (hpositive : description.Positive) (assignment : Bool) (hcode : ∀ (coordinate : Fin (codeWidth inputWidth gateBound)), assignment coordinate = description.encode coordinate) :
BoolFormula.eval assignment (formula inputWidth gateBound) = assignment (EvaluationLayout.stepOutputWire inputWidth gateBound (lastActiveSlot description hpositive))
theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.some_eval_formula_prefixResult_internal {inputWidth gateBound : } {description : Description inputWidth gateBound} (hdescription : description.WellFormed) (input : BitString inputWidth) (result : EvaluationSequence.PrefixResult description input gateBound ) :
some (BoolFormula.eval (memoAssignment result.circuitWires) (formula inputWidth gateBound)) = result.rawWires[inputWidth + (lastActiveSlot description )]?
theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.some_eval_formula_eq_eval?_internal {inputWidth gateBound : } {description : Description inputWidth gateBound} (hdescription : description.WellFormed) (input : BitString inputWidth) (result : EvaluationSequence.PrefixResult description input gateBound ) :
some (BoolFormula.eval (memoAssignment result.circuitWires) (formula inputWidth gateBound)) = description.toRawCircuit.eval? input.toList
theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.length_circuit_internal (inputWidth gateBound : ) :
List.length (circuit inputWidth gateBound) = EvaluationLayout.prefixSize inputWidth gateBound gateBound + selectorSize gateBound
theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.outputWire_eq_internal (inputWidth gateBound : ) :
outputWire inputWidth gateBound = EvaluationLayout.baseWireCount inputWidth gateBound + List.length (circuit inputWidth gateBound) - 1
noncomputable def Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.resultInternal {inputWidth gateBound : } {description : Description inputWidth gateBound} (hdescription : description.WellFormed) (input : BitString inputWidth) :
Result description input

Construct the complete fixed-width evaluation witness.

Equations
Instances For
    theorem Complexity.CircuitCode.FixedWidth.Description.EvaluationOutput.eval?_circuit_internal {inputWidth gateBound : } {description : Description inputWidth gateBound} (hdescription : description.WellFormed) (input : BitString inputWidth) :
    (circuit inputWidth gateBound).eval? (EvaluationSequence.combinedInput description input).toList = description.toRawCircuit.eval? input.toList