| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Fixpoint.Horn.Types
Description
This module formalizes the key datatypes needed to represent Horn NNF constraints as described in "Local Refinement Typing", ICFP 2017
Horn Constraints and their components
Query is an NNF Horn Constraint.
Constructors
| Query | |
Fields
| |
Instances
Instances
| Functor Cstr Source # | |||||
| FromJSON a => FromJSON (Cstr a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToJSON a => ToJSON (Cstr a) Source # | |||||
| Data a => Data (Cstr a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Cstr a -> c (Cstr a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Cstr a) # toConstr :: Cstr a -> Constr # dataTypeOf :: Cstr a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Cstr a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Cstr a)) # gmapT :: (forall b. Data b => b -> b) -> Cstr a -> Cstr a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Cstr a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Cstr a -> r # gmapQ :: (forall d. Data d => d -> u) -> Cstr a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Cstr a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Cstr a -> m (Cstr a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Cstr a -> m (Cstr a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Cstr a -> m (Cstr a) # | |||||
| Generic (Cstr a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Associated Types
| |||||
| Show (Cstr a) Source # | |||||
| Eq a => Eq (Cstr a) Source # | |||||
| PPrint (Cstr a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToHornSMT (Cstr a) Source # | |||||
| Foldable (Cstr a) Source # | |||||
| type Rep (Cstr a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types type Rep (Cstr a) = D1 ('MetaData "Cstr" "Language.Fixpoint.Horn.Types" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "Head" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Pred) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: (C1 ('MetaCons "CAnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Cstr a])) :+: C1 ('MetaCons "All" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Bind a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Cstr a))))) | |||||
HPred is a Horn predicate that appears as LHS (body) or RHS (head) of constraints
Instances
| FromJSON Pred Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToJSON Pred Source # | |||||
| Data Pred Source # | |||||
Defined in Language.Fixpoint.Horn.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pred -> c Pred # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pred # dataTypeOf :: Pred -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pred) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pred) # gmapT :: (forall b. Data b => b -> b) -> Pred -> Pred # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pred -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pred -> r # gmapQ :: (forall d. Data d => d -> u) -> Pred -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Pred -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pred -> m Pred # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pred -> m Pred # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pred -> m Pred # | |||||
| Generic Pred Source # | |||||
Defined in Language.Fixpoint.Horn.Types Associated Types
| |||||
| Show Pred Source # | |||||
| Eq Pred Source # | |||||
| PPrint Pred Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| Subable Pred Source # | |||||
| ToHornSMT Pred Source # | |||||
| Foldable Pred Source # | |||||
| type Rep Pred Source # | |||||
Defined in Language.Fixpoint.Horn.Types type Rep Pred = D1 ('MetaData "Pred" "Language.Fixpoint.Horn.Types" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "Reft" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Expr)) :+: (C1 ('MetaCons "Var" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Expr])) :+: C1 ('MetaCons "PAnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Pred])))) | |||||
Cst is an NNF Horn Constraint.
Instances
| Functor Bind Source # | |||||
| FromJSON a => FromJSON (Bind a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToJSON a => ToJSON (Bind a) Source # | |||||
| Data a => Data (Bind a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bind a -> c (Bind a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Bind a) # toConstr :: Bind a -> Constr # dataTypeOf :: Bind a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Bind a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Bind a)) # gmapT :: (forall b. Data b => b -> b) -> Bind a -> Bind a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bind a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bind a -> r # gmapQ :: (forall d. Data d => d -> u) -> Bind a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Bind a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bind a -> m (Bind a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bind a -> m (Bind a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bind a -> m (Bind a) # | |||||
| Generic (Bind a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Associated Types
| |||||
| Show (Bind a) Source # | |||||
| Eq a => Eq (Bind a) Source # | |||||
| PPrint (Bind a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| Subable (Bind a) Source # | |||||
| ToHornSMT (Bind a) Source # | |||||
| type Rep (Bind a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types type Rep (Bind a) = D1 ('MetaData "Bind" "Language.Fixpoint.Horn.Types" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "Bind" 'PrefixI 'True) ((S1 ('MetaSel ('Just "bSym") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: S1 ('MetaSel ('Just "bSort") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort)) :*: (S1 ('MetaSel ('Just "bPred") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Pred) :*: S1 ('MetaSel ('Just "bMeta") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))) | |||||
HVar is a Horn variable
Constructors
| HVar | |
Instances
| Functor Var Source # | |||||
| FromJSON a => FromJSON (Var a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToJSON a => ToJSON (Var a) Source # | |||||
| Data a => Data (Var a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var a -> c (Var a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Var a) # dataTypeOf :: Var a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Var a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Var a)) # gmapT :: (forall b. Data b => b -> b) -> Var a -> Var a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var a -> r # gmapQ :: (forall d. Data d => d -> u) -> Var a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) # | |||||
| Generic (Var a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types Associated Types
| |||||
| Show (Var a) Source # | |||||
| Eq a => Eq (Var a) Source # | |||||
| Ord a => Ord (Var a) Source # | |||||
| PPrint (Var a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToHornSMT (Var a) Source # | |||||
| type Rep (Var a) Source # | |||||
Defined in Language.Fixpoint.Horn.Types type Rep (Var a) = D1 ('MetaData "Var" "Language.Fixpoint.Horn.Types" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "HVar" 'PrefixI 'True) (S1 ('MetaSel ('Just "hvName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: (S1 ('MetaSel ('Just "hvArgs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Sort]) :*: S1 ('MetaSel ('Just "hvMeta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) | |||||
Raw Query
Instances
| FromJSON Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToJSON Tag Source # | |||||
| Data Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tag -> c Tag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Tag # dataTypeOf :: Tag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Tag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Tag) # gmapT :: (forall b. Data b => b -> b) -> Tag -> Tag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tag -> r # gmapQ :: (forall d. Data d => d -> u) -> Tag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Tag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tag -> m Tag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tag -> m Tag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tag -> m Tag # | |||||
| Generic Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types Associated Types
| |||||
| Show Tag Source # | |||||
| NFData Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| Fixpoint Tag Source # | |||||
| PPrint Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types | |||||
| ToHornSMT Tag Source # | |||||
| Loc Tag Source # | |||||
| type Rep Tag Source # | |||||
Defined in Language.Fixpoint.Horn.Types type Rep Tag = D1 ('MetaData "Tag" "Language.Fixpoint.Horn.Types" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "NoTag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Tag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) | |||||