Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Composition signature

The wiring diagram is the workspace-level resolution of every cross-package symbol reference — the closed-world view of how packages compose. ox computes it from the package graph and the lockfile.

WiringDiagram :=
    map from (consumer_package, ref_site)
            to (target_package, target_qualified_path, target_stable_id)

The composition signature is the cryptographic identity of one composition:

composition_signature  :=  BLAKE3-256(
    wiring_diagram_hash       ∥   // BLAKE3-256 over the canonical resolved symbol table
    standpoint_lattice_hash   ∥   // BLAKE3-256 over canonical-form composed lattice
    tier_ladder_version       ∥   // u32 LE (preamble, Versioning — four orthogonal axes)
    runtime_contract_version      // u32 LE (preamble, Versioning — four orthogonal axes)
)

The hash is BLAKE3-256 throughout the content-addressing story (RFD 0001 Phase 2 replaced SHA-256). ox build computes wiring_diagram_hash as a BLAKE3 over the canonically-sorted (axiom-kind, content-id) of the structural axiom events — the schema-defining declarations, axioms, and rule-modes — so it is sensitive to a relation/concept rename or a rule change but stable under instance-data churn (asserted facts carry no structural weight); standpoint_lattice_hash is the same construction over the standpoint and bridge declarations.

The wiring diagram source is not preserved in .oxbin — it is a transient build-time input. Only the four sub-hashes survive (wiring_diagram_hash and standpoint_lattice_hash in global-control; the two version u32s in the preamble). ox build checks that the wiring is correct; the runtime re-verifies at load that the stored sub-hashes have not been tampered with. Two semantically equivalent compositions produce byte-equivalent .oxbin files — the central content-addressing invariant (Content-addressing).