# cmu

Unification in a Commutative Monoid

 Latest on Hackage: 1.11

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

Maintained by
This package contains a library for unification in
commutative monoid and a program that exercises the library.

\$ cmu
Commutative monoid unification -- :? for help
cmu> 2x+y=3z
Problem: 2x + y = 3z
Unifier: [x : g0 + 3g2,y : g0 + 3g1,z : g0 + g1 + 2g2]

cmu> 2x=x+y
Problem: 2x = x + y
Unifier: [x : g0,y : g0]

cmu> 64x=41y+a
Problem: 64x = a + 41y
Unifier: [a : 5g0 + 2g1 + 23g2 + g3 + 64g4,x : 2g0 + 9g1 + g2 + 25g3 + g4 + 41g5,y : 3g0 + 14g1 + g2 + 39g3 + 64g5]

cmu> :quit

## Changes

2018-01-06 John D. Ramsdell <ramsdell@mitre.org>

to work when Monad no longer has a fail method.

2015-04-27 John D. Ramsdell <ramsdell@mitre.org>

Applicative instance so that the code compiles with GHC 7.10.
Thanks go to Douglas McClean.

* cmu.cabal (Version): Released as version 1.10

2013-02-21 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Location): Added repository location.

* cmu.cabal (Version): Released as version 1.9.

2012-05-12 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.8.

* src/Algebra/CommutativeMonoid/LinDiophEq.hs: Used the method in
the paper by Contejean and Devie for solving an inhomogeneous
equation using the algorithm for the homogeneous equation solver.
The previous version buggy.

2012-05-02 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.7.

2012-04-27 John D. Ramsdell <ramsdell@mitre.org>

* src/Algebra/CommutativeMonoid/LinDiophEq.hs: Corrected spelling
error by replacing Diaphantine with Diophantine.

2012-04-25 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.6.

solves inhomogeneous equations.

2012-02-29 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.5.

* src/Algebra/CommutativeMonoid/{Main.hs,Unification.hs}:
Corrected spelling of monoid in several places.

2012-02-29 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.4. Also, constrained
the containers package to be 0.3 or greater.

* src/Algebra/CommutativeMonoid/Unification.hs: Replaced
occurrences of Data.Map.foldWithKey by Data.Map.foldrWithKey as
the former has been deprecated.

2010-06-21 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.3.

* cmu.cabal (Build-Depends): changes dependency to
base >= 3 && <5, containers

2009-09-18 John D. Ramsdell <ramsdell@mitre.org>

* src/Algebra/CommutativeMonoid/Unification.hs: Changed
occurrences of group to monoid in comments.

* cmu.cabal (Version): Released as version 1.2.

2009-09-17 John D. Ramsdell <ramsdell@mitre.org>

* cmu.cabal (Version): Released as version 1.0.

* cmu.cabal (Synopsis): Fixed spelling error.

* cmu.cabal (Version): Released as version 1.1 after fixing the
embarrassing spelling error.
Depends on 3 packages:
Used by 1 package: