The ersatz package
A monad for expressing SAT or QSAT problems using observable sharing.
For example, we can express a full-adder with:
full_adder :: Bit -> Bit -> Bit -> (Bit, Bit)
full_adder a b cin = (s2, c1 || c2)
where (s1,c1) = half_adder a b
(s2,c2) = half_adder s1 cin
half_adder :: Bit -> Bit -> (Bit, Bit) half_adder a b = (a `xor` b, a && b)
Properties
| Versions | 0.1, 0.1.0.1, 0.1.0.2, 0.2, 0.2.0.1 |
|---|---|
| Dependencies | array (≥0.2 & <0.5), base (≥4 & <6), blaze-builder (0.3.*), blaze-textual (0.2.*), bytestring (≥0.9 & <0.12), containers (≥0.2.0.1 & <0.6), data-default (0.5.*), ghc-prim, lens (≥3.8 & <4.0), mtl (≥1.1 & <2.2), process (1.1.*), temporary (1.1.*), transformers (0.3.*), unordered-containers (0.2.*) |
| License | BSD3 |
| Copyright | (c) 2010-2013 Edward Kmett, (c) 2013 Johan Kiviniemi |
| Author | Edward A. Kmett, Johan Kiviniemi |
| Maintainer | Edward A. Kmett <ekmett@gmail.com> |
| Stability | experimental |
| Category | Logic, Algorithms |
| Home page | http://github.com/ekmett/ersatz |
| Bug tracker | http://github.com/ekmett/ersatz/issues |
| Source repository | git clone git://github.com/ekmett/ersatz.git |
| Upload date | Sat Mar 16 09:53:38 UTC 2013 |
| Uploaded by | EdwardKmett |
| Built on | ghc-7.6 |
Modules
Downloads
- ersatz-0.2.0.1.tar.gz (Cabal source package)
- package description (included in the package)