Reference · The Applied Higher-Order Functions catalogue
rainbow.algorithms.proofs.ahof.bayesian-optimization
AHoF O65 Bayesian Optimization Loop: iterate (fit surrogate -> maximize acquisition -> evaluate) and track the best observation seen. The loop's bookkeeping core is the incumbent update -- after evaluating a new candidate the best-so-far is the better of the old incumbent and the new value (maximization): update-incumbent best candidate = max(best, candidate) over the decidable rational order. Proved native and axiom-free: the incumbent update and a worked step with best 5 and candidate 8 -- the update adopts 8, 5 <= update 5 8, and 8 <= update 5 8. The general max inequalities, and that the best value is nondecreasing across iterations, are not proved here. Surrogate fitting (RBF/GP), acquisition maximization (EI/UCB), and the objective evaluation are executable / separately proved concerns; what is proved here is the incumbent bookkeeping. Requires nnrat/at-most, audit/decide-nnrat-at-most, nnrat/decide-at-most-true-sound, and logic/if-data (all in the D63 checkpoint). Scope (measured by the kernel): this module has 3 worked instances (statements about specific values). None of its theorems is a guarantee about the algorithm for all inputs; `lein verify rainbow.algorithms.proofs.ahof.bayesian-optimization` prints this classification.
bayesopt/update-incumbent
bayesopt/update-incumbent : (x₁ x₂ : ℚ≥0) → ℚ≥0
ℚ≥0 = nnrat/NonnegativeRational
bayesopt/adopts-better-candidate
bayesopt/adopts-better-candidate : → bayesopt/update-incumbent 5 8 = 8
= = equality/Eq
bayesopt/incumbent-never-regresses
bayesopt/incumbent-never-regresses : → 5 ≤ bayesopt/update-incumbent 5 8
≤ = nnrat/at-most
bayesopt/incumbent-dominates-candidate
bayesopt/incumbent-dominates-candidate : → 8 ≤ bayesopt/update-incumbent 5 8
≤ = nnrat/at-most