pumpkin-core 0.4.0

The core of the Pumpkin constraint programming solver.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Structures which represent certain [predicates](https://en.wikipedia.org/wiki/Predicate_(mathematical_logic)).
//!
//! The solver only utilizes the following types of predicates:
//! - **Predicates over integers** - These [`IntegerPredicate`]s specify atomic constraints of the
//!   form `[x >= v]`, `[x <= v]`, `[x == v]`, and `[x != v]`.
//! - **Predicates over literals** - These [`Predicate::Literal`]s specify [`Literal`]s which are
//!   linked to the aforementioned [`IntegerPredicate`]s through the [`VariableLiteralMappings`].
//! - **Always True/False** - The [`Predicate::True`]/[`Predicate::False`] specify logical
//!   predicates which are always true/false.
//!
//! In general, these [`Predicate`]s are used to represent propagations, explanations or decisions.
pub(crate) mod predicate;
pub(crate) mod predicate_constructor;
#[cfg(doc)]
use crate::engine::predicates::predicate::Predicate;
#[cfg(doc)]
use crate::engine::variables::IntegerVariable;