unique-logic: Solve simple simultaneous equations

[ bsd3, library, logic-programming ] [ Propose Tags ]

Solve a number of equations simultaneously. This is not Computer Algebra, better think of a kind of type inference algorithm or logic programming with only one allowed solution.

Only one solution is computed. Simultaneous equations with multiple solutions are not allowed. However, variables may remain undefined. We do not even check for consistency, since with floating point numbers even simple rules may not be consistent.

The modules ordered with respect to abstraction level:

  • UniqueLogic.ST.System: Construct and solve sets of functional dependencies. Example: assignment3 (+) a b c meaning dependency a+b -> c.

  • UniqueLogic.ST.Rule: Combine functional dependencies to rules that can apply in multiple directions. Example: add a b c means relation a+b = c which resolves to dependencies a+b -> c, c-a -> b, c-b -> a.

  • UniqueLogic.ST.Expression: Allow to write rules using arithmetic operators. It creates temporary variables automatically. Example: (a+b)*c =:= d resolves to a+b = x, x*c = d.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.2, 0.3, 0.4, 0.4.0.1
Dependencies base (>=4 && <5), transformers (>=0.2 && <0.4), utility-ht (>=0.0.1 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann
Maintainer Henning Thielemann <haskell@henning-thielemann.de>
Category Logic programming
Home page http://code.haskell.org/~thielema/unique-logic/
Source repo this: darcs get http://code.haskell.org/~thielema/unique-logic/ --tag 0.2
head: darcs get http://code.haskell.org/~thielema/unique-logic/
Uploaded by HenningThielemann at 2013-06-17T09:01:19Z
Distributions LTSHaskell:0.4.0.1, NixOS:0.4.0.1, Stackage:0.4.0.1
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2856 total (24 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]