Skip to main content

evaluate_scc_fixpoint

Function evaluate_scc_fixpoint 

Source
pub fn evaluate_scc_fixpoint(
    rules: &BTreeMap<String, Vec<Rule>>,
    base_relations: &RefRelationStore,
    order: &dyn VariableOrder,
    config: &FixpointConfig,
) -> Result<RefRelationStore, SccFixpointError>
Expand description

Evaluate a mutually-recursive SCC of predicates to a fixpoint.

rules maps each predicate name to the list of rules deriving it. Every rule’s head predicate must equal its group key (validated at entry). base_relations carries non-SCC predicates referenced in rule bodies (e.g. EDB facts). The SCC predicates must NOT appear in base_relations.

Returns a RefRelationStore whose keys are exactly the keys of rules, each mapped to the converged relation. Set semantics: rows sorted lexicographically, deduplicated.