Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- newtype VarName = VarName Text
- newtype Sort = Sort Text
- data Arg = Arg {}
- data DefineFun = DefineFun {}
- data SExpr
- renameDefineFun :: [Text] -> DefineFun -> DefineFun
- insertBindings :: Map Text SExpr -> [SExpr] -> Map Text SExpr
- insertBinding :: Map Text SExpr -> Map Text SExpr -> SExpr -> Map Text SExpr
- inlineLets :: SExpr -> SExpr
- inlineLets' :: Map Text SExpr -> SExpr -> SExpr
- comparisonOps :: [Text]
- partitionPosNeg :: SExpr -> ([SExpr], [SExpr])
- partition :: (a -> Either b c) -> [a] -> ([b], [c])
- select :: (a -> Either b c) -> a -> ([b], [c]) -> ([b], [c])
- nonZero :: SExpr -> Bool
- sumExprs :: [SExpr] -> SExpr
- pattern And :: [SExpr] -> SExpr
- pattern Neg :: SExpr -> SExpr
- pattern Or :: [SExpr] -> SExpr
- pattern BinOp :: Text -> SExpr -> SExpr -> SExpr
- simplify :: SExpr -> SExpr
- antiSymmetricOp :: Text -> Bool
- simplify' :: SExpr -> SExpr
- negateExpr :: SExpr -> SExpr
- extractDefinitions :: Map Text [Text] -> [DefineFun] -> [DefineFun]
Documentation
inlineLets :: SExpr -> SExpr Source #
This is not correct in the case of quantifiers but ignoring this simplifies the implementation and seems to be enough for z3 and eldarica
comparisonOps :: [Text] Source #
antiSymmetricOp :: Text -> Bool Source #
negateExpr :: SExpr -> SExpr Source #