//! Chase algorithm implementation for reasoning with tuple-generating //! dependencies (TGDs), equality-generating dependencies (EGDs), and //! negative constraints. //! //! Supported chase variants: restricted, standard, oblivious, and Skolem. //! Optional semi-naive evaluation reduces redundant matching. Rules may use //! negation-as-failure in body atoms; [`stratification`] ensures correct //! evaluation order when negation creates inter-predicate dependencies. pub mod atom; pub mod inference; pub mod instance; pub mod rule; pub mod stratification; pub mod substitution; pub mod term; pub mod union_find; mod engine; pub use atom::Atom; pub use engine::{ ChaseConfig, ChaseError, ChaseResult, ChaseVariant, chase, chase_full, chase_stratified, chase_with_config, chase_with_egds, oblivious_chase, skolem_chase, standard_chase, }; pub use inference::{Derivation, MaterializedState, find_matches, materialize}; pub use instance::{Instance, InstanceError}; pub use rule::{ Egd, EgdBuilder, Equality, NegativeConstraint, NegativeConstraintBuilder, Rule, RuleBuilder, }; pub use substitution::Substitution; pub use term::Term; pub use union_find::{MergeError, UnionFind};