pub fn evaluate_fixpoint(
rules: &[Rule],
base_relations: &RefRelationStore,
target_predicate: &str,
order: &dyn VariableOrder,
config: &FixpointConfig,
) -> Result<RefRelation, FixpointError>Expand description
Evaluate a recursive set of rules to a fixpoint over a single target predicate.
Every supplied rule must have its head predicate equal to
target_predicate. base_relations carries any non-target
predicates referenced in rule bodies (e.g. edge for transitive
closure, parent for Same Generation). The target predicate
must NOT appear in base_relations; it is constructed by the
fixpoint and shadowing would be ambiguous.
Returns the converged target relation. Set semantics: rows are sorted lexicographically and deduplicated. Same input → same output. Rule order in the input slice does not affect the result (locked by test).