Skip to main content

Crate xlog_logic

Crate xlog_logic 

Source
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

  • parser - Pest-based parser for XLOG syntax
  • ast - Abstract Syntax Tree types
  • stratify - Stratification analysis for negation/aggregation
  • lower - Lowering from AST to Relational IR
  • compile - Full compilation pipeline

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_v085_lists;
pub use lower::Lowerer;
pub use magic_sets::rewrite_v085_magic_sets;
pub use magic_sets::MagicSetReport;
pub use magic_sets::MagicSetRewrite;
pub use magic_sets::MagicSetStatus;
pub use meta_normalize::normalize_v085_meta;
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 W2.1 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 v0.8.5 language surface.
lower
Lowering from AST to IR
magic_sets
Magic-set rewriting for the v0.8.5 deterministic language subset.
meta_normalize
Safe meta-predicate normalization for the v0.8.5 language 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
v0.6.5 slice 1 — MultiWayJoin promotion pass. Goal-039 W6.3 — ChainJoin promotion for 2-atom chains. v0.6.5 slice 4 — recursive-SCC promotion gated on linear recursion.
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
W2.1 — Variable-ordering cost model for WCOJ dispatch.