Expand description
Datalog frontend for XLOG
This crate provides the parsing, analysis, and compilation pipeline for XLOG Datalog programs.
§Main Entry Point
The primary way to use this crate is through the Compiler struct:
ⓘ
use xlog_logic::Compiler;
let mut compiler = Compiler::new();
let plan = compiler.compile(r#"
edge(1, 2).
edge(2, 3).
reach(X, Y) :- edge(X, Y).
reach(X, Z) :- reach(X, Y), edge(Y, Z).
"#)?;§Modules
Re-exports§
pub use ast::AnnotatedDisjunction;pub use ast::Atom;pub use ast::BodyLiteral;pub use ast::Constraint;pub use ast::Directives;pub use ast::EpistemicLiteral;pub use ast::EpistemicMode;pub use ast::EpistemicOp;pub use ast::Evidence;pub use ast::MagicSetsMode;pub use ast::ProbCache;pub use ast::ProbEngine;pub use ast::ProbFact;pub use ast::ProbMethod;pub use ast::ProbQuery;pub use ast::Program;pub use ast::Query;pub use ast::Rule;pub use ast::Term;pub use ast::Univ;pub use compile::compile;pub use compile::Compiler;pub use diagnostics::build_query_proof_traces;pub use diagnostics::build_rule_provenance;pub use diagnostics::format_atom;pub use diagnostics::query_proof_traces;pub use diagnostics::rule_provenance;pub use diagnostics::QueryProofTrace;pub use diagnostics::RuleProvenance;pub use diagnostics::RuleSourceKind;pub use eir::build_eir;pub use expand::expand_program_functions;pub use incremental_parse::IncrementalParseResult;pub use incremental_parse::ParseCacheStats;pub use incremental_parse::ParserSession;pub use incremental_parse::StatementSpan;pub use incremental_parse::StatementUnit;pub use list_normalize::normalize_list_builtins;pub use lower::Lowerer;pub use magic_sets::rewrite_magic_sets;pub use magic_sets::MagicSetReport;pub use magic_sets::MagicSetRewrite;pub use magic_sets::MagicSetStatus;pub use meta_normalize::normalize_meta_builtins;pub use module_diagnostics::diagnose_module_boundaries;pub use module_diagnostics::CandidateSourceKind;pub use module_diagnostics::ModuleBoundaryInput;pub use module_diagnostics::ModuleBoundaryReport;pub use module_diagnostics::ModuleDeclaration;pub use module_diagnostics::ModuleDeclarationKind;pub use module_diagnostics::ModuleManifest;pub use module_diagnostics::ModuleRole;pub use module_diagnostics::ModuleViolation;pub use module_diagnostics::ModuleViolationKind;pub use optimizer::Optimizer;pub use optimizer::OptimizerConfig;pub use optimizer::PlanCost;pub use parser::parse_program;pub use parser::parse_statement;pub use proof_trace::DifferentiableProofTraceMap;pub use proof_trace::ProofTrace;pub use proof_trace::ProofTraceSpec;pub use stratify::find_sccs_for_lowering;pub use stratify::stratify;pub use stratify::DependencyGraph;pub use stratify::Stratum;
Modules§
- ast
- Abstract Syntax Tree for XLOG programs
- compile
- Compilation pipeline for XLOG programs
- compiler_
config - Compile-time configuration for the WCOJ variable-ordering cost model.
- diagnostics
- Stable diagnostic records for rule provenance and query proof traces.
- eir
- Frontend construction for the Epistemic Intermediate Representation.
- epistemic
- Epistemic mode helpers for compatibility fixtures.
- expand
- Inline expansion of user-defined functions.
- function
- Function registry and validation for user-defined functions.
- hypergraph
- Hypergraph IR + WCOJ oracle stack (v0.6.2).
- incremental_
parse - Statement-level parser session cache for incremental workflows.
- list_
normalize - Finite list normalization for the language-completeness surface.
- lower
- Lowering from AST to IR
- magic_
sets - Magic-set rewriting for the deterministic language-completeness subset.
- meta_
normalize - Safe meta-predicate normalization for the language-completeness surface.
- module
- Module system types for XLOG.
- module_
diagnostics - Reusable diagnostics for XLOG module boundary audits.
- optimizer
- Query optimizer for join ordering and predicate pushdown.
- parser
- Parser for XLOG programs using Pest
- promote
MultiWayJoinpromotion pass.ChainJoinpromotion for 2-atom chains. Recursive-SCC promotion for occurrence-level recursive bodies.- proof_
trace - Differentiable proof trace records for proof-path training surfaces.
- resolver
- Module resolution for XLOG programs.
- stratify
- Stratification analysis for negation and aggregation
- typeinfer
- Type inference for user-defined functions.
- wcoj_
var_ ordering - Variable-ordering cost model for WCOJ dispatch.