problemreductions/models/formula/
mod.rs1pub(crate) mod circuit;
15pub(crate) mod ksat;
16pub(crate) mod maximum_2_satisfiability;
17pub(crate) mod nae_satisfiability;
18pub(crate) mod non_tautology;
19pub(crate) mod one_in_three_satisfiability;
20pub(crate) mod planar_3_satisfiability;
21pub(crate) mod qbf;
22pub(crate) mod sat;
23
24pub use circuit::{Assignment, BooleanExpr, BooleanOp, Circuit, CircuitSAT};
25pub use ksat::KSatisfiability;
26pub use maximum_2_satisfiability::Maximum2Satisfiability;
27pub use nae_satisfiability::NAESatisfiability;
28pub use non_tautology::NonTautology;
29pub use one_in_three_satisfiability::OneInThreeSatisfiability;
30pub use planar_3_satisfiability::Planar3Satisfiability;
31pub use qbf::{QuantifiedBooleanFormulas, Quantifier};
32pub use sat::{CNFClause, Satisfiability};
33
34pub(crate) fn config_to_assignment(config: &[usize]) -> Vec<bool> {
36 config.iter().map(|&v| v == 1).collect()
37}
38
39#[cfg(feature = "example-db")]
40pub(crate) fn canonical_model_example_specs() -> Vec<crate::example_db::specs::ModelExampleSpec> {
41 let mut specs = Vec::new();
42 specs.extend(sat::canonical_model_example_specs());
43 specs.extend(nae_satisfiability::canonical_model_example_specs());
44 specs.extend(ksat::canonical_model_example_specs());
45 specs.extend(maximum_2_satisfiability::canonical_model_example_specs());
46 specs.extend(circuit::canonical_model_example_specs());
47 specs.extend(non_tautology::canonical_model_example_specs());
48 specs.extend(one_in_three_satisfiability::canonical_model_example_specs());
49 specs.extend(planar_3_satisfiability::canonical_model_example_specs());
50 specs.extend(qbf::canonical_model_example_specs());
51 specs
52}