| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Fixpoint.Types.Refinements
Description
This module has the types for representing terms in the refinement logic.
Synopsis
- newtype SymConst = SL Text
- data Constant
- data Bop
- data Brel
- data ExprV v
- = ESym !SymConst
- | ECon !Constant
- | EVar !v
- | EApp !(ExprV v) !(ExprV v)
- | ENeg !(ExprV v)
- | EBin !Bop !(ExprV v) !(ExprV v)
- | ELet !Symbol !(ExprV v) !(ExprV v)
- | EIte !(ExprV v) !(ExprV v) !(ExprV v)
- | ECst !(ExprV v) !Sort
- | ELam !(Symbol, Sort) !(ExprV v)
- | ETApp !(ExprV v) !Sort
- | ETAbs !(ExprV v) !Symbol
- | PAnd ![ExprV v]
- | POr ![ExprV v]
- | PNot !(ExprV v)
- | PImp !(ExprV v) !(ExprV v)
- | PIff !(ExprV v) !(ExprV v)
- | PAtom !Brel !(ExprV v) !(ExprV v)
- | PKVar !KVar !(SubstV v)
- | PAll ![(Symbol, Sort)] !(ExprV v)
- | PExist ![(Symbol, Sort)] !(ExprV v)
- | ECoerc !Sort !Sort !(ExprV v)
- type Pred = Expr
- type Expr = ExprV Symbol
- pattern PTrue :: ExprV v
- pattern PTop :: ExprV v
- pattern PFalse :: ExprV v
- pattern EBot :: ExprV v
- pattern ETimes :: ExprV v -> ExprV v -> ExprV v
- pattern ERTimes :: ExprV v -> ExprV v -> ExprV v
- pattern EDiv :: ExprV v -> ExprV v -> ExprV v
- pattern ERDiv :: ExprV v -> ExprV v -> ExprV v
- pattern EEq :: ExprV v -> ExprV v -> ExprV v
- newtype KVar = KV {}
- type Subst = SubstV Symbol
- newtype SubstV v = Su (HashMap Symbol (ExprV v))
- data KVSub = KVS {}
- type Reft = ReftV Symbol
- newtype ReftV v = Reft (Symbol, ExprV v)
- data SortedReft = RR {}
- eVar :: Symbolic a => a -> Expr
- elit :: Located Symbol -> Sort -> Expr
- eProp :: Symbolic a => a -> Expr
- conj :: [Pred] -> Pred
- pAnd :: (Fixpoint v, Ord v) => ListNE (ExprV v) -> ExprV v
- pOr :: (Fixpoint v, Ord v) => ListNE (ExprV v) -> ExprV v
- pIte :: (Fixpoint v, Ord v) => ExprV v -> ExprV v -> ExprV v -> ExprV v
- pAndNoDedup :: ListNE Pred -> Pred
- (&.&) :: Pred -> Pred -> Pred
- (|.|) :: Pred -> Pred -> Pred
- pExist :: [(Symbol, Sort)] -> ExprV v -> ExprV v
- mkEApp :: LocSymbol -> [Expr] -> Expr
- mkProp :: Expr -> Pred
- intKvar :: Integer -> KVar
- vv_ :: Symbol
- class Expression a where
- class Predicate a where
- class Subable a where
- reft :: Symbol -> ExprV v -> ReftV v
- trueSortedReft :: Sort -> SortedReft
- trueReft :: ReftV v
- falseReft :: ReftV v
- exprReft :: Expression a => a -> Reft
- notExprReft :: Expression a => a -> Reft
- uexprReft :: Expression a => a -> Reft
- symbolReft :: Symbolic a => a -> Reft
- usymbolReft :: Symbolic a => a -> Reft
- propReft :: Predicate a => a -> Reft
- predReft :: Predicate a => a -> Reft
- reftPred :: ReftV v -> ExprV v
- reftBind :: ReftV v -> Symbol
- isFunctionSortedReft :: SortedReft -> Bool
- functionSort :: Sort -> Maybe ([Int], [Sort], Sort)
- isNonTrivial :: SortedReft -> Bool
- isContraPred :: Eq v => ExprV v -> Bool
- isTautoPred :: Eq v => ExprV v -> Bool
- isTautoReft :: Eq v => ReftV v -> Bool
- isSingletonExpr :: Symbol -> Expr -> Maybe Expr
- isSingletonReft :: Reft -> Maybe Expr
- isFalse :: Falseable a => a -> Bool
- flattenRefas :: [ExprV v] -> [ExprV v]
- conjuncts :: Eq v => ExprV v -> [ExprV v]
- concConjuncts :: Expr -> [Expr]
- dropECst :: Expr -> Expr
- eApps :: ExprV v -> [ExprV v] -> ExprV v
- eAppC :: Sort -> Expr -> Expr -> Expr
- eCst :: Expr -> Sort -> Expr
- exprKVars :: Expr -> HashMap KVar [Subst]
- exprSymbolsSet :: Expr -> HashSet Symbol
- splitEApp :: ExprV v -> (ExprV v, [ExprV v])
- splitEAppThroughECst :: Expr -> (Expr, [Expr])
- splitPAnd :: Expr -> [Expr]
- reftConjuncts :: Reft -> [Reft]
- sortedReftSymbols :: SortedReft -> HashSet Symbol
- substSortInExpr :: (Symbol -> Sort) -> Expr -> Expr
- sortSubstInExpr :: SortSubst -> Expr -> Expr
- mapPredReft :: (Expr -> Expr) -> Reft -> Reft
- onEverySubexpr :: (Expr -> Expr) -> Expr -> Expr
- pprintReft :: (PPrint v, Ord v, Fixpoint v) => Tidy -> ReftV v -> Doc
- debruijnIndex :: Expr -> Int
Representing Terms
Expressions ---------------------------------------------------------------
Uninterpreted constants that are embedded as "constant symbol : Str"
Instances
| FromJSON SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON SymConst Source # | |||||
| Data SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SymConst -> c SymConst # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SymConst # toConstr :: SymConst -> Constr # dataTypeOf :: SymConst -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SymConst) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SymConst) # gmapT :: (forall b. Data b => b -> b) -> SymConst -> SymConst # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SymConst -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SymConst -> r # gmapQ :: (forall d. Data d => d -> u) -> SymConst -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SymConst -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SymConst -> m SymConst # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SymConst -> m SymConst # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SymConst -> m SymConst # | |||||
| Generic SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show SymConst Source # | |||||
| Binary SymConst Source # | |||||
| NFData SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq SymConst Source # | |||||
| Ord SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Hashable SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| SMTLIB2 SymConst Source # | |||||
| Symbolic SymConst Source # | String Constants ---------------------------------------------------------- Replace all symbol-representations-of-string-literals with string-literal Used to transform parsed output from fixpoint back into fq. | ||||
| Fixpoint SymConst Source # | |||||
| PPrint SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Store SymConst Source # | |||||
| type Rep SymConst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
Instances
Instances
| FromJSON Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON Bop Source # | |||||
| Data Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bop -> c Bop # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bop # dataTypeOf :: Bop -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bop) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bop) # gmapT :: (forall b. Data b => b -> b) -> Bop -> Bop # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bop -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bop -> r # gmapQ :: (forall d. Data d => d -> u) -> Bop -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Bop -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bop -> m Bop # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bop -> m Bop # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bop -> m Bop # | |||||
| Generic Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show Bop Source # | |||||
| Binary Bop Source # | |||||
| NFData Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq Bop Source # | |||||
| Ord Bop Source # | |||||
| Hashable Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| SMTLIB2 Bop Source # | |||||
| Fixpoint Bop Source # | |||||
| PPrint Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Store Bop Source # | |||||
| type Rep Bop Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep Bop = D1 ('MetaData "Bop" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) ((C1 ('MetaCons "Plus" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Minus" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Times" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Div" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Mod" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RTimes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RDiv" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
Instances
| FromJSON Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON Brel Source # | |||||
| Data Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Brel -> c Brel # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Brel # dataTypeOf :: Brel -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Brel) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Brel) # gmapT :: (forall b. Data b => b -> b) -> Brel -> Brel # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Brel -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Brel -> r # gmapQ :: (forall d. Data d => d -> u) -> Brel -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Brel -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Brel -> m Brel # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Brel -> m Brel # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Brel -> m Brel # | |||||
| Generic Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show Brel Source # | |||||
| Binary Brel Source # | |||||
| NFData Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq Brel Source # | |||||
| Ord Brel Source # | |||||
| Hashable Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| SMTLIB2 Brel Source # | |||||
| Fixpoint Brel Source # | |||||
| PPrint Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Store Brel Source # | |||||
| type Rep Brel Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep Brel = D1 ('MetaData "Brel" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (((C1 ('MetaCons "Eq" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Ne" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Gt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Ge" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Lt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Le" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Ueq" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Une" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
Constructors
| ESym !SymConst | |
| ECon !Constant | |
| EVar !v | |
| EApp !(ExprV v) !(ExprV v) | |
| ENeg !(ExprV v) | |
| EBin !Bop !(ExprV v) !(ExprV v) | |
| ELet !Symbol !(ExprV v) !(ExprV v) | |
| EIte !(ExprV v) !(ExprV v) !(ExprV v) | |
| ECst !(ExprV v) !Sort | |
| ELam !(Symbol, Sort) !(ExprV v) | |
| ETApp !(ExprV v) !Sort | |
| ETAbs !(ExprV v) !Symbol | |
| PAnd ![ExprV v] | |
| POr ![ExprV v] | |
| PNot !(ExprV v) | |
| PImp !(ExprV v) !(ExprV v) | |
| PIff !(ExprV v) !(ExprV v) | |
| PAtom !Brel !(ExprV v) !(ExprV v) | |
| PKVar !KVar !(SubstV v) | |
| PAll ![(Symbol, Sort)] !(ExprV v) | |
| PExist ![(Symbol, Sort)] !(ExprV v) | |
| ECoerc !Sort !Sort !(ExprV v) |
Instances
| FromJSON Expr Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON Expr Source # | |||||
| Foldable ExprV Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods fold :: Monoid m => ExprV m -> m # foldMap :: Monoid m => (a -> m) -> ExprV a -> m # foldMap' :: Monoid m => (a -> m) -> ExprV a -> m # foldr :: (a -> b -> b) -> b -> ExprV a -> b # foldr' :: (a -> b -> b) -> b -> ExprV a -> b # foldl :: (b -> a -> b) -> b -> ExprV a -> b # foldl' :: (b -> a -> b) -> b -> ExprV a -> b # foldr1 :: (a -> a -> a) -> ExprV a -> a # foldl1 :: (a -> a -> a) -> ExprV a -> a # elem :: Eq a => a -> ExprV a -> Bool # maximum :: Ord a => ExprV a -> a # minimum :: Ord a => ExprV a -> a # | |||||
| Traversable ExprV Source # | |||||
| Functor ExprV Source # | |||||
| Defunc Expr Source # | |||||
| Inputable Expr Source # | |||||
| SMTLIB2 Expr Source # | |||||
| Simplifiable Expr Source # | |||||
| Elaborate Expr Source # | |||||
| Expression Expr Source # | |||||
| Predicate Expr Source # | |||||
| Subable Expr Source # | |||||
| ToHornSMT Expr Source # | |||||
| Foldable Expr Source # | |||||
| SymConsts Expr Source # | |||||
| Visitable Expr Source # | |||||
| Store Expr Source # | |||||
| Data v => Data (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExprV v -> c (ExprV v) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ExprV v) # toConstr :: ExprV v -> Constr # dataTypeOf :: ExprV v -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ExprV v)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ExprV v)) # gmapT :: (forall b. Data b => b -> b) -> ExprV v -> ExprV v # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExprV v -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExprV v -> r # gmapQ :: (forall d. Data d => d -> u) -> ExprV v -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ExprV v -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExprV v -> m (ExprV v) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExprV v -> m (ExprV v) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExprV v -> m (ExprV v) # | |||||
| Generic (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| (Show v, Fixpoint v, Ord v) => Show (ExprV v) Source # | |||||
| Binary v => Binary (ExprV v) Source # | |||||
| NFData v => NFData (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq v => Eq (ExprV v) Source # | |||||
| Ord v => Ord (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Hashable v => Hashable (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| SMTLIB2 (Triggered Expr) Source # | |||||
| (Ord v, Fixpoint v) => Fixpoint (ExprV v) Source # | |||||
| (Ord v, Fixpoint v, PPrint v) => PPrint (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| SMTLIB2 (Symbol, Expr) Source # | |||||
| type Rep (ExprV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep (ExprV v) = D1 ('MetaData "ExprV" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) ((((C1 ('MetaCons "ESym" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SymConst)) :+: C1 ('MetaCons "ECon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Constant))) :+: (C1 ('MetaCons "EVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 v)) :+: (C1 ('MetaCons "EApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: C1 ('MetaCons "ENeg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))))) :+: ((C1 ('MetaCons "EBin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bop) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))) :+: (C1 ('MetaCons "ELet" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))) :+: C1 ('MetaCons "EIte" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))))) :+: (C1 ('MetaCons "ECst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort)) :+: (C1 ('MetaCons "ELam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Symbol, Sort)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: C1 ('MetaCons "ETApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort)))))) :+: (((C1 ('MetaCons "ETAbs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Symbol)) :+: C1 ('MetaCons "PAnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [ExprV v]))) :+: (C1 ('MetaCons "POr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [ExprV v])) :+: (C1 ('MetaCons "PNot" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: C1 ('MetaCons "PImp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))))) :+: ((C1 ('MetaCons "PIff" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: (C1 ('MetaCons "PAtom" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Brel) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v)))) :+: C1 ('MetaCons "PKVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KVar) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SubstV v))))) :+: (C1 ('MetaCons "PAll" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Symbol, Sort)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: (C1 ('MetaCons "PExist" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Symbol, Sort)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))) :+: C1 ('MetaCons "ECoerc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ExprV v))))))))) | |||||
Kvars ---------------------------------------------------------------------
Instances
| FromJSON KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON KVar Source # | |||||
| ToJSONKey KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Data KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> KVar -> c KVar # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c KVar # dataTypeOf :: KVar -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c KVar) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KVar) # gmapT :: (forall b. Data b => b -> b) -> KVar -> KVar # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> KVar -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> KVar -> r # gmapQ :: (forall d. Data d => d -> u) -> KVar -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> KVar -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> KVar -> m KVar # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> KVar -> m KVar # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> KVar -> m KVar # | |||||
| IsString KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods fromString :: String -> KVar # | |||||
| Generic KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show KVar Source # | |||||
| Binary KVar Source # | |||||
| NFData KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq KVar Source # | |||||
| Ord KVar Source # | |||||
| Hashable KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Fixpoint KVar Source # | |||||
| PPrint KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToHornSMT KVar Source # | |||||
| Store KVar Source # | |||||
| type Rep KVar Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
type Subst = SubstV Symbol Source #
Substitutions -------------------------------------------------------------
Instances
| FromJSON Subst Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToJSON Subst Source # | |||||
| Foldable SubstV Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods fold :: Monoid m => SubstV m -> m # foldMap :: Monoid m => (a -> m) -> SubstV a -> m # foldMap' :: Monoid m => (a -> m) -> SubstV a -> m # foldr :: (a -> b -> b) -> b -> SubstV a -> b # foldr' :: (a -> b -> b) -> b -> SubstV a -> b # foldl :: (b -> a -> b) -> b -> SubstV a -> b # foldl' :: (b -> a -> b) -> b -> SubstV a -> b # foldr1 :: (a -> a -> a) -> SubstV a -> a # foldl1 :: (a -> a -> a) -> SubstV a -> a # elem :: Eq a => a -> SubstV a -> Bool # maximum :: Ord a => SubstV a -> a # minimum :: Ord a => SubstV a -> a # | |||||
| Traversable SubstV Source # | |||||
| Functor SubstV Source # | |||||
| Monoid Subst Source # | |||||
| Semigroup Subst Source # | |||||
| ToHornSMT Subst Source # | |||||
| Store Subst Source # | |||||
| Data v => Data (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SubstV v -> c (SubstV v) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SubstV v) # toConstr :: SubstV v -> Constr # dataTypeOf :: SubstV v -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SubstV v)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SubstV v)) # gmapT :: (forall b. Data b => b -> b) -> SubstV v -> SubstV v # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SubstV v -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SubstV v -> r # gmapQ :: (forall d. Data d => d -> u) -> SubstV v -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SubstV v -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SubstV v -> m (SubstV v) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SubstV v -> m (SubstV v) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SubstV v -> m (SubstV v) # | |||||
| Generic (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| (Fixpoint v, Ord v, Show v) => Show (SubstV v) Source # | |||||
| Binary v => Binary (SubstV v) Source # | |||||
| NFData v => NFData (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq v => Eq (SubstV v) Source # | |||||
| Ord v => Ord (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Hashable v => Hashable (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| (Ord v, Fixpoint v) => Fixpoint (SubstV v) Source # | |||||
| (Ord v, Fixpoint v) => PPrint (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| type Rep (SubstV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep (SubstV v) = D1 ('MetaData "SubstV" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'True) (C1 ('MetaCons "Su" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashMap Symbol (ExprV v))))) | |||||
Instances
| Data KVSub Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> KVSub -> c KVSub # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c KVSub # dataTypeOf :: KVSub -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c KVSub) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KVSub) # gmapT :: (forall b. Data b => b -> b) -> KVSub -> KVSub # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> KVSub -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> KVSub -> r # gmapQ :: (forall d. Data d => d -> u) -> KVSub -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> KVSub -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> KVSub -> m KVSub # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> KVSub -> m KVSub # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> KVSub -> m KVSub # | |||||
| Generic KVSub Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show KVSub Source # | |||||
| Eq KVSub Source # | |||||
| PPrint KVSub Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| type Rep KVSub Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep KVSub = D1 ('MetaData "KVSub" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "KVS" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ksuVV") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Symbol) :*: S1 ('MetaSel ('Just "ksuSort") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Sort)) :*: (S1 ('MetaSel ('Just "ksuKVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KVar) :*: S1 ('MetaSel ('Just "ksuSubst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Subst)))) | |||||
Refinement of v satisfying a predicate
e.g. in '{x: _ | e }' x is the Symbol and e the ExprV v
Instances
| Foldable ReftV Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods fold :: Monoid m => ReftV m -> m # foldMap :: Monoid m => (a -> m) -> ReftV a -> m # foldMap' :: Monoid m => (a -> m) -> ReftV a -> m # foldr :: (a -> b -> b) -> b -> ReftV a -> b # foldr' :: (a -> b -> b) -> b -> ReftV a -> b # foldl :: (b -> a -> b) -> b -> ReftV a -> b # foldl' :: (b -> a -> b) -> b -> ReftV a -> b # foldr1 :: (a -> a -> a) -> ReftV a -> a # foldl1 :: (a -> a -> a) -> ReftV a -> a # elem :: Eq a => a -> ReftV a -> Bool # maximum :: Ord a => ReftV a -> a # minimum :: Ord a => ReftV a -> a # | |||||
| Traversable ReftV Source # | |||||
| Functor ReftV Source # | |||||
| Show Reft Source # | |||||
| Defunc Reft Source # | |||||
| Fixpoint Reft Source # | |||||
| Expression Reft Source # | |||||
| Subable Reft Source # | |||||
| Foldable Reft Source # | |||||
| SymConsts Reft Source # | |||||
| Visitable Reft Source # | |||||
| Store Reft Source # | |||||
| Data v => Data (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ReftV v -> c (ReftV v) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ReftV v) # toConstr :: ReftV v -> Constr # dataTypeOf :: ReftV v -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ReftV v)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ReftV v)) # gmapT :: (forall b. Data b => b -> b) -> ReftV v -> ReftV v # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ReftV v -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ReftV v -> r # gmapQ :: (forall d. Data d => d -> u) -> ReftV v -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ReftV v -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ReftV v -> m (ReftV v) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ReftV v -> m (ReftV v) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ReftV v -> m (ReftV v) # | |||||
| Generic (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Binary v => Binary (ReftV v) Source # | |||||
| NFData v => NFData (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Eq v => Eq (ReftV v) Source # | |||||
| Ord v => Ord (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Hashable v => Hashable (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| (PPrint v, Fixpoint v, Ord v) => PPrint (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions | |||||
| type Rep (ReftV v) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep (ReftV v) = D1 ('MetaData "ReftV" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'True) (C1 ('MetaCons "Reft" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Symbol, ExprV v)))) | |||||
data SortedReft Source #
Instances
| Data SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SortedReft -> c SortedReft # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SortedReft # toConstr :: SortedReft -> Constr # dataTypeOf :: SortedReft -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SortedReft) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SortedReft) # gmapT :: (forall b. Data b => b -> b) -> SortedReft -> SortedReft # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SortedReft -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SortedReft -> r # gmapQ :: (forall d. Data d => d -> u) -> SortedReft -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SortedReft -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SortedReft -> m SortedReft # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SortedReft -> m SortedReft # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SortedReft -> m SortedReft # | |||||
| Generic SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Associated Types
| |||||
| Show SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions Methods showsPrec :: Int -> SortedReft -> ShowS # show :: SortedReft -> String # showList :: [SortedReft] -> ShowS # | |||||
| NFData SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods rnf :: SortedReft -> () # | |||||
| Eq SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Ord SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods compare :: SortedReft -> SortedReft -> Ordering # (<) :: SortedReft -> SortedReft -> Bool # (<=) :: SortedReft -> SortedReft -> Bool # (>) :: SortedReft -> SortedReft -> Bool # (>=) :: SortedReft -> SortedReft -> Bool # max :: SortedReft -> SortedReft -> SortedReft # min :: SortedReft -> SortedReft -> SortedReft # | |||||
| Hashable SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Defunc SortedReft Source # | |||||
Defined in Language.Fixpoint.Defunctionalize Methods defunc :: SortedReft -> DF SortedReft Source # | |||||
| Elaborate SortedReft Source # | |||||
Defined in Language.Fixpoint.SortCheck Methods elaborate :: ElabParam -> SortedReft -> SortedReft Source # | |||||
| Fixpoint SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions | |||||
| PPrint SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions Methods pprintTidy :: Tidy -> SortedReft -> Doc Source # pprintPrec :: Int -> Tidy -> SortedReft -> Doc Source # | |||||
| Expression SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements Methods expr :: SortedReft -> Expr Source # | |||||
| Subable SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions Methods syms :: SortedReft -> [Symbol] Source # substa :: (Symbol -> Symbol) -> SortedReft -> SortedReft Source # substf :: (Symbol -> Expr) -> SortedReft -> SortedReft Source # subst :: Subst -> SortedReft -> SortedReft Source # subst1 :: SortedReft -> (Symbol, Expr) -> SortedReft Source # | |||||
| Foldable SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Visitor Methods foldE :: Monoid a => Folder a c -> c -> SortedReft -> FoldM a SortedReft Source # | |||||
| SymConsts SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Visitor Methods symConsts :: SortedReft -> [SymConst] Source # | |||||
| Visitable SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Visitor Methods transE :: (Expr -> Expr) -> SortedReft -> SortedReft Source # | |||||
| Store SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| Monoid (BindEnv a) Source # | |||||
| Semigroup (BindEnv a) Source # | |||||
| NFData a => NFData (BindEnv a) Source # | |||||
Defined in Language.Fixpoint.Types.Environments | |||||
| Defunc (BindEnv a) Source # | |||||
| Loc a => Elaborate (BindEnv a) Source # | |||||
| Fixpoint (BindEnv a) Source # | |||||
| Foldable (BindEnv a) Source # | |||||
| SymConsts (BindEnv a) Source # | |||||
| Visitable (BindEnv a) Source # | |||||
| Store a => Store (BindEnv a) Source # | |||||
| Defunc (Symbol, SortedReft) Source # | |||||
Defined in Language.Fixpoint.Defunctionalize Methods defunc :: (Symbol, SortedReft) -> DF (Symbol, SortedReft) Source # | |||||
| Expression (Symbol, SortedReft) Source # | |||||
Defined in Language.Fixpoint.Types.Substitutions | |||||
| Foldable (Symbol, SortedReft, a) Source # | |||||
Defined in Language.Fixpoint.Types.Visitor Methods foldE :: Monoid a0 => Folder a0 c -> c -> (Symbol, SortedReft, a) -> FoldM a0 (Symbol, SortedReft, a) Source # | |||||
| Visitable (Symbol, SortedReft, a) Source # | |||||
Defined in Language.Fixpoint.Types.Visitor Methods transE :: (Expr -> Expr) -> (Symbol, SortedReft, a) -> (Symbol, SortedReft, a) Source # | |||||
| type Rep SortedReft Source # | |||||
Defined in Language.Fixpoint.Types.Refinements type Rep SortedReft = D1 ('MetaData "SortedReft" "Language.Fixpoint.Types.Refinements" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "RR" 'PrefixI 'True) (S1 ('MetaSel ('Just "sr_sort") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Sort) :*: S1 ('MetaSel ('Just "sr_reft") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Reft))) | |||||
Constructing Terms
Generalizing Embedding with Typeclasses
class Expression a where Source #
Generalizing Symbol, Expression, Predicate into Classes -----------
Values that can be viewed as Constants
Values that can be viewed as Expressions
Instances
| Expression Symbol Source # | The symbol may be an encoding of a SymConst. |
| Expression Expr Source # | |
| Expression Reft Source # | |
| Expression SortedReft Source # | |
Defined in Language.Fixpoint.Types.Refinements Methods expr :: SortedReft -> Expr Source # | |
| Expression Text Source # | |
| Expression Integer Source # | |
| Expression Int Source # | |
| Expression a => Expression (Located a) Source # | |
| Expression (Symbol, SortedReft) Source # | |
Defined in Language.Fixpoint.Types.Substitutions | |
class Predicate a where Source #
Values that can be viewed as Predicates
class Subable a where Source #
Class Predicates for Valid Refinements -----------------------------
Methods
Arguments
| :: a | |
| -> [Symbol] | free symbols of a |
substa :: (Symbol -> Symbol) -> a -> a Source #
substf :: (Symbol -> Expr) -> a -> a Source #
Instances
| Subable Pred Source # | |
| Subable Equation Source # | |
Defined in Language.Fixpoint.Types.Constraints | |
| Subable Qualifier Source # | |
Defined in Language.Fixpoint.Types.Constraints | |
| Subable Symbol Source # | |
| Subable Expr Source # | |
| Subable Reft Source # | |
| Subable SortedReft Source # | |
Defined in Language.Fixpoint.Types.Substitutions Methods syms :: SortedReft -> [Symbol] Source # substa :: (Symbol -> Symbol) -> SortedReft -> SortedReft Source # substf :: (Symbol -> Expr) -> SortedReft -> SortedReft Source # subst :: Subst -> SortedReft -> SortedReft Source # subst1 :: SortedReft -> (Symbol, Expr) -> SortedReft Source # | |
| Subable () Source # | |
| Subable (Bind a) Source # | |
| Subable a => Subable (Located a) Source # | |
Defined in Language.Fixpoint.Types.Refinements | |
| Subable a => Subable (Maybe a) Source # | |
Defined in Language.Fixpoint.Types.Substitutions | |
| Subable a => Subable [a] Source # | |
| Subable a => Subable (HashMap k a) Source # | |
Defined in Language.Fixpoint.Types.Substitutions | |
| (Subable a, Subable b) => Subable (a, b) Source # | |
Constructors
trueSortedReft :: Sort -> SortedReft Source #
exprReft :: Expression a => a -> Reft Source #
notExprReft :: Expression a => a -> Reft Source #
uexprReft :: Expression a => a -> Reft Source #
symbolReft :: Symbolic a => a -> Reft Source #
Generally Useful Refinements --------------------------
usymbolReft :: Symbolic a => a -> Reft Source #
Predicates
isFunctionSortedReft :: SortedReft -> Bool Source #
Refinements ----------------------------------------------
isNonTrivial :: SortedReft -> Bool Source #
isSingletonReft :: Reft -> Maybe Expr Source #
Predicates ----------------------------------------------------------------
Destructing
flattenRefas :: [ExprV v] -> [ExprV v] Source #
concConjuncts :: Expr -> [Expr] Source #
reftConjuncts :: Reft -> [Reft] Source #
Transforming
debruijnIndex :: Expr -> Int Source #