EXACT is a lossless HDC strategy: atoms are encoded as one-hot BigInt bits, and a vector is a set of bitset-monomials. It is designed to explore the limits of fully deterministic, collision-free representations inside a session.

Spec: DS25 — EXACT / Exact-Sparse

1. Representation

Atom

Each atom name gets a session-local appearance index i, and the atom vector is one-hot:

Atom(name) = 2^i (BigInt one-hot)
Vector (Polynomial)

A vector is a sorted unique array of monomials, and each monomial is a BigInt bitset of included atoms:

Vector = { m0, m1, ... } where each m is a bitset BigInt

Why this matters

There is no PRNG/hash identity for atoms. If the session sees the same declarations in the same order, atom identity is exact and reproducible. This trades “global name hashing” for a session-owned dictionary.

2. Operations (BIND / UNBIND / BUNDLE)

BUNDLE = union
bundle(V1, V2, ...) = V1 ∪ V2 ∪ ...

Lossless superposition: the KB is literally the set of all fact-monomials.

BIND = OR-product

Monomial×monomial uses set-union over atoms (bitwise OR). Polynomial bind is the cross-product:

bind(A, B) = { a OR b | a ∈ A, b ∈ B }
UNBIND = quotient-like extraction (UNBIND_A)

EXACT does not require UNBIND ≡ BIND. UNBIND extracts residual parts by subset matching:

unbind(T, Q) = { t \\ q | t ∈ T, q ∈ Q, q ⊆ t }

This aligns with the “KB is a set of facts” model: it finds all facts that contain the query key, then removes the known part.

Visual intuition

EXACT Fact Encoding & Query Extraction Fact term (one monomial) Op Pos1 Book Pos2 Key Pos3 Idea QueryKey (known part) Op Pos1+Book Pos2+Key UNBIND_A Residual Pos3 Idea
Implementation note: EXACT uses a session-local atom dictionary. At the moment AGISystem2 typically reloads theories from text and re-vectorizes each run, so dictionary persistence is deferred; when KB serialization becomes a workflow, the dictionary must be serialized alongside the KB.

3. Decoding / Cleanup (making holographic answers “real”)

In XOR-based HDC, unbinding often returns a vector that can be compared directly by similarity. In EXACT, UNBIND is quotient-like, so its output is a residual that frequently contains structural atoms (e.g., position markers and operator tags). A raw similarity score can be misleading (e.g., many candidates appear as 0.000).

Strategy-aware projection

The EXACT strategy exposes an optional decoder hook (decodeUnboundCandidates()) that maps residual bitsets back to likely entity atoms by counting witnesses and filtering structural residue. The holographic query engine uses this hook when present, reducing unnecessary similarity scans and producing interpretable top-k candidates.

UNBIND variants

EXACT can operate in multiple UNBIND modes. In evaluation runners you may see EXACT(A) (existential quotient: “emit residuals for matches”) and EXACT(B) (residual intersection across component terms, stricter). Both preserve losslessness; they trade speed vs. strictness.