//! The logical language underpinning an ASPIC+ system.
//!
//! This module defines the syntactic building blocks — terms, atoms, literals,
//! and formulae — used to express knowledge, rules, and contrariness in an
//! ASPIC+ theory. It also houses the grounding machinery that eliminates
//! variables by enumerating constant substitutions.
//!
//! # Sub-modules
//!
//! * [`formula`] — Core data types: [`formula::Term`], [`formula::Atom`],
//!   [`formula::Literal`], and [`formula::Formula`].
//! * [`grounding`] — Variable elimination: [`grounding::GroundedSystem`],
//!   `grounding::GroundingContext`, substitution helpers.
//! * [`macros`] — The `formula!` convenience macro for constructing formulae
//!   in tests and examples.

pub mod formula;
pub mod grounding;
#[macro_use]
pub mod macros;
