Omega: Integer sets and relations using Presburger arithmetic

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Sets of integer tuples and relations on integer tuples. Sets and relations are represented compactly by storing their characteristic function as a Presburger arithmetic formula. Formulae are simplified and solved by the Omega Library. The primary interface can be found in Data.Presburger.Omega.Set and Data.Presburger.Omega.Rel.

[Skip to Readme]


Versions 0.1.1, 0.1.2, 0.1.3, 0.2.0, 0.2.1, 0.2.2, 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.3
Change log None available
Dependencies base (>=4 && <5), containers [details]
License BSD-3-Clause
Author Christopher Rodrigues
Category Data
Uploaded by ChristopherRodrigues at 2014-05-03T03:28:18Z



Automatic Flags

Link to a preinstalled version of the Omega library


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for Omega-1.0.3

[back to package description]
Omega -- Operations on Presburger arithmetic formulae

This package contains a reduced copy of the Omega library.
The Omega library's home page is, and
its full sources are at


This is a Cabal package.  The typical build process is:

	runhaskell Setup.hs configure <FLAGS>
	runhaskell Setup.hs build
	runhaskell Setup.hs install

Configure with -fUseInstalledOmega if you have already installed the C++
Omega library.  Otherwise, the library will be built and linked into this

GHCi is not supported due to dynamic loading problems.

Because this package contains C++ source code, Cabal may need help
finding the required headers and libraries.  You may need to provide the paths
to the C++ include directory (contains STL headers such as "vector") and
library directory (contains the C runtime library, called "" on
GNU Linux systems).  If the C++ Omega library is not installed in a standard
place, you will also need to provide paths to it.

A configuration might look something like this:

	runhaskell Setup.hs configure --disable-library-for-ghci -p \
		--extra-include-dirs=$(YOUR_CXX_INCLUDE_PATH) \


The C++ Omega library includes documentation of its exported interface in
'interface.dvi'.  You may wish to look there if the Haddock documentation for
a set operation or relation operation is lacking.