Finite deterministic spaces, signals, budgets, and evidence-bound reports.
Core-1 Optimize Preview
Status: normative preview; exhaustive and compiled batched executors implemented
C1-OPT-001 — Surface. The canonical types are finite Space<T>,
Signal<Query,Observation>, unforgeable Search<Self>,
Optimization<Signature>, Budget, Optimizer, and
OptimizationReport<Readout>.
C1-OPT-002 — Finite profile. Spaces compose from finite sets, enums, bounded integer ranges, sums, products, and records. Canonical space order is part of problem identity and provides the final tie-break.
C1-OPT-003 — Hard and soft constraints. accept is a hard gate and never
degrades into preference. follow supplies preference. Deterministic proposals
may affect canonical order only when included in problem identity.
C1-OPT-004 — Evidence and budget. Budgets separately count candidate
evaluations and signal observations; ambient-time budgets are deferred.
Decision<T> cannot escape the optimization body. Reports bind problem and
engine identities, observations/evidence, budget use, termination reason, and
selected readout.
C1-OPT-005 — Executors. Conformance requires an exhaustive canonical reference enumerator and an independent compiled batched search/evaluator. Batching or compute acceleration cannot change observation or tie-break order.
The implemented source profile lowers straight-line checked integer signals to
closed scalar regions. Optimization.problem binds a problem ID, typed
accept/follow signals, and separate budgets in a dedicated problem/evidence
row; Optimizer.run is a distinct checked algorithm boundary that requires
live optimizer authority and returns OptimizationReport. The first
source-owned space form is the nonempty inclusive Int32-bounded
Space.range(lower, upper), whose values are observed as Int64 candidates in
ascending canonical order. The range is stored in the problem region and is
therefore not supplied or replaceable at runtime. Recursive exhaustive
evaluation and sequential batched materialization consume that same graph and
preserve scalar fault behavior. A finite problem may bind accept and follow
directly to two such checked source signals: candidates are supplied as message
arguments, accept must return exactly zero or one, and both observations
consume the ordinary separate budgets and appear in the ordinary report.
Unsupported control-flow bodies and the remaining finite-space compositions
remain unmaterialized. Same-domain scalar calls with zero, one, or two
arguments are checked region nodes; both executors resolve local and
package-linked targets and fail deterministically at the common call-depth
bound.
The embedding boundary issues an opaque zl_optimizer_v2 from
zl_optimizer_open_v2. Raw finite problems and source-backed signal problems
both borrow that handle; an executor enum alone is not optimization authority.
ZLM2 round trips and complete package closures preserve and relocate the
problem row and both signal targets. Digest-valid malformed targets or budgets
reject before admission.