cabal-version:      3.0
name:               sop-satisfier
version:            0.3.4.5
synopsis:           Check satisfiability of expressions on natural numbers
description:
    Expression satisfier on natural numbers.
    .
    It can reason about expressions contatining
    addition and multiplication.
    It also provides limited support of exponentiations and subtraction.
license:            BSD-2-Clause
license-file:       LICENSE
author:             Aleksandr Pokatilov <pokatilov0802@gmail.com>
maintainer:         QBayLogic B.V. <devops@qbaylogic.com>
build-type:         Simple
category:           Solver, Symbolic Arithmetic
extra-doc-files:    CHANGELOG.md
                    README.md
tested-with:        GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.8,
                    GHC == 9.4.8, GHC == 9.6.6, GHC == 9.8.4, GHC == 9.10.1,
                    GHC == 9.12.1

source-repository head
    type: git
    location: https://github.com/clash-lang/sop-satisfier

common warnings
    ghc-options: -Wall

library
    import:           warnings
    exposed-modules:  SoPSat.Satisfier,
                      SoPSat.SoP,
                      SoPSat.Internal.Unify,
                      SoPSat.Internal.Range,
                      SoPSat.Internal.SoP,
                      SoPSat.Internal.NewtonsMethod,
                      SoPSat.Internal.SolverMonad
    build-depends:    base >=4.13 && <5,
                      containers >=0.6.2.1 && <0.8,
                      transformers >=0.5 && <0.7
    hs-source-dirs:   src
    default-language: Haskell2010

test-suite system-tests
    type:             exitcode-stdio-1.0
    main-is:          SystemTests.hs
    build-depends:    base >=4.13 && <5,
                      sop-satisfier,
                      tasty ^>= 1.5,
                      tasty-hunit ^>=0.9
    hs-source-dirs:   tests
    default-language: Haskell2010