Name: unique-logic Version: 0.3 License: BSD3 License-File: LICENSE Author: Henning Thielemann Maintainer: Henning Thielemann Homepage: http://code.haskell.org/~thielema/unique-logic/ Category: Logic programming Synopsis: Solve simple simultaneous equations Description: 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 are: . * "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@. For an executable example see "UniqueLogic.ST.Example.Rule". . * "UniqueLogic.ST.Expression": Allows to write rules using arithmetic operators. It creates temporary variables automatically. Example: @(a+b)*c =:= d@ resolves to @a+b = x, x*c = d@. For an executable example see "UniqueLogic.ST.Example.Expression". . * "UniqueLogic.ST.SystemLabel": Provides a new type for named variables. When creating a variable you decide whether and how an assignment to this variable shall be logged. There is an example that shows how to solve a logic system using symbolic expressions. The naming and logging allows us to observe shared intermediate results. For an executable example see "UniqueLogic.ST.Example.Label". . * "UniqueLogic.ST.SystemLog", "UniqueLogic.ST.RuleLog": These modules allow to log an assignment depending on the arguments to an assignment. This is more general than "UniqueLogic.ST.SystemLabel" which allows only dependencies on the result of an assignment. Tested-With: GHC==7.4.2 Cabal-Version: >=1.8 Build-Type: Simple Source-Repository this Tag: 0.3 Type: darcs Location: http://code.haskell.org/~thielema/unique-logic/ Source-Repository head Type: darcs Location: http://code.haskell.org/~thielema/unique-logic/ Library Build-Depends: transformers >=0.2 && <0.4, utility-ht >=0.0.1 && <0.1, base >= 4 && <5 GHC-Options: -Wall Hs-Source-Dirs: src Exposed-Modules: UniqueLogic.ST.System UniqueLogic.ST.SystemLog UniqueLogic.ST.SystemLabel UniqueLogic.ST.Rule UniqueLogic.ST.RuleLog UniqueLogic.ST.Expression -- example modules UniqueLogic.ST.Example.Rule UniqueLogic.ST.Example.Label UniqueLogic.ST.Example.Expression Test-Suite test-unique-logic Type: exitcode-stdio-1.0 Main-Is: src/UniqueLogic/ST/Test.hs GHC-Options: -Wall Build-Depends: QuickCheck >=2.4 && <2.6, unique-logic, non-empty >=0.0 && <0.1, transformers, utility-ht, base