# Crate schlandals

source ·## Re-exports§

`pub use common::*;`

## Modules§

- This module provide definition and implementation of a semiring for various types. A semiring is an algebraic structure over a set of elements S with an addition (+) and a multiplication (*) such that 1. There is an identity element for the + (0) (x + 0 = x and 0 + x = x) 2. There is an identity element for the * (1) (x * 1 = x and 1 * x = x) 3. The addition is commutative (x + y = y + x) 4. The addition and multiplication is associative ( (a + b) + c = a + (b + c) and (a * b) * c = a * (b * c) )

## Structs§

- This structure represent a general solver in Schlandals. It stores a representation of the problem and various structure that are used when solving it. It has two solving strategies: 1. A modified DPLL search over the distributions of the problem 2. A compiler which run the DPLL search but store the trace as an arithemtic circuit. It is also possible to run the solver in an hybrid mode. That is, the solver starts with a compilation part and then switch to a search for some sub-problems.