Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
SoPSat.Internal.SoP
Synopsis
- data Atom f c
- data Symbol f c
- newtype Product f c = P {}
- newtype SoP f c = S {}
- mergeWith :: (a -> a -> Either a a) -> [a] -> [a]
- reduceExp :: (Ord f, Ord c) => Symbol f c -> Symbol f c
- mergeS :: (Ord f, Ord c) => Symbol f c -> Symbol f c -> Either (Symbol f c) (Symbol f c)
- mergeP :: (Eq f, Eq c) => Product f c -> Product f c -> Either (Product f c) (Product f c)
- normaliseExp :: (Ord f, Ord c) => SoP f c -> SoP f c -> SoP f c
- zeroP :: Product f c -> Bool
- mkNonEmpty :: (Ord f, Ord c) => SoP f c -> SoP f c
- simplifySoP :: (Ord f, Ord c) => SoP f c -> SoP f c
- mergeSoPAdd :: (Ord f, Ord c) => SoP f c -> SoP f c -> SoP f c
- mergeSoPMul :: (Ord f, Ord c) => SoP f c -> SoP f c -> SoP f c
- mergeSoPSub :: (Ord f, Ord c) => SoP f c -> SoP f c -> SoP f c
- mergeSoPDiv :: (Ord f, Ord c) => SoP f c -> SoP f c -> (SoP f c, SoP f c)
Documentation
Atomic part of a SoP
like constants and unknown functions
The most basic part used during reasoning: - Numbers - Atoms - Exponents
Constructors
I Integer | Number in an expression |
A (Atom f c) | Atom in an expression |
E (SoP f c) (Product f c) | Exponentiation |
Instances
(Ord f, Ord c) => ToSoP f c (Symbol f c) Source # | |
(Show f, Show c) => Show (Symbol f c) Source # | |
(Eq c, Eq f) => Eq (Symbol f c) Source # | |
(Ord c, Ord f) => Ord (Symbol f c) Source # | |
Defined in SoPSat.Internal.SoP |
Product of symbols
Instances
(Ord f, Ord c) => ToSoP f c (Product f c) Source # | |
(Show f, Show c) => Show (Product f c) Source # | |
(Eq f, Eq c) => Eq (Product f c) Source # | |
(Ord f, Ord c) => Ord (Product f c) Source # | |
Defined in SoPSat.Internal.SoP |