2.9 KiB
AVM Fixed-Point Compliance Remediation
Status: HOLD / compliance remediation Authority: fixed-point determinism rule for AVM core semantics Related:
docs/gcl/ThreeLayerBuilderJudgeWardenGate.mddocs/gcl/RunawayDigitalCellDivisionDoctrine.mddocs/gcl/NanokernelCompressionOrchestrationUndici.mddocs/gcl/FederatedNanokernelSwarmDoctrine.md
Purpose
This note records a critical AVM compliance correction.
The AVM is intended to bridge formal math and executable bytecode. Therefore its core numeric semantics must be deterministic and fixed-point only.
Compliance alert
The synthesized AVM Canonical Specification reportedly includes float as a primitive type.
That is a promotion blocker.
float / f32 / f64 / double are not allowed as AVM core primitive numeric types.
Required type correction
Replace:
int, float, bool, list, dict, function
with:
int, Q0_16, Q16_16, bool, list, dict, function
Canonical numeric atoms
Q0_16
Q0_16 = unsigned fractional fixed-point atom
scale = 2^16
intended use = probabilities, normalized weights, bounded gates, ratios in [0, 1)
Q16_16
Q16_16 = fixed-point scalar atom with 16 integer bits and 16 fractional bits
canonical one = 0x00010000
intended use = route mass, scalar costs, field values, timing, geometry scalars
Determinism invariant
same bytecode + same input state + same receipt context = same output state hash
This must hold across the declared AVM compatibility regime.
Boundary rule
Floating-point values may appear only outside AVM authority, such as UI display, debug visualization, external import, or export formatting.
Before a value enters AVM core semantics, it must be quantized into Q0_16 or Q16_16 under a declared conversion policy.
Bind requirement
The AVM must expose an explicit bind/composition primitive so route-state transitions can be reasoned about and later formalized.
Minimal target:
AVM action A produces value plus state plus receipt.
Bind feeds that value into the next AVM action.
The composed action must preserve explicit state and receipt flow.
Promotion blocker
The AVM may not be promoted to CALIBRATED until:
1. Core primitive `float` references are removed.
2. Q0_16 and Q16_16 are defined.
3. Arithmetic, rounding, and overflow behavior are declared.
4. Boundary conversion from external numeric formats is declared.
5. The determinism invariant is stated.
6. Bind/composition semantics are specified.
7. A validator rejects core `float`, `f32`, `f64`, and `double` references.
Operating sentence
The AVM may only serve as the bridge between formal math and bytecode if its core semantics are fixed-point deterministic: float primitives are excluded from core authority, Q0_16 and Q16_16 become canonical numeric atoms, bind composition is explicit, and bit-exact reproducibility is required before calibration.