liquid-fixpoint-0.9.6.3.4: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
Safe HaskellNone
LanguageHaskell98

Language.Fixpoint.Types.Substitutions

Description

This module contains the various instances for Subable, which (should) depend on the visitors, and hence cannot be in the same place as the Term definitions.

Synopsis

Documentation

subst1Except :: Subable a => [Symbol] -> a -> (Symbol, Expr) -> a Source #

rapierSubstExpr :: HashSet Symbol -> Subst -> Expr -> Expr Source #

Rapier style capture-avoiding substitution

The scope set parameter must contain any symbols that are expected to appear free in the result expression. Typically, this is the set of symbols that are free in the range of the substitution, plus any symbols that are already free in the input expression.

Orphan instances

Monoid Subst Source # 
Instance details

Methods

mempty :: Subst #

mappend :: Subst -> Subst -> Subst #

mconcat :: [Subst] -> Subst #

Semigroup Subst Source # 
Instance details

Methods

(<>) :: Subst -> Subst -> Subst #

sconcat :: NonEmpty Subst -> Subst #

stimes :: Integral b => b -> Subst -> Subst #

Show Reft Source # 
Instance details

Methods

showsPrec :: Int -> Reft -> ShowS #

show :: Reft -> String #

showList :: [Reft] -> ShowS #

Show SortedReft Source # 
Instance details

Fixpoint Reft Source # 
Instance details

Fixpoint SortedReft Source # 
Instance details

PPrint SortedReft Source # 
Instance details

Subable Symbol Source # 
Instance details

Subable Expr Source # 
Instance details

Subable Reft Source # 
Instance details

Subable SortedReft Source # 
Instance details

Subable () Source # 
Instance details

Methods

syms :: () -> [Symbol] Source #

substa :: (Symbol -> Symbol) -> () -> () Source #

substf :: (Symbol -> Expr) -> () -> () Source #

subst :: Subst -> () -> () Source #

subst1 :: () -> (Symbol, Expr) -> () Source #

(PPrint v, Fixpoint v, Ord v) => PPrint (ReftV v) Source # 
Instance details

Methods

pprintTidy :: Tidy -> ReftV v -> Doc Source #

pprintPrec :: Int -> Tidy -> ReftV v -> Doc Source #

Subable a => Subable (Maybe a) Source # 
Instance details

Methods

syms :: Maybe a -> [Symbol] Source #

substa :: (Symbol -> Symbol) -> Maybe a -> Maybe a Source #

substf :: (Symbol -> Expr) -> Maybe a -> Maybe a Source #

subst :: Subst -> Maybe a -> Maybe a Source #

subst1 :: Maybe a -> (Symbol, Expr) -> Maybe a Source #

Subable a => Subable [a] Source # 
Instance details

Methods

syms :: [a] -> [Symbol] Source #

substa :: (Symbol -> Symbol) -> [a] -> [a] Source #

substf :: (Symbol -> Expr) -> [a] -> [a] Source #

subst :: Subst -> [a] -> [a] Source #

subst1 :: [a] -> (Symbol, Expr) -> [a] Source #

Expression (Symbol, SortedReft) Source # 
Instance details

Methods

expr :: (Symbol, SortedReft) -> Expr Source #

Subable a => Subable (HashMap k a) Source # 
Instance details

Methods

syms :: HashMap k a -> [Symbol] Source #

substa :: (Symbol -> Symbol) -> HashMap k a -> HashMap k a Source #

substf :: (Symbol -> Expr) -> HashMap k a -> HashMap k a Source #

subst :: Subst -> HashMap k a -> HashMap k a Source #

subst1 :: HashMap k a -> (Symbol, Expr) -> HashMap k a Source #

(Subable a, Subable b) => Subable (a, b) Source # 
Instance details

Methods

syms :: (a, b) -> [Symbol] Source #

substa :: (Symbol -> Symbol) -> (a, b) -> (a, b) Source #

substf :: (Symbol -> Expr) -> (a, b) -> (a, b) Source #

subst :: Subst -> (a, b) -> (a, b) Source #

subst1 :: (a, b) -> (Symbol, Expr) -> (a, b) Source #