pub struct Compiled {
pub atoms: Vec<AtomKey>,
pub facts: Vec<Fact>,
pub clauses: Vec<Clause>,
pub rules: Vec<Rule>,
pub checks: Vec<Check>,
pub pending_imports: Vec<String>,
pub unused_imports: Vec<UnusedImport>,
pub consumed: Vec<AtomId>,
}Expand description
The compiled IR: the solver’s input.
Fields§
§atoms: Vec<AtomKey>Indexed by AtomId; canonically sorted.
facts: Vec<Fact>Confident assertions from FACT/NOT.
clauses: Vec<Clause>Impossible clauses (desugared premises + the built-in non-contradiction).
rules: Vec<Rule>Forward-chaining rules from RULE.
checks: Vec<Check>CHECK queries.
pending_imports: Vec<String>Imports seen but not yet resolved (only populated by compile_source;
compile resolves them, leaving this empty).
unused_imports: Vec<UnusedImport>Advisory: imports that a file makes but never references (no domain.atom
from that file uses the imported domain). Structural, per-file, and inert —
it never affects the solve. Only populated by compile (an unresolved
import in compile_source cannot be classified). See UnusedImport.
consumed: Vec<AtomId>Atoms consumed as data by a relation FOR EACH (the edge facts, e.g. each
a linked b). They are read by the quantifier, so the solver must not
report them as ORPHAN facts even though no clause references them.