liquid-fixpoint-0.5.0.1: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver

Safe HaskellNone
LanguageHaskell98

Language.Fixpoint.SortCheck

Contents

Description

This module has the functions that perform sort-checking, and related operations on Fixpoint expressions and predicates.

Synopsis

Sort Substitutions

data TVSubst Source

API for manipulating Sort Substitutions ---------------------------

Instances

Checking Well-Formedness

checkSorted :: Checkable a => SEnv Sort -> a -> Maybe Doc Source

checkSortedReft :: SEnv SortedReft -> [Symbol] -> SortedReft -> Maybe Doc Source

Checking Refinements -----------------------------------------------

checkSortFull :: Checkable a => SEnv SortedReft -> Sort -> a -> Maybe Doc Source

Sort inference

sortExpr :: SrcSpan -> SEnv Sort -> Expr -> Sort Source

Sort Inference -----------------------------------------------

Unify

unifyFast :: Bool -> Env -> Sort -> Sort -> Maybe TVSubst Source

Fast Unification; `unifyFast True` is just equality

unify :: Env -> Sort -> Sort -> Maybe TVSubst Source

Sort Unification

Apply Substitution

apply :: TVSubst -> Sort -> Sort Source

Applying a Type Substitution ---------------------------------------

Exported Sorts

boolSort :: Sort Source

Exported Basic Sorts -----------------------------------------------

strSort :: Sort Source

Exported Basic Sorts -----------------------------------------------

Predicates on Sorts

isFirstOrder :: Sort -> Bool Source

Predicates on Sorts ------------------------------------------------