| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Tip.Types
Contents
Description
the abstract syntax
- data Head a
- data Local a = Local {}
- data Global a = Global {}
- data Expr a
- data Quant
- data QuantInfo
- data Case a = Case {}
- data Builtin
- intBuiltin :: Builtin -> Bool
- litBuiltin :: Builtin -> Bool
- eqRelatedBuiltin :: Builtin -> Bool
- logicalBuiltin :: Builtin -> Bool
- data Lit
- data Pattern a
- data PolyType a = PolyType {
- polytype_tvs :: [a]
- polytype_args :: [Type a]
- polytype_res :: Type a
- data Type a
- = TyVar a
- | TyCon a [Type a]
- | [Type a] :=>: (Type a)
- | BuiltinType BuiltinType
- data BuiltinType
- data Function a = Function {}
- data Signature a = Signature {}
- data Sort a = Sort {}
- data Datatype a = Datatype {
- data_name :: a
- data_tvs :: [a]
- data_cons :: [Constructor a]
- data Constructor a = Constructor {
- con_name :: a
- con_discrim :: a
- con_args :: [(a, Type a)]
- data Theory a = Theory {
- thy_datatypes :: [Datatype a]
- thy_sorts :: [Sort a]
- thy_sigs :: [Signature a]
- thy_funcs :: [Function a]
- thy_asserts :: [Formula a]
- emptyTheory :: Theory a
- joinTheories :: Theory a -> Theory a -> Theory a
- data Formula a = Formula {}
- data Info a
- = Definition a
- | IH Int
- | Lemma Int
- | Projection a
- | DataDomain a
- | DataProjection a
- | DataDistinct a
- | Defunction a
- | UserAsserted
- | Unknown
- data Role
- data Decl a
- theoryDecls :: Theory a -> [Decl a]
- declsToTheory :: [Decl a] -> Theory a
- declsPass :: ([Decl a] -> [Decl b]) -> Theory a -> Theory b
- transformExpr :: (Expr a -> Expr a) -> Expr a -> Expr a
- transformExprM :: Monad m => (Expr a -> m (Expr a)) -> Expr a -> m (Expr a)
- transformExprIn :: TransformBi (Expr a) (f a) => (Expr a -> Expr a) -> f a -> f a
- transformExprInM :: TransformBiM m (Expr a) (f a) => (Expr a -> m (Expr a)) -> f a -> m (f a)
- transformType :: (Type a -> Type a) -> Type a -> Type a
- transformTypeInExpr :: (Type a -> Type a) -> Expr a -> Expr a
- transformTypeInDecl :: (Type a -> Type a) -> Decl a -> Decl a
Documentation
Instances
| Functor Local Source | |
| Foldable Local Source | |
| Traversable Local Source | |
| Monad m => TransformBiM m (Local a) (Expr a) Source | |
| Eq a => Eq (Local a) Source | |
| Ord a => Ord (Local a) Source | |
| Show a => Show (Local a) Source | |
| UniverseBi (Theory a) (Local a) Source | |
| UniverseBi (Expr a) (Local a) Source | |
| TransformBi (Local a) (Expr a) Source |
Instances
| Functor Global Source | |
| Foldable Global Source | |
| Traversable Global Source | |
| Eq a => Eq (Global a) Source | |
| Ord a => Ord (Global a) Source | |
| Show a => Show (Global a) Source | |
| UniverseBi (Theory a) (Global a) Source | |
| UniverseBi (Function a) (Global a) Source | |
| UniverseBi (Expr a) (Global a) Source | |
| TransformBi (Global a) (Theory a) Source |
Constructors
| (Head a) :@: [Expr a] infix 5 | Function application: always perfectly saturated.
Lambdas and locals are applied with |
| Lcl (Local a) | |
| Lam [Local a] (Expr a) | |
| Match (Expr a) [Case a] | The default case comes first if there is one |
| Let (Local a) (Expr a) (Expr a) |
|
| Quant QuantInfo Quant [Local a] (Expr a) |
Instances
| Functor Expr Source | |
| Foldable Expr Source | |
| Traversable Expr Source | |
| TransformBi a (Expr a) Source | |
| Monad m => TransformBiM m (Expr a) (Formula a) Source | |
| Monad m => TransformBiM m (Expr a) (Theory a) Source | |
| Monad m => TransformBiM m (Local a) (Expr a) Source | |
| Monad m => TransformBiM m (Pattern a) (Expr a) Source | |
| Monad m => TransformBiM m (Expr a) (Function a) Source | |
| Monad m => TransformBiM m (Expr a) (Expr a) Source | |
| Eq a => Eq (Expr a) Source | |
| Ord a => Ord (Expr a) Source | |
| Show a => Show (Expr a) Source | |
| UniverseBi (Theory a) (Expr a) Source | |
| UniverseBi (Function a) (Expr a) Source | |
| UniverseBi (Expr a) (Expr a) Source | |
| UniverseBi (Expr a) (Pattern a) Source | |
| UniverseBi (Expr a) (Local a) Source | |
| UniverseBi (Expr a) (Global a) Source | |
| TransformBi (Type a) (Expr a) Source | |
| TransformBi (Pattern a) (Expr a) Source | |
| TransformBi (Expr a) (Expr a) Source | |
| TransformBi (Expr a) (Function a) Source | |
| TransformBi (Expr a) (Theory a) Source | |
| TransformBi (Local a) (Expr a) Source | |
| TransformBi (Head a) (Expr a) Source |
intBuiltin :: Builtin -> Bool Source
litBuiltin :: Builtin -> Bool Source
eqRelatedBuiltin :: Builtin -> Bool Source
logicalBuiltin :: Builtin -> Bool Source
Patterns in branches
Instances
| Functor Pattern Source | |
| Foldable Pattern Source | |
| Traversable Pattern Source | |
| Monad m => TransformBiM m (Pattern a) (Expr a) Source | |
| Eq a => Eq (Pattern a) Source | |
| Ord a => Ord (Pattern a) Source | |
| Show a => Show (Pattern a) Source | |
| UniverseBi (Expr a) (Pattern a) Source | |
| TransformBi (Pattern a) (Expr a) Source | |
| TransformBi (Pattern a) (Theory a) Source |
Polymorphic types
Constructors
| PolyType | |
Fields
| |
Types
Constructors
| TyVar a | |
| TyCon a [Type a] | |
| [Type a] :=>: (Type a) | |
| BuiltinType BuiltinType |
Instances
| Functor Type Source | |
| Foldable Type Source | |
| Traversable Type Source | |
| Monad m => TransformBiM m (Type a) (Theory a) Source | |
| Monad m => TransformBiM m (Type a) (Type a) Source | |
| Eq a => Eq (Type a) Source | |
| Ord a => Ord (Type a) Source | |
| Show a => Show (Type a) Source | |
| UniverseBi (Theory a) (Type a) Source | |
| UniverseBi (Datatype a) (Type a) Source | |
| UniverseBi (Function a) (Type a) Source | |
| UniverseBi (Type a) (Type a) Source | |
| TransformBi (Type a) (Theory a) Source | |
| TransformBi (Type a) (Decl a) Source | |
| TransformBi (Type a) (Expr a) Source | |
| TransformBi (Type a) (Type a) Source |
data BuiltinType Source
Instances
Constructors
| Function | |
Instances
| Functor Function Source | |
| Foldable Function Source | |
| Traversable Function Source | |
| Definition Function Source | |
| Monad m => TransformBiM m (Function a) (Theory a) Source | |
| Monad m => TransformBiM m (Expr a) (Function a) Source | |
| Eq a => Eq (Function a) Source | |
| Ord a => Ord (Function a) Source | |
| Show a => Show (Function a) Source | |
| UniverseBi (Function a) (Expr a) Source | |
| UniverseBi (Function a) (Global a) Source | |
| UniverseBi (Function a) (Type a) Source | |
| TransformBi (Expr a) (Function a) Source |
Uninterpreted function
Uninterpreted sort
Data definition
Constructors
| Datatype | |
Fields
| |
data Constructor a Source
Constructors
| Constructor | |
Fields
| |
Instances
| Functor Constructor Source | |
| Foldable Constructor Source | |
| Traversable Constructor Source | |
| Eq a => Eq (Constructor a) Source | |
| Ord a => Ord (Constructor a) Source | |
| Show a => Show (Constructor a) Source | |
| UniverseBi (Theory a) (Constructor a) Source |
Constructors
| Theory | |
Fields
| |
Instances
| Functor Theory Source | |
| Foldable Theory Source | |
| Traversable Theory Source | |
| Monad m => TransformBiM m (Function a) (Theory a) Source | |
| Monad m => TransformBiM m (Type a) (Theory a) Source | |
| Monad m => TransformBiM m (Expr a) (Theory a) Source | |
| Eq a => Eq (Theory a) Source | |
| Ord a => Ord (Theory a) Source | |
| Show a => Show (Theory a) Source | |
| Monoid (Theory a) Source | |
| UniverseBi (Theory a) Builtin Source | |
| UniverseBi (Theory a) (Expr a) Source | |
| UniverseBi (Theory a) (Type a) Source | |
| UniverseBi (Theory a) (Constructor a) Source | |
| UniverseBi (Theory a) (Global a) Source | |
| UniverseBi (Theory a) (Local a) Source | |
| TransformBi (Type a) (Theory a) Source | |
| TransformBi (Pattern a) (Theory a) Source | |
| TransformBi (Expr a) (Theory a) Source | |
| TransformBi (Global a) (Theory a) Source | |
| TransformBi (Head a) (Theory a) Source |
emptyTheory :: Theory a Source
joinTheories :: Theory a -> Theory a -> Theory a Source
Constructors
| Formula | |
Constructors
| Definition a | |
| IH Int | |
| Lemma Int | |
| Projection a | |
| DataDomain a | |
| DataProjection a | |
| DataDistinct a | |
| Defunction a | |
| UserAsserted | |
| Unknown |
Other views of theories
The different kinds of declarations in a Theory.
transformExprIn :: TransformBi (Expr a) (f a) => (Expr a -> Expr a) -> f a -> f a Source
transformExprInM :: TransformBiM m (Expr a) (f a) => (Expr a -> m (Expr a)) -> f a -> m (f a) Source