toysolver-0.1.0: src/ToySolver/Cooper.hs
{-# OPTIONS_GHC -Wall #-}
-----------------------------------------------------------------------------
-- |
-- Module : ToySolver.Cooper
-- Copyright : (c) Masahiro Sakai 2011
-- License : BSD-style
--
-- Maintainer : masahiro.sakai@gmail.com
-- Stability : provisional
-- Portability : non-portable (FlexibleInstances)
--
-- Naive implementation of Cooper's algorithm
--
-- Reference:
--
-- * <http://hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt>
--
-- * <http://www.cs.cmu.edu/~emc/spring06/home1_files/Presburger%20Arithmetic.ppt>
--
-- See also:
--
-- * <http://hackage.haskell.org/package/presburger>
--
-----------------------------------------------------------------------------
module ToySolver.Cooper
(
-- * Language of presburger arithmetics
ExprZ
, Lit (..)
, QFFormula (..)
, fromLAAtom
, (.|.)
-- * Projection
, project
, projectCases
, projectCasesN
-- * Quantifier elimination
, eliminateQuantifiers
-- * Constraint solving
, solve
, solveQFFormula
, solveFormula
, solveQFLA
) where
import ToySolver.Cooper.Core
import ToySolver.Cooper.FOL