Safe Haskell | Safe-Inferred |
---|---|
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
Constructors
Head !Pred !a | p |
CAnd ![Cstr a] | c1 ... cn |
All !(Bind a) !(Cstr a) | all x:t. p => c |
Any !(Bind a) !(Cstr a) | exi x:t. p / c or is it exi x:t. p => c? |
Instances
HPred
is a Horn predicate that appears as LHS (body) or RHS (head) of constraints
Instances
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 # | |
Show (Bind a) Source # | |
Eq a => Eq (Bind a) Source # | |
ToHornSMT (Bind a) Source # | |
PPrint (Bind a) Source # | |
Defined in Language.Fixpoint.Horn.Types | |
Subable (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.1-BCIWdTkZFz53NySssdlA6L" '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 # | |
Show (Var a) Source # | |
Eq a => Eq (Var a) Source # | |
Ord a => Ord (Var a) Source # | |
ToHornSMT (Var a) Source # | |
PPrint (Var a) Source # | |
Defined in Language.Fixpoint.Horn.Types | |
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.1-BCIWdTkZFz53NySssdlA6L" '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 # | |
Show Tag Source # | |
NFData Tag Source # | |
Defined in Language.Fixpoint.Horn.Types | |
ToHornSMT Tag Source # | |
Fixpoint Tag Source # | |
PPrint Tag Source # | |
Defined in Language.Fixpoint.Horn.Types | |
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.1-BCIWdTkZFz53NySssdlA6L" 'False) (C1 ('MetaCons "NoTag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Tag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) |
accessing constraint labels
invariants (refinements) on constraints
extract qualifiers
SMTLIB style render
class ToHornSMT a where Source #
Instances
ToHornSMT Pred Source # | |
ToHornSMT Tag Source # | |
ToHornSMT Equation Source # | |
ToHornSMT QualParam Source # | |
ToHornSMT Qualifier Source # | |
ToHornSMT Rewrite Source # | |
ToHornSMT Symbol Source # | |
ToHornSMT Expr Source # | |
ToHornSMT KVar Source # | |
ToHornSMT Subst Source # | |
ToHornSMT DataCtor Source # | |
ToHornSMT DataDecl Source # | |
ToHornSMT DataField Source # | |
ToHornSMT FTycon Source # | |
ToHornSMT Sort Source # | |
ToHornSMT (Bind a) Source # | |
ToHornSMT (Cstr a) Source # | |
ToHornSMT (Query a) Source # | |
ToHornSMT (Var a) Source # | |
ToHornSMT a => ToHornSMT (Located a) Source # | |
ToHornSMT a => ToHornSMT [a] Source # | |
Defined in Language.Fixpoint.Horn.Types | |
ToHornSMT a => ToHornSMT (Symbol, a) Source # | |