Core tables (meekgraph-schema.sql):
-- Core tables
theorem (id, name, statement, statement_hash, domain,
file_path, git_commit, proof_status, sorry_count,
lsos_score, embedding VECTOR(1536))
shape (id, name, external_name, definition, theorem_anchor)
finding (id, title, protocol, shape_id, filing_status,
bower, wls, clo_required, embedding VECTOR(1536))
theorem_edges (source_id, target_id, relation,
evidence, confidence)
-- Relations: DEPENDS_ON · INSTANCE_OF · BACKS_CLAIM
-- CROSS_DOMAIN_OF · FERMAT_WORMHOLE
The unlock query — what makes AionDB worth it:
-- Semantic + topological + no-sorry filter (ONE QUERY)
SELECT t.name,
(t.embedding <=> $exploit_embed) AS dist
FROM theorems t
JOIN theorem_edges e ON t.id = e.source
WHERE e.target = 'stale_watcher_crescent_shape'
AND e.relation = 'INSTANCE_OF'
AND t.proof_status = 'proved'
AND t.sorry_count = 0
ORDER BY dist ASC
LIMIT 20;
-- With Neo4j+Qdrant+LAAM: 3 queries, 3 stores, duct tape
-- With AionDB: one query surface
Roast: that query is the whole point. "Show me proved theorem rails that are both semantically similar to this exploit and topologically connected to the stale watcher shape, with no open sorries." That is painful with separate stores. AionDB says: one body.