Module Dimacs.Build

This module defines some operation to support the construction of Boolean formulas.

Author: Sven Hueser

Version: July 2021

Summary of exported operations:

 ```va :: Int -> Boolean```    A Boolean variable with an index. ```no :: Boolean -> Boolean```    Boolean negation. ```nv :: Int -> Boolean```    Negated variable with an index. ```(./\) :: Boolean -> Boolean -> Boolean```    Conjunction. ```(.\/) :: Boolean -> Boolean -> Boolean```    Disjunction. ```xor :: Boolean -> Boolean -> Boolean```    Exclusive or. ```nnf :: Boolean -> Boolean``` ```cnf :: Boolean -> Boolean``` ```dist :: Boolean -> Boolean -> Boolean``` ```flatten :: Boolean -> Boolean``` ```flattenAnd :: [Boolean] -> [Boolean]``` ```flattenOr :: [Boolean] -> [Boolean]``` ```nubB :: Boolean -> Boolean``` ```toCNF :: Boolean -> Boolean``` ```filterTauts :: Boolean -> Boolean``` ```isTaut :: Boolean -> Bool```

Exported operations:

 ```va :: Int -> Boolean```    A Boolean variable with an index. Note that the index should be a positive number. Further infos: solution complete, i.e., able to compute all solutions
 ```no :: Boolean -> Boolean```    Boolean negation. Further infos: solution complete, i.e., able to compute all solutions
 ```nv :: Int -> Boolean```    Negated variable with an index. Note that the index should be a positive number.
 ```(./\) :: Boolean -> Boolean -> Boolean```    Conjunction. Further infos: defined as right-associative infix operator with precedence 3
 ```(.\/) :: Boolean -> Boolean -> Boolean```    Disjunction. Further infos: defined as right-associative infix operator with precedence 2
 ```xor :: Boolean -> Boolean -> Boolean```    Exclusive or.
 ```nnf :: Boolean -> Boolean```
 ```cnf :: Boolean -> Boolean```
 ```dist :: Boolean -> Boolean -> Boolean```
 ```flatten :: Boolean -> Boolean```
 ```flattenAnd :: [Boolean] -> [Boolean]```
 ```flattenOr :: [Boolean] -> [Boolean]```
 ```nubB :: Boolean -> Boolean```
 ```toCNF :: Boolean -> Boolean```
 ```filterTauts :: Boolean -> Boolean```
 ```isTaut :: Boolean -> Bool```