Safe Haskell | None |
---|---|
Language | Haskell98 |
This module contains the top-level query data types and elements, including (Horn) implication & well-formedness constraints and sets.
- type FInfo a = GInfo SubC a
- type SInfo a = GInfo SimpC a
- data GInfo c a = FI {}
- convertFormat :: Fixpoint a => FInfo a -> SInfo a
- type Solver a = Config -> FInfo a -> IO (Result (Integer, a))
- toFixpoint :: (Fixpoint a, Fixpoint (c a)) => Config -> GInfo c a -> Doc
- writeFInfo :: (Fixpoint a, Fixpoint (c a)) => Config -> GInfo c a -> FilePath -> IO ()
- saveQuery :: Config -> FInfo a -> IO ()
- fi :: [SubC a] -> [WfC a] -> BindEnv -> SEnv Sort -> Kuts -> [Qualifier] -> HashMap BindId a -> FilePath -> Bool -> GInfo SubC a
- data WfC a = WfC {}
- data SubC a
- mkSubC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> SubC a
- subcId :: TaggedC c a => c a -> Integer
- slhs :: SubC a -> SortedReft
- srhs :: SubC a -> SortedReft
- subC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> [SubC a]
- wfC :: Fixpoint a => IBindEnv -> SortedReft -> a -> [WfC a]
- data SimpC a = SimpC {}
- type Tag = [Int]
- class TaggedC c a where
- addIds :: [SubC a] -> [(Integer, SubC a)]
- shiftVV :: Reft -> Symbol -> Reft
- data Qualifier = Q {}
- qualifier :: SEnv Sort -> SourcePos -> SEnv Sort -> Symbol -> Sort -> Expr -> Qualifier
- data EQual = EQL {}
- eQual :: Qualifier -> [Symbol] -> EQual
- type FixSolution = HashMap KVar Expr
- data Result a = Result {
- resStatus :: FixResult a
- resSolution :: FixSolution
- type Hyp = ListNE Cube
- data Cube = Cube {}
- type QBind = [EQual]
- type Cand a = [(Expr, a)]
- data Sol a = Sol {}
- type Solution = Sol QBind
- solFromList :: [(KVar, a)] -> [(KVar, Hyp)] -> Sol a
- solInsert :: KVar -> a -> Sol a -> Sol a
- solLookup :: Solution -> KVar -> QBind
- solResult :: Solution -> HashMap KVar Expr
- newtype Kuts = KS {}
- ksMember :: KVar -> Kuts -> Bool
Top-level Queries
Functor c => Functor (GInfo c) Source | |
PTable (SInfo a) Source | |
SymConsts (FInfo a) Source | |
Inputable (FInfo ()) Source | |
(Eq a, Eq (c a)) => Eq (GInfo c a) Source | |
(Show a, Show (c a), Fixpoint a) => Show (GInfo c a) Source | |
Generic (GInfo c a) Source | |
Monoid (GInfo c a) Source | |
(Binary (c a), Binary a) => Binary (GInfo c a) Source | |
(NFData (c a), NFData a) => NFData (GInfo c a) Source | |
type Rep (GInfo c a) Source |
convertFormat :: Fixpoint a => FInfo a -> SInfo a Source
Query Conversions: FInfo to SInfo
type Solver a = Config -> FInfo a -> IO (Result (Integer, a)) Source
Top level Solvers ----------------------------------------------------
Serializing
Constructing Queries
fi :: [SubC a] -> [WfC a] -> BindEnv -> SEnv Sort -> Kuts -> [Qualifier] -> HashMap BindId a -> FilePath -> Bool -> GInfo SubC a Source
Constructing Queries
Constraints
Functor SubC Source | |
TaggedC SubC a Source | |
Eq a => Eq (SubC a) Source | |
Fixpoint a => Show (SubC a) Source | |
Generic (SubC a) Source | |
Binary a => Binary (SubC a) Source | |
NFData a => NFData (SubC a) Source | |
Fixpoint a => PPrint (SubC a) Source | |
(Ord a, Fixpoint a) => Fixpoint (FixResult (SubC a)) Source | |
Fixpoint a => Fixpoint (SubC a) Source | |
SymConsts (FInfo a) Source | |
SymConsts (SubC a) Source | |
Inputable (FInfo ()) Source | |
type Rep (SubC a) Source |
mkSubC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> SubC a Source
slhs :: SubC a -> SortedReft Source
srhs :: SubC a -> SortedReft Source
subC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> [SubC a] Source
wfC :: Fixpoint a => IBindEnv -> SortedReft -> a -> [WfC a] Source
"Smart Constructors" for Constraints ---------------------------------
Functor SimpC Source | |
TaggedC SimpC a Source | |
Fixpoint a => Show (SimpC a) Source | |
Generic (SimpC a) Source | |
Binary a => Binary (SimpC a) Source | |
NFData a => NFData (SimpC a) Source | |
PTable (SInfo a) Source | |
Fixpoint a => PPrint (SimpC a) Source | |
Fixpoint a => Fixpoint (SimpC a) Source | |
type Rep (SimpC a) Source |
Accessing Constraints
Qualifiers
Qualifiers ----------------------------------------------------------------
Solutions (Instantiated Qualfiers )----------------------------------------
Results
type FixSolution = HashMap KVar Expr Source
Solutions and Results
Result | |
|
Solutions
type Solution = Sol QBind Source
Types ---------------------------------------------------------------------
solFromList :: [(KVar, a)] -> [(KVar, Hyp)] -> Sol a Source
Create a Solution ---------------------------------------------------------
solLookup :: Solution -> KVar -> QBind Source
Read / Write Solution at KVar ---------------------------------------------
Cut KVars
Constraint Cut Sets -------------------------------------------------------