OAI/Combinatorics/EditApproximation/Numerics/VectorOptimizerWork.lean
33 declarations, 0 contain sorry, 0 declared as axioms
Materialized rational optimizer iterates. Finite vectors store the previous iterate and its gradient, and a scored scan stores the current best score. Counters charge rational arithmetic, comparisons, array accesses and array writes. Integer/rational bit costs are separate.
- def
OAI.EditApproximation.naturalPowerWithWorkline 17 - theorem
OAI.EditApproximation.naturalPowerWithWork_specline 22 - theorem
OAI.EditApproximation.vector_get_ofFnline 27 - theorem
OAI.EditApproximation.vectorMapWithWork_valueline 34Source documentation
A single materializing array pass. The operation count includes array construction, the value/counter traversals, and summing counters.
theorem vectorMapWithWork_value {α : Type*} (d : ℕ) (f : Fin d → α × ℕ) (i : Fin d) : (vectorMapWithWork d f).1.get i = (f i).1 := by …Mentions: OAI.EditApproximation.vectorMapWithWork
- theorem
OAI.EditApproximation.vectorMapWithWork_costline 39 - def
OAI.EditApproximation.vectorDotListWithWorkline 47Source documentation
Dot product over an explicit list of array indices.
def vectorDotListWithWork {d : ℕ} (left right : Vector ℚ d) : List (Fin d) → ℚ × ℕ | [] => (0, 0) | i :: indices => let rest := vectorDotListWithWork left right indices … - theorem
OAI.EditApproximation.vectorDotListWithWork_specline 53 - def
OAI.EditApproximation.vectorDotWithWorkline 62 - theorem
OAI.EditApproximation.vectorDotWithWork_specline 65 - def
OAI.EditApproximation.rationalGradientCellWithWorkline 70 - theorem
OAI.EditApproximation.rationalGradientCellWithWork_specline 76 - def
OAI.EditApproximation.vectorGradientWithWorkline 85 - theorem
OAI.EditApproximation.vectorGradientWithWork_valueline 88 - theorem
OAI.EditApproximation.vectorGradientWithWork_costline 93 - def
OAI.EditApproximation.scoredArgmaxWithWorkline 101Source documentation
A scored scan keeps the winning score instead of recomputing it. It retains the first maximizer, including ties.
def scoredArgmaxWithWork {α : Type*} (score : α → ℚ × ℕ) : List α → Option (α × ℚ) × ℕ | [] => (none, 0) | a :: rest => let tail := scoredArgmaxWithWork score rest … - theorem
OAI.EditApproximation.scoredArgmaxWithWork_valueline 111 - theorem
OAI.EditApproximation.scoredArgmaxWithWork_costline 122 - def
OAI.EditApproximation.vectorMaximizerWithWorkline 133 - theorem
OAI.EditApproximation.vectorMaximizerWithWork_valueline 138 - theorem
OAI.EditApproximation.vectorMaximizerWithWork_costline 152 - def
OAI.EditApproximation.materializedOptimizerWithWorkline 159 - theorem
OAI.EditApproximation.materializedOptimizerWithWork_valueline 171 - def
OAI.EditApproximation.materializedOptimizerStepBudgetline 189 - theorem
OAI.EditApproximation.materializedOptimizerWithWork_costline 192 - theorem
OAI.EditApproximation.optimizerStepArithmetic_boundline 206 - theorem
OAI.EditApproximation.move_outer_factorline 233 - theorem
OAI.EditApproximation.move_outer_factor_rightline 236 - theorem
OAI.EditApproximation.materializedOptimizerStepBudget_polynomialline 239 - theorem
OAI.EditApproximation.materializedOptimizerWithWork_polynomialline 257 - def
OAI.EditApproximation.materializedSelectionWithWorkline 291Source documentation
The final scan retains the original action label, so equal vectors and tied scores do not change which listed action is returned.
def materializedSelectionWithWork {α : Type*} {d : ℕ} (vertices : List (α × Vector ℚ d)) (linear : Vector ℚ d) (G j : ℕ) : Option α × ℕ := … - theorem
OAI.EditApproximation.materializedSelectionWithWork_valueline 298 - theorem
OAI.EditApproximation.materializedSelectionWithWork_costline 313 - theorem
OAI.EditApproximation.materializedSelectionWithWork_polynomialline 328