pub enum EngineLogicNode {
Show 13 variants
Predicate((String, Vec<LogicalTerm>)),
ComputeNode((String, Vec<LogicalTerm>)),
AndNode((u32, u32)),
OrNode((u32, u32)),
NotNode(u32),
ExistsNode((String, u32)),
ForAllNode((String, u32)),
PastNode(u32),
PresentNode(u32),
FutureNode(u32),
ObligatoryNode(u32),
PermittedNode(u32),
CountNode((String, u32, u32)),
}Expand description
A node in the flat logic graph. Each variant corresponds to an FOL constructor.
Nodes reference children by u32 index into the LogicBuffer.nodes array.
Variants§
Predicate((String, Vec<LogicalTerm>))
Ground or quantified predicate. Fields: (relation-name, argument-terms).
ComputeNode((String, Vec<LogicalTerm>))
A predicate dispatched to an external compute backend for evaluation.
AndNode((u32, u32))
Conjunction: left ∧ right. Fields: (left-node-id, right-node-id).
OrNode((u32, u32))
Disjunction: left ∨ right. Fields: (left-node-id, right-node-id).
NotNode(u32)
Negation: ¬inner. Payload: inner-node-id.
ExistsNode((String, u32))
Existential quantifier: ∃var. body. Fields: (variable-name, body-node-id).
ForAllNode((String, u32))
Universal quantifier: ∀var. body. Fields: (variable-name, body-node-id).
PastNode(u32)
Past tense wrapper (pu). Payload: inner-node-id.
PresentNode(u32)
Present tense wrapper (ca). Payload: inner-node-id.
FutureNode(u32)
Future tense wrapper (ba). Payload: inner-node-id.
ObligatoryNode(u32)
Deontic obligation wrapper (ei/bilga). Payload: inner-node-id.
PermittedNode(u32)
Deontic permission wrapper (e’e/curmi). Payload: inner-node-id.
CountNode((String, u32, u32))
Exactly N entities satisfy the body. Fields: (variable-name, count, body-node-id).