twee-0.1: An equational theorem prover

Safe HaskellNone
LanguageHaskell2010

Twee.Term.Core

Contents

Synopsis

Documentation

data Symbol Source #

Constructors

Symbol 

Fields

Instances

data TermList f Source #

Constructors

TermList 

Fields

Instances

Build f (TermList f) Source # 

Methods

builder :: TermList f -> Builder f Source #

Eq (TermList f) Source # 

Methods

(==) :: TermList f -> TermList f -> Bool #

(/=) :: TermList f -> TermList f -> Bool #

Ord (TermList f) Source # 

Methods

compare :: TermList f -> TermList f -> Ordering #

(<) :: TermList f -> TermList f -> Bool #

(<=) :: TermList f -> TermList f -> Bool #

(>) :: TermList f -> TermList f -> Bool #

(>=) :: TermList f -> TermList f -> Bool #

max :: TermList f -> TermList f -> TermList f #

min :: TermList f -> TermList f -> TermList f #

(Sized f, Numbered f) => Sized (TermList f) Source # 

Methods

size :: TermList f -> Int Source #

Symbolic (TermList f) Source # 
type ConstantOf (TermList f) Source # 
type ConstantOf (TermList f) = f

at :: Int -> TermList f -> Term f Source #

data Term f Source #

Constructors

Term 

Fields

Instances

Build f (Term f) Source # 

Methods

builder :: Term f -> Builder f Source #

Eq (Term f) Source # 

Methods

(==) :: Term f -> Term f -> Bool #

(/=) :: Term f -> Term f -> Bool #

Ord (Term f) Source # 

Methods

compare :: Term f -> Term f -> Ordering #

(<) :: Term f -> Term f -> Bool #

(<=) :: Term f -> Term f -> Bool #

(>) :: Term f -> Term f -> Bool #

(>=) :: Term f -> Term f -> Bool #

max :: Term f -> Term f -> Term f #

min :: Term f -> Term f -> Term f #

(Sized f, Numbered f) => Sized (Term f) Source # 

Methods

size :: Term f -> Int Source #

Symbolic (Term f) Source # 

Associated Types

type ConstantOf (Term f) :: * Source #

Methods

term :: Term f -> TermOf (Term f) Source #

termsDL :: Term f -> DList (TermListOf (Term f)) Source #

replace :: (TermListOf (Term f) -> BuilderOf (Term f)) -> Term f -> Term f Source #

type ConstantOf (Term f) Source # 
type ConstantOf (Term f) = f

Empty :: TermList f

Cons t ts :: Term f -> TermList f -> TermList f

ConsSym t ts :: Term f -> TermList f -> TermList f

UnsafeCons/UnsafeConsSym: like Cons and ConsSym but don't check

pattern Empty :: forall f. TermList f Source #

pattern Cons :: forall f. Term f -> TermList f -> TermList f Source #

pattern ConsSym :: forall f. Term f -> TermList f -> TermList f Source #

pattern UnsafeCons :: forall f. Term f -> TermList f -> TermList f Source #

pattern UnsafeConsSym :: forall f. Term f -> TermList f -> TermList f Source #

Var :: Var -> Term f

Fun :: Fun f -> TermList f -> Term f

newtype Fun f Source #

Constructors

MkFun Int 

Instances

Eq (Fun f) Source # 

Methods

(==) :: Fun f -> Fun f -> Bool #

(/=) :: Fun f -> Fun f -> Bool #

Show (Fun f) Source # 

Methods

showsPrec :: Int -> Fun f -> ShowS #

show :: Fun f -> String #

showList :: [Fun f] -> ShowS #

(Numbered f, Minimal f) => Minimal (Fun f) Source # 

Methods

minimal :: Fun f Source #

(Sized f, Numbered f) => Sized (Fun f) Source # 

Methods

size :: Fun f -> Int Source #

(Numbered f, Arity f) => Arity (Fun f) Source # 

Methods

arity :: Fun f -> Int Source #

(Numbered f, Skolem f) => Skolem (Fun f) Source # 

Methods

skolem :: Var -> Fun f Source #

newtype Var Source #

Constructors

MkVar Int 

Instances

Enum Var Source # 

Methods

succ :: Var -> Var #

pred :: Var -> Var #

toEnum :: Int -> Var #

fromEnum :: Var -> Int #

enumFrom :: Var -> [Var] #

enumFromThen :: Var -> Var -> [Var] #

enumFromTo :: Var -> Var -> [Var] #

enumFromThenTo :: Var -> Var -> Var -> [Var] #

Eq Var Source # 

Methods

(==) :: Var -> Var -> Bool #

(/=) :: Var -> Var -> Bool #

Ord Var Source # 

Methods

compare :: Var -> Var -> Ordering #

(<) :: Var -> Var -> Bool #

(<=) :: Var -> Var -> Bool #

(>) :: Var -> Var -> Bool #

(>=) :: Var -> Var -> Bool #

max :: Var -> Var -> Var #

min :: Var -> Var -> Var #

Show Var Source # 

Methods

showsPrec :: Int -> Var -> ShowS #

show :: Var -> String #

showList :: [Var] -> ShowS #

pattern Var :: forall t. Var -> Term t Source #

pattern Fun :: forall f. Fun f -> TermList f -> Term f Source #

newtype Builder f Source #

Constructors

Builder 

Fields

Instances

Build f (Builder f) Source # 

Methods

builder :: Builder f -> Builder f Source #

Monoid (Builder f) Source # 

Methods

mempty :: Builder f #

mappend :: Builder f -> Builder f -> Builder f #

mconcat :: [Builder f] -> Builder f #

type Builder1 s = State# s -> MutableByteArray# s -> Int# -> Int# -> (#State# s, Int##) Source #

liftST :: ST s () -> Builder1 s Source #